summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/japanese-otf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/fonts/japanese-otf')
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/COPYRIGHT2
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/README63
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/00otf-uptex.txt483
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/TeXLive-maps/otf-cktx.map35
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/otf-script-gteb.diff (renamed from Master/texmf-dist/doc/fonts/japanese-otf/otf-script-gteb.diff)0
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/readme-ja.txt (renamed from Master/texmf-dist/doc/fonts/japanese-otf/readme-ja.txt)0
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/brsgtest.tex (renamed from Master/texmf-dist/doc/fonts/japanese-otf/test/brsgtest.tex)0
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/hankana_test.tex245
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/jis2004.tex (renamed from Master/texmf-dist/doc/fonts/japanese-otf/test/jis2004.tex)0
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/koreanexample.tex (renamed from Master/texmf-dist/doc/fonts/japanese-otf/test/koreanexample.tex)0
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/otftest.tex (renamed from Master/texmf-dist/doc/fonts/japanese-otf/test/otftest.tex)0
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/pkanatest.tex (renamed from Master/texmf-dist/doc/fonts/japanese-otf/test/pkanatest.tex)0
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/pkanatest2.tex (renamed from Master/texmf-dist/doc/fonts/japanese-otf/test/pkanatest2.tex)0
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/Makefile231
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-mltwght-h.tex202
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-mltwght-v.tex202
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-pxbabel-h.tex114
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-pxbabel-v.tex114
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/era.tex111
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/exclam.tex133
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/otfscale.tex69
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/paren0.tex45
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/punct0.tex31
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/punctuation.tex181
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_cns_utf.tex204
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_gb_utf.tex17
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_jp_text.tex75
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_jp_utf.tex75
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_kr_utf.tex14
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotf-sp-utf8.tex313
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotftest-utf8.tex300
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotftest.tex191
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upbrsgtest.tex293
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upjis2004.tex158
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upkanatest1.tex103
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upkanatest2.tex75
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/utfmacro-cjk.tex344
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/utfmacro-haranoaji.map220
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base-h.pl155
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base-v.pl150
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base0-h.pl30
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base2-h.pl47
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base2-v.pl31
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base3-v.pl47
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/brsg-h.pl137
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/brsg-v.pl136
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmkor-slim.cnf11
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmkor.cnf38
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmsch-slim.cnf11
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmsch.cnf46
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmtch-slim.cnf11
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmtch.cnf46
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-h.pl192
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-kor-h.pl136
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-kor-v.pl137
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-sch-h.pl136
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-sch-v.pl137
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-tch-h.pl116
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-tch-v.pl117
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-v.pl156
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubrsg-h.pl167
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubrsg-v.pl142
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/makeotf342
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/mkjvf731
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/CheckDVICode.pm287
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/MakeSPList.pm71
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/glyphdatabin0 -> 32768 bytes
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkaltutfvf.pl119
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkcidofm.pl66
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkcidvf.pl106
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkjp04tfmvf.pl172
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkmlcidvf.pl117
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkpkana.pl276
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkpropofm.pl86
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mktfm.pl235
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/script/mktfm_sp.pl220
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl162
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutfvf.pl93
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/script/mkutfvf_sp.pl209
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkvpkana.pl281
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/script/otf-hangul.rb51
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_c.txt17
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_j.txt75
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_k.txt14
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_t.txt204
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/script/umkpkana.pl602
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/script/umkvpkana.pl569
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/umakeotf109
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_brsg65
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_jis04112
-rw-r--r--Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_pre12
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_prop38
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/umkjvf962
93 files changed, 13344 insertions, 34 deletions
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/COPYRIGHT b/Master/texmf-dist/doc/fonts/japanese-otf/COPYRIGHT
index e9e3cee8f8d..627568c12c0 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/COPYRIGHT
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/COPYRIGHT
@@ -1,4 +1,6 @@
Copyright (C) 2003--2019 SAITO Shuzaburo and INOUE Koichi
+Copyright (C) 2007--2020 TANAKA Takuji
+Copyright (C) 2017--2022 Japanese TeX Development Community
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/README b/Master/texmf-dist/doc/fonts/japanese-otf/README
index 18f3fcc32a9..d75129e47ff 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/README
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/README
@@ -1,37 +1,32 @@
-package name: otf or japanese-otf
-
-This is the file README written in English by Norbert Preining
-for the upload to CTAN. More information in Japanese can be
-found in readme-ja.txt. (written by Saito Shuzaburo, originally
-named readme.txt)
-
-This package is originally named "otf", but for the sake of not
-choosing to general names on CTAN (and in TeX Live) it will be
-called "japanese-otf". This change has been discussed with
-the author of the package, Saito Shuzaburo. The version of
-the package used is
- otfbeta.zip v1.7b8 2019/04/01
-
-In addition a patch by Hironori Kitagawa was applied
- otf-script-gteb.diff
-(included) to build tfm/vf/ofm for gteb font series.
-
-The map file in TeXLive-maps/otf-cktx.map was generated from the
-provided font maps.
-
-The original source has been downloaded from
- http://psitau.kitunebi.com/otf.html
-as
- http://psitau.kitunebi.com/otf1.7b8.zip
-
-This package provides advanced typesetting options for platex and
-friends.
-
-After downloading the script makeotf has been run and the generated
-vf/tfm/ofm files have been included in the upload to CTAN.
+package name: japanese-otf
+
+This bundle was edited for the upload to CTAN and
+consists of following packages:
+
+- OTF package
+ (Advanced font selection for pLaTeX and its friends)
+ - author: Shuzaburo Saito
+ - upstream: http://psitau.kitunebi.com/otf.html
+ - currently otfbeta v1.7b8 (2019/04/01)
+ - readme by the author: readme-ja.txt (in Japanese)
+- japanese-otf-uptex
+ (upLaTeX support of the OTF package)
+ - author: Tanaka Takuji
+ - upstream: http://www.t-lab.opal.ne.jp/tex/uptex_en.html
+ https://github.com/t-tk/japanese-otf-uptex
+ - currently japanese-otf-uptex Ver.0.27 (2022/02/16)
+ - readme by the author: 00otf-uptex.txt
+
+In addition, several patches were applied to support extended
+features. The source code is maintained at GitHub:
+ https://github.com/texjporg/japanese-otf-mirror
+If you find any issues or bugs, please report to
+ https://github.com/texjporg/japanese-otf-mirror/issues
+or
+ e-mail: issue@texjp.org
The contents of this package is under the license given in the
-COPYRIGHT file, which is more or less BSD license.
+COPYRIGHT file, which is the 3-clause BSD license.
-Norbert Preining
-20201114.0
+Japanese TeX Development Community
+20220217.0
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/00otf-uptex.txt b/Master/texmf-dist/doc/fonts/japanese-otf/doc/00otf-uptex.txt
new file mode 100644
index 00000000000..036cfbe3cdc
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/00otf-uptex.txt
@@ -0,0 +1,483 @@
+[ Title ]
+japanese-otf-uptex Ver.0.27 2022/02/16
+
+
+[ Abstract ]
+This package provides upLaTeX support of
+japanese-otf package "otfbeta (v1.7b8 2019/04/01)" by psitau-san
+( http://psitau.kitunebi.com/otf.html )
+
+
+[ Contents ]
+00otf-uptex.txt : this file
+umakeotf : script to make vf, tfm
+umakeotf_brsg : script to make vf, tfm for burasage option
+umakeotf_jis04 : script to make vf, tfm for jis2004 option
+umakeotf_prop : script to make vf, tfm for proportional kana
+umakeotf_pre : preparation script for umakeotf*
+umkjvf : mkjvf with unicode support
+
+basepl/ubase-h.pl : unicode version of base-h.pl
+basepl/ubase-v.pl : unicode version of base-v.pl
+basepl/ubrsg-h.pl : unicode version of brsg-h.pl
+basepl/ubrsg-v.pl : unicode version of brsg-v.pl
+basepl/ubase-sch-h.pl : base pl for simplified Chinese horizontal writing
+basepl/ubase-sch-v.pl : base pl for simplified Chinese vertical writing
+basepl/ubase-tch-h.pl : base pl for traditional Chinese horizontal writing
+basepl/ubase-tch-v.pl : base pl for traditional Chinese vertical writing
+basepl/ubase-kor-h.pl : base pl for Korean horizontal writing
+basepl/ubase-kor-v.pl : base pl for Korean vertical writing
+basepl/mjvf-upnmsch.cnf : makejvf configuration for simplified Chinese, full entry
+basepl/mjvf-upnmtch.cnf : makejvf configuration for traditional Chinese, full entry
+basepl/mjvf-upnmkor.cnf : makejvf configuration for Korean, full entry
+basepl/mjvf-upnmsch-slim.cnf : makejvf configuration for simplified Chinese, minimum entry
+basepl/mjvf-upnmtch-slim.cnf : makejvf configuration for traditional Chinese, minimum entry
+basepl/mjvf-upnmkor-slim.cnf : makejvf configuration for Korean, minimum entry
+
+script/mkutf32list.pl : perl script making lists of characters on supplementary planes
+script/MakeSPList.pm : perl module making data of characters on supplementary planes
+script/mktfm_sp.pl : perl script making tfm for characters on supplementary planes
+script/mkutfvf_sp.pl : perl script making vf for characters on supplementary planes
+script/sp_list_j.txt : a list of characters on supplementary planes in UniJIS-UTF32
+script/sp_list_c.txt : a list of characters on supplementary planes in UniGB-UTF32
+script/sp_list_t.txt : a list of characters on supplementary planes in UniCNS-UTF32
+script/sp_list_k.txt : a list of characters on supplementary planes in UniKS-UTF32
+script/CheckDVICode.pm : perl module checking category of characters
+script/umkpkana.pl : perl script making pl, ovp for proportional kana
+script/umkvpkana.pl : perl script making pl, ovp for proportional kana
+
+sty/otf.sty : basic style file
+sty/mlutf.sty : style file for multi option
+
+test/uplatex/* : test samples.
+
+COPYRIGHT : copyright notice of this package.
+
+
+[ Status ]
+Beta version.
+
+
+[ To Build ]
+## From source files
+The source distribution of japanese-otf-uptex does not contain tfm, vf files.
+To ganerate them, uppltotf and ovp2ovf (TeX Live r43143 or later) are required and
+we run scripts as follows:
+ $ ./umakeotf
+ $ ./umakeotf_brsg
+ $ ./umakeotf_jis04
+ $ ./umakeotf_prop
+
+## CTAN distribution
+The CTAN distribution contains tfm, vf files.
+
+
+[ About jis2004 option ]
+otfbeta-uptex (japanese-otf-uptex) Ver.0.12 or later supports
+combination of "jis2004" and "uplatex" option.
+If you run the script "umakeotf_jis04", tfm and vf for jis2004 will be generated.
+They cousumes about 36.1 Mbytes in total.
+You will get expected results by mapping the new fonts
+ up{,brsg}{nml,exp}{minr,gothr,minb,gothb,mgothr,minl,gotheb}n-{h,v}.tfm
+to Adobe standard CMap "UniJIS2004-UTF16-{H,V}".
+
+If you do not use "jis2004" option, you can delete tfm and vf:
+ up{,brsg}{nml,exp}{minr,gothr,minb,gothb,mgothr,minl,gotheb}n-{h,v}.{tfm,vf}
+
+Instead of using "jis2004" option,
+you can get same result by mapping conventional fonts
+ up{,brsg}{nml,exp}{minr,gothr,minb,gothb,mgothr,minl,gotheb}-{h,v}.tfm
+to Adobe standard CMap "UniJIS2004-UTF16-{H,V}".
+
+
+[ About proportional kana ]
+otfbeta-uptex (japanese-otf-uptex) Ver.0.14 or later supports
+proportional kana at deluxe option and \propshape.
+To build tfm files, uppltotf in TeX Live r43143 or TeX Live 2017 or later is required.
+
+
+[ About shrunk file size of virtual fonts ]
+japanese-otf-uptex Ver.0.26 has shrunk file size of some virtual fonts for main text.
+The virtual fonts listed below are smaller in file size than conventional ones.
+ upexp*.vf
+ upbrsg*.vf
+ upruby*.vf
+ upphira*.vf
+These are used by selecting options "expert", "brsg", "ruby", etc. of otf.sty.
+The feature requires new dviware which support fall back of CJK virtual fonts:
+ dvipdfmx (version 20200315 (2020/3/15) or later)
+ dvips (TeX Live subversion r54794 (2020/4/19) or later)
+Ref. https://github.com/texjporg/tex-jp-build/issues/99
+
+If you do not wish this feature, you can avoid by regenerating virtual fonts
+after removing "-omitfw" option of umkjvf
+in the font generation scripts umakeotf{,_brsg,_jis04,_prop}.
+ $ ./umakeotf
+ $ ./umakeotf_brsg
+ $ ./umakeotf_jis04
+ $ ./umakeotf_prop
+Ref. https://github.com/t-tk/japanese-otf-uptex/issues/3
+
+
+[ About Unicode base multi-weight fonts ]
+japanese-otf-uptex Ver.0.26 has introduced new virtual fonts for
+\UTF{}, \UTFC{}, \UTFT{}, \UTFK{} macros. They are Unicode base
+(conventionally subfont scheme) and support multi-weight fonts
+(seven sets of family/series for all languages,
+conventionally two sets of family/series for Chinese and Korean).
+The feature also requires new dviware which support fall back of CJK virtual fonts.
+ 明朝体・細字   \mcfamily\ltseries ml
+ 明朝体・中字   \mcfamily\mdseries mr
+ 明朝体・太字   \mcfamily\bfseries mb
+ ゴシック体・中字 \gtfamily\mdseries gr
+ ゴシック体・太字 \gtfamily\bfseries gb
+ ゴシック体・極太 \gtfamily\ebseries ge
+ 丸ゴシック体   \mgfamily mgr
+Ref. https://github.com/t-tk/japanese-otf-uptex/issues/4
+
+japanese-otf-uptex Ver.0.27 has introduced new virtual fonts for
+Chinese/Korean plain texts to support multi-weight fonts.
+They have not been registered in otf.sty nor mlutf.sty yet.
+I hope they will be supported by other extentional macros.
+Ref. https://github.com/t-tk/japanese-otf-uptex/issues/7
+https://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2828
+
+
+[ Repository ]
+japanese-otf-uptex is maintained on GitHub:
+https://github.com/t-tk/japanese-otf-uptex
+
+
+[ History ]
+2007.12.09 Ver0.00
+ Initial version.
+ for "otfstable (v1.2.9 2007/3/19)"
+2008.01.12 Ver0.01
+ umakeotf
+ Revise: for upTeX-0.20
+ umkjvf::
+ Bug fix: Ruby glyphs, horizontally- and vertically optimized kana glyphs.
+ Revise: for upTeX-0.20
+ ubase-h.pl::
+ Insert glue between halfwidth kana and others at horizontal writing.
+ test/uplatex::
+ Revise.
+2008.10.01 Ver0.02
+ re-packaged for upTeX-0.24
+ tfm/*.tfm, vf/*.vf::
+ Delete
+ patch/*.patch::
+ Include
+2008.11.08 Ver0.03
+ Revise: for upTeX-0.25
+ umkjvf::
+ Add: Ruby glyphs, horizontally- and vertically optimized kana glyphs
+ in JIS X 0213 (ainu kana, etc.)
+ fontmap/*::
+ Revise.
+ test/uplatex/*::
+ Revise.
+ patch/*.patch::
+ Revise.
+2009.08.01 Ver0.04
+ Revise: for upTeX-0.28
+ umkjvf::
+ Bug fix: SIP option did not work
+ Revise: help message
+2010.03.28 Ver0.05
+ Revise: for "otfstable (v1.2.9.2 2010/3/26)", upTeX-0.30
+ umkjvf::
+ Revise: It may work with C-version ovp2ovf, opl2ofm
+ patch/*.patch::
+ Revise.
+ sty/*::
+ Removed.
+2010.05.xx Ver0.06
+ Test only. Not released.
+2012.01.02 Ver0.07
+ Revise: for "otfbeta (v1.7b3 2011/10/28)", upTeX in TeXLive svn r24922
+ umkjvf::
+ Revise: Based on "mkjvf version 1.0b21 (2010/3/25)"
+ Revise: use ovp2ovf (WEB version) in TeXLive svn r24922 for SIP
+ Bug fix: pTeX mode was not compatible with mkjvf for ruby.
+ umakeotf
+ Revise: Minor update about "mkdir tfm"
+ fontmap/*::
+ Revise.
+ patch/*.patch::
+ Revise.
+ COPYRIGHT::
+ Add.
+2012.01.22 Ver0.08
+ ## Thank Kitagawa san and Norbert san for helpful bug reports.
+ umkjvf::
+ Add: option '-ovp2ovf' and '-dbg'.
+ Revise: hankaku kana in ucs mode base font.
+ Support ovp2ovf (C version) in TeXLive svn r24887 for BMP.
+ Bug fix: combination of '-cp' and '-ucs'.
+ umakeotf::
+ Bug fix: up{exp,ruby}mgothr-{h,v}.vf was broken.
+ Revise: do not use '-chk' for hankaku kana in ucs mode base font.
+ basepl/ubase-{h,v}.pl::
+ Convert from ISO-2022-JP to UTF-8.
+ Add U+2014 as Type 5.
+ Revise hankaku kana.
+ test/uplatex/uotftest-utf8.tex::
+ Revise.
+2012.02.18 Ver0.09
+ For "otfbeta (v1.7b4 2012/01/22)", upTeX in TeXLive svn r24922
+ Enhance: support characters on supplementary planes (SP) in ucs mode base fonts
+ and those in macros \UTF{}, \UTFC{}, \UTFT{}, and \UTFM{}.
+ Not only upLaTeX but also pLaTeX can treat
+ the macros \UTF{}, \UTFC{}, \UTFT{}, and \UTFM{} for characters on SP.
+ To generate vf, we require ovp2ovf with set3 support
+ i.e. ovp2ovf (WEB version) in TeXLive svn r24922.
+ To treat dvi, we require dviware with set3 support
+ i.e. dvipdfmx in TeXLive svn r24509, dvipsk in TeXLive svn r18144.
+ sty/otf.sty ::
+ Support characters on SP in the macro \UTF{}.
+ sty/mlutf.sty ::
+ Support characters on SP in the macros \UTFC{}, \UTFT{}, and \UTFM{}.
+ umkjvf ::
+ Change option from '-sip' to '-sp <0-2>'.
+ Update references Unicode Blocks-6.1.0.txt (Date: 2011-06-14, 18:26:00 GMT [KW, LI])
+ and Adobe-Japan1-6 cid2code.txt (Version 02/04/2012).
+ umakeotf, script/sp_list_{j,c,t,k}.txt,
+ script/MakeSPList.pm, script/{mkutf32list,mktfm_sp,mkutfvf_sp}.pl ::
+ Add: New script to make vf, tfm for characters on SP.
+ test/uplatex/Makefile, test/uplatex/uotftest-utf8.tex ::
+ Revise.
+ test/uplatex/uotf-sp-utf8.tex, test/uplatex/sp_jp_text.tex,
+ test/uplatex/sp_{jp,cns,gb,kr}_utf.tex ::
+ Add.
+ patch/*.patch::
+ Revise.
+2012.04.21 Ver0.10
+ For "otfbeta (v1.7b5 2012/04/11)", upTeX in TeXLive svn r24922 or later
+ Enhance: support burasage on uplatex.
+ umakeotf_brsg, basepl/ubrsg-{h,v}.pl ::
+ Add. The files generate vf and tfm for burasage on uplatex.
+ The vf and tfm consume about 16.7 Mbytes in total.
+ umkjvf ::
+ Refer an environment variable OVP2OVF to set ovp2ovf command.
+ umakeotf ::
+ Revise.
+ sty/otf.sty ::
+ Adopt otf.sty [2012/04/11 v1.7b5 psitau] in otfbeta (v1.7b5 2012/4/11).
+ sty/mlutf.sty ::
+ Update version number.
+ test/uplatex/upbrsgtest.tex ::
+ Add.
+ test/uplatex/Makefile, test/uplatex/uotftest-utf8.tex ::
+ Revise.
+ patch/*.patch::
+ Revise.
+2012.07.09 Ver0.11
+ ## Thank ZR san for great contribution.
+ sty/otf.sty, sty/mlutf.sty ::
+ Apply new code to support surrogate pairs
+ when macros \UTF{}, \UTFT{}, \UTFC{} and/or \UTFM{} are used with hyperref package.
+ The new code is written by ZR san.
+ test/uplatex/uotftest-utf8.tex ::
+ Revise.
+2013.06.02 Ver0.12
+ ## Thank Kitagawa san for helpful reports.
+ script/mktfm_sp.pl, script/mkutfvf_sp.pl, umakeotf, umakeotf_bsrg, umkjvf ::
+ Support Gothic/ExtraBold (gt/eb).
+ script/mkutfvf_sp.pl ::
+ Refer an environment variable OVP2OVF to set ovp2ovf command.
+ umakeotf_jis04 ::
+ Add. The script generates vf and tfm for jis2004 option on uplatex.
+ The vf and tfm consume about 36.1 Mbytes in total.
+ fontmap/hiragino.map(for udvips), fontmap/hiraginox.map(for dvipdfmx) ::
+ Add jis2004 entry.
+ umkjvf ::
+ Revise comment.
+ umakeotf, umakeotf_bsrg ::
+ Clean up.
+ sty/otf.sty, sty/mlutf.sty ::
+ Add jis2004 entry.
+ Increment version number.
+ patch/*.patch::
+ Revise.
+ test/uplatex/upjis2004.tex, test/uplatex/Makefile::
+ Add new test.
+2013.11.21 Ver0.13
+ sty/otf.sty ::
+ Add scale option by following otfbeta v1.7b6.
+ Increment version number.
+ sty/mlutf.sty ::
+ Increment version number.
+ patch/*.patch::
+ Revise.
+ test/uplatex/otfscale.tex, test/uplatex/Makefile::
+ Add new test.
+2014.03.22 Ver0.14
+ umkjvf, sty/otf.sty, sty/mlutf.sty, otfbeta_uptex-0.14.patch ::
+ Increment version number.
+ script/umk{,v}pkana.pl ::
+ Add proportional kana support.
+ umakeotf_prop ::
+ Add. The script generates vf and tfm for proportional kana on uplatex.
+ The vf and tfm consume about 6.4 Mbytes in total.
+ umkjvf, script/CheckDVICode.pm, script/MakeSPList.pm ::
+ Move some subroutines in the new module and tune up.
+ test/uplatex/upkanatest{1,2}.tex, test/uplatex/Makefile ::
+ Add new tests.
+ COPYRIGHT ::
+ Update year.
+2014.03.28 Ver0.15
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ sty/otf.sty ::
+ Apply again update of otf.sty [2012/04/11 v1.7b5 psitau] in otfbeta (v1.7b5 2012/4/11).
+ patch/*.patch::
+ Revise.
+2014.07.26 Ver0.16
+ ## Thank Dora TeX san for helpful reports.
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ sty/otf.sty ::
+ Bug fix for ExtraBold (eb).
+ patch/*.patch::
+ Revise.
+2015.04.10 Ver0.17
+ ## Thank Akira Kakuto san for helpful reports.
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ sty/otf.sty ::
+ Fix bug for ruby.
+ patch/*.patch::
+ Revise.
+ COPYRIGHT ::
+ Update year.
+2017.03.04 Ver0.18
+ umakeotf{,_brsg,_jis04,_prop,_pre} ::
+ Clean up.
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ script/CheckDVICode.pm ::
+ Update reference Unicode Blocks-9.0.0.txt (Date: 2016-02-05, 23:48:00 GMT [KW])
+ script/mkutf32list.pl, script/sp_list_{c,j,k,t}.txt, test/uplatex/sp_{cns,gb,jp}_utf.tex ::
+ Update references: URL of cid2code.txt
+ and Adobe-CNS1-6 cid2code.txt (Version 12/04/2015).
+ script/umk{,v}pkana.pl, test/uplatex/upkanatest1.tex ::
+ Add more proportional kana support:
+ 〃〆ゔゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿヷヸヹヺ (in UTF-8)
+ Latest uppltotf (TeX Live r43143 or later) is required.
+ patch/*.patch::
+ Remove.
+ COPYRIGHT ::
+ Update year.
+2018.02.11 Ver0.19
+ ## Thank @aminophen san for many contributions.
+ sty/otf.sty, sty/mlutf.sty ::
+ Sync with japanese-otf [2018/02/01 v1.7b7].
+ Set default latin font T1.
+ Add {,u}pLaTeX engine check and a package option "autodetect-engine".
+ Increment version number.
+ script/CheckDVICode.pm ::
+ Update reference Unicode Blocks-10.0.0.txt (Date: 2017-04-12, 17:30:00 GMT [KW])
+ Add Block Kana Extended-A, CJK Unified Ideographs Extension F to is_ucs_jpn_range{).
+ script/mk{tfm,utfvf}_sp.pl, sty/otf.sty, sty/mlutf.sty ::
+ Add subfonts for CJK Unified Ideographs Extension F.
+ script/mkutf32list.pl ::
+ Add option -style=list-wo-collec.
+ script/mkutf32list.pl, script/sp_list_{c,j,k,t}.txt, test/uplatex/sp_{cns,gb,jp,kr}_utf.tex,
+ test/uplatex/sp_jp_text.tex ::
+ Update references:
+ Adobe-CNS1-7 cid2code.txt (Version 10/24/2017), and
+ Adobe-Japan1-6 cid2code.txt (Version 10/24/2017).
+ script/CheckDVICode.pm, script/umk{,v}pkana.pl, basepl/u{base,brsg}-{h,v}.pl ::
+ Add U+00B7 to char_type 3.
+ COPYRIGHT ::
+ Update year.
+2018.04.07 Ver0.20
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ script/CheckDVICode.pm, script/umk{,v}pkana.pl, basepl/u{base,brsg}-{h,v}.pl ::
+ Add U+00AB, U+2329, U+301A to char_type 1.
+ Add U+00BB, U+232A, U+301B, U+301E to char_type 2.
+ test/uplatex/{punctuation,punct0,paren0}.tex, test/uplatex/Makefile ::
+ Add a new test for punctuations.
+2018.05.13 Ver0.21
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ script/umk{,v}pkana.pl, basepl/u{base,brsg}-{h,v}.pl ::
+ Add U+203C, U+2047, U+2048, U+2049 to char_type 6.
+ script/umkpkana.pl, umakeotf_prop ::
+ Add -hk option to enable halfwidth katakana letters in hiraprop.
+ script/mkutf32list.pl ::
+ Remove feature 'switch'
+ test/uplatex/{exclam,upkanatest1}.tex, test/uplatex/Makefile ::
+ Add a new test for punctuations and halfwidth katakana.
+2018.12.08 Ver0.22
+ ## Thank @aminophen san, 柳田 Ryo san and @Man-Ting-Fan san for many contributions.
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ script/CheckDVICode.pm ::
+ Bug fix on U+3090..3093.
+ script/mkutf32list.pl ::
+ Replace encoding pragma to binmode.
+ script/mktfm_sp.pl, script/mkutfvf_sp.pl ::
+ Apply FindBin module.
+ script/mkutf32list.pl, script/sp_list_j.txt, test/uplatex/sp_jp_{utf,text}.tex ::
+ Update references:
+ Adobe-Japan1-7 cid2code.txt (Version 07/30/2018).
+ test/uplatex/paren0.tex ::
+ Fix typo.
+2019.04.01 Ver0.23
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ script/CheckDVICode.pm, script/umk{,v}pkana.pl ::
+ Add more proportional kana support:
+ ヿゟ (in UTF-8)
+ Previously, they did not work due to a bug.
+ script/CheckDVICode.pm, test/uplatex/sp_jp_{utf,text}.tex ::
+ Update references:
+ Unicode Blocks-12.0.0.txt (Date: 2018-07-30, 19:40:00 GMT [KW])
+ Adobe-Japan1-7 cid2code.txt (Version 07/30/2018).
+ test/uplatex/era.tex ::
+ Added.
+ COPYRIGHT ::
+ Update year.
+2019.09.07 Ver0.24
+ ## Thank @aminophen san.
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ script/CheckDVICode.pm ::
+ Make half width U+00B7 in VFs.
+2020.02.28 Ver0.25
+ sty/otf.sty, sty/mlutf.sty ::
+ Increment version number.
+ script/CheckDVICode.pm, script/sp_list_j.txt,
+ test/uplatex/sp_jp_{utf,text}.tex ::
+ Update references:
+ Adobe-Japan1-7 cid2code.txt (Version 07/30/2019).
+ COPYRIGHT ::
+ Update year.
+2020.11.08 Ver0.26
+ sty/otf.sty, sty/mlutf.sty ::
+ Bump version number.
+ umkjvf, umakeotf{,_brsg,_jis04,_prop} ::
+ script/{umkpkana.pl,umkvpkana.pl} ::
+ Shrink file size of some virtual fonts for main text.
+ New option "-omitfw" for umkjvf.
+ sty/otf.sty, sty/mlutf.sty,
+ script/{mktfm_sp.pl,mkutfvf_sp.pl} ::
+ Introduce Unicode base multi-weight virtual fonts
+ for \UTF{}, \UTFC{}, \UTFT{}, \UTFK{}.
+ test/uplatex/{uotftest-utf8.tex,utfmacro-cjk.tex}, test/uplatex/Makefile,
+ test/uplatex/utfmacro-haranoaji.map ::
+ Add a new test for multi-weight \UTF{}, \UTFC{}, \UTFT{}, \UTFK{}.
+2022.02.16 Ver0.27
+ sty/otf.sty, sty/mlutf.sty ::
+ Bump version number.
+ umakeotf, basepl/ubase-{sch,tch,kor}-{h,v}.pl,
+ basepl/mjvf-upnm{sch,tch,kor}{,-slim}.cnf ::
+ Introduce multi-weight virtual fonts for Chinese/Korean plain texts.
+ test/uplatex/Makefile, test/uplatex/cjk-{mltwght,pxbabel}-{h,v}.tex ::
+ Add new tests for CK multi-weight plain texts.
+ COPYRIGHT ::
+ Update year.
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/TeXLive-maps/otf-cktx.map b/Master/texmf-dist/doc/fonts/japanese-otf/doc/TeXLive-maps/otf-cktx.map
new file mode 100644
index 00000000000..853615003ae
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/TeXLive-maps/otf-cktx.map
@@ -0,0 +1,35 @@
+%%%%% Traditional Chinese -- serif %%%%%
+otf-utmr-h UniCNS-UCS2-H MSung-Light
+otf-utmr-v UniCNS-UCS2-V MSung-Light
+otf-ctmr-h Identity-H MSung-Light
+otf-ctmr-v Identity-V MSung-Light
+
+%%%%% Traditional Chinese -- sans serif %%%%%
+otf-utgr-h UniCNS-UCS2-H MHei-Medium
+otf-utgr-v UniCNS-UCS2-V MHei-Medium
+otf-ctgr-h Identity-H MHei-Medium
+otf-ctgr-v Identity-V MHei-Medium
+
+%%%%% Simplified Chinese -- serif %%%%%
+otf-ucmr-h UniGB-UCS2-H STSong-Light
+otf-ucmr-v UniGB-UCS2-V STSong-Light
+otf-ccmr-h Identity-H STSong-Light
+otf-ccmr-v Identity-V STSong-Light
+
+%%%%% Simplified Chinese -- sans serif %%%%%
+otf-ucgr-h UniGB-UCS2-H STHeiti-Regular
+otf-ucgr-v UniGB-UCS2-V STHeiti-Regular
+otf-ccgr-h Identity-H STHeiti-Regular
+otf-ccgr-v Identity-V STHeiti-Regular
+
+%%%%% Korean -- serif %%%%%
+otf-ukmr-h UniKS-UCS2-H HYSMyeongJo-Medium
+otf-ukmr-v UniKS-UCS2-V HYSMyeongJo-Medium
+otf-ckmr-h Identity-H HYSMyeongJo-Medium
+otf-ckmr-v Identity-V HYSMyeongJo-Medium
+
+%%%%% Korean -- sans serif %%%%%
+otf-ukgr-h UniKS-UCS2-H HYGoThic-Medium
+otf-ukgr-v UniKS-UCS2-V HYGoThic-Medium
+otf-ckgr-h Identity-H HYGoThic-Medium
+otf-ckgr-v Identity-V HYGoThic-Medium
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/otf-script-gteb.diff b/Master/texmf-dist/doc/fonts/japanese-otf/doc/otf-script-gteb.diff
index 5b124ed742e..5b124ed742e 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/otf-script-gteb.diff
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/otf-script-gteb.diff
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/readme-ja.txt b/Master/texmf-dist/doc/fonts/japanese-otf/doc/readme-ja.txt
index 9dccfbae8da..9dccfbae8da 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/readme-ja.txt
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/readme-ja.txt
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/test/brsgtest.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/brsgtest.tex
index 7b812f4bcf5..7b812f4bcf5 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/test/brsgtest.tex
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/brsgtest.tex
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/hankana_test.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/hankana_test.tex
new file mode 100644
index 00000000000..c228ff62cc5
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/hankana_test.tex
@@ -0,0 +1,245 @@
+\documentclass[a4paper,titlepage, draft]{jarticle}
+%\documentclass[a4paper,titlepage, draft,landscape]{jarticle}
+\usepackage[deluxe, expert, multi]{otf}
+%\usepackage[deluxe, expert, multi, jis2004]{otf}
+%\usepackage[deluxe, multi]{otf}
+%\usepackage[expert, multi]{otf}
+%\usepackage[multi]{otf}
+%\usepackage[bold, multi]{otf}
+%\usepackage[noreplace, multi]{otf}
+\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+\pagestyle{empty}
+\makeatletter
+\ifx\rubyfamily\@undefined\let\rubyfamily=\relax\fi
+\ifx\mgfamily\@undefined\let\mgfamily=\relax\fi
+\newif\ifdeluxemode\deluxemodefalse
+\if@deluxe\deluxemodetrue\fi
+\makeatother
+\begin{document}
+\parindent0mm
+
+$B%*%W%7%g%s!'(B\texttt{expert}, \texttt{deluxe}
+
+[mc/m]
+
+=\phantom{\UTF{FF61}}\UTF{FF61}\UTF{FF62}\UTF{FF63}\UTF{FF64}\UTF{FF65}\UTF{FF66}\UTF{FF67}%
+=\UTF{FF68}\UTF{FF69}\UTF{FF6A}\UTF{FF6B}\UTF{FF6C}\UTF{FF6D}\UTF{FF6E}\UTF{FF6F}=\\
+=\UTF{FF70}\UTF{FF71}\UTF{FF72}\UTF{FF73}\UTF{FF74}\UTF{FF75}\UTF{FF76}\UTF{FF77}%
+=\UTF{FF78}\UTF{FF79}\UTF{FF7A}\UTF{FF7B}\UTF{FF7C}\UTF{FF7D}\UTF{FF7E}\UTF{FF7F}=\\
+=\UTF{FF80}\UTF{FF81}\UTF{FF82}\UTF{FF83}\UTF{FF84}\UTF{FF85}\UTF{FF86}\UTF{FF87}%
+=\UTF{FF88}\UTF{FF89}\UTF{FF8A}\UTF{FF8B}\UTF{FF8C}\UTF{FF8D}\UTF{FF8E}\UTF{FF8F}=\\
+=\UTF{FF90}\UTF{FF91}\UTF{FF92}\UTF{FF93}\UTF{FF94}\UTF{FF95}\UTF{FF96}\UTF{FF97}%
+=\UTF{FF98}\UTF{FF99}\UTF{FF9A}\UTF{FF9B}\UTF{FF9C}\UTF{FF9D}\UTF{FF9E}\UTF{FF9F}=
+
+=\phantom{\UTFM{FF61}}\UTFM{FF61}\UTFM{FF62}\UTFM{FF63}\UTFM{FF64}\UTFM{FF65}\UTFM{FF66}\UTFM{FF67}%
+=\UTFM{FF68}\UTFM{FF69}\UTFM{FF6A}\UTFM{FF6B}\UTFM{FF6C}\UTFM{FF6D}\UTFM{FF6E}\UTFM{FF6F}=\\
+=\UTFM{FF70}\UTFM{FF71}\UTFM{FF72}\UTFM{FF73}\UTFM{FF74}\UTFM{FF75}\UTFM{FF76}\UTFM{FF77}%
+=\UTFM{FF78}\UTFM{FF79}\UTFM{FF7A}\UTFM{FF7B}\UTFM{FF7C}\UTFM{FF7D}\UTFM{FF7E}\UTFM{FF7F}=\\
+=\UTFM{FF80}\UTFM{FF81}\UTFM{FF82}\UTFM{FF83}\UTFM{FF84}\UTFM{FF85}\UTFM{FF86}\UTFM{FF87}%
+=\UTFM{FF88}\UTFM{FF89}\UTFM{FF8A}\UTFM{FF8B}\UTFM{FF8C}\UTFM{FF8D}\UTFM{FF8E}\UTFM{FF8F}=\\
+=\UTFM{FF90}\UTFM{FF91}\UTFM{FF92}\UTFM{FF93}\UTFM{FF94}\UTFM{FF95}\UTFM{FF96}\UTFM{FF97}%
+=\UTFM{FF98}\UTFM{FF99}\UTFM{FF9A}\UTFM{FF9B}\UTFM{FF9C}\UTFM{FF9D}\UTFM{FF9E}\UTFM{FF9F}=
+
+=\phantom{\CID{327}}\CID{327}\CID{328}\CID{329}\CID{330}\CID{331}\CID{332}\CID{333}%
+=\CID{334}\CID{335}\CID{336}\CID{337}\CID{338}\CID{339}\CID{340}\CID{341}=\\
+=\CID{342}\CID{343}\CID{344}\CID{345}\CID{346}\CID{347}\CID{348}\CID{349}%
+=\CID{350}\CID{351}\CID{352}\CID{353}\CID{354}\CID{355}\CID{356}\CID{357}=\\
+=\CID{358}\CID{359}\CID{360}\CID{361}\CID{362}\CID{363}\CID{364}\CID{365}%
+=\CID{366}\CID{367}\CID{368}\CID{369}\CID{370}\CID{371}\CID{372}\CID{373}=\\
+=\CID{374}\CID{375}\CID{376}\CID{377}\CID{378}\CID{379}\CID{380}\CID{381}%
+=\CID{382}\CID{383}\CID{384}\CID{385}\CID{386}\CID{387}\CID{388}\CID{389}=
+
+{\bfseries%
+[mc/bx]
+
+=\phantom{\UTF{FF61}}\UTF{FF61}\UTF{FF62}\UTF{FF63}\UTF{FF64}\UTF{FF65}\UTF{FF66}\UTF{FF67}%
+=\UTF{FF68}\UTF{FF69}\UTF{FF6A}\UTF{FF6B}\UTF{FF6C}\UTF{FF6D}\UTF{FF6E}\UTF{FF6F}=\\
+=\UTF{FF70}\UTF{FF71}\UTF{FF72}\UTF{FF73}\UTF{FF74}\UTF{FF75}\UTF{FF76}\UTF{FF77}%
+=\UTF{FF78}\UTF{FF79}\UTF{FF7A}\UTF{FF7B}\UTF{FF7C}\UTF{FF7D}\UTF{FF7E}\UTF{FF7F}=\\
+=\UTF{FF80}\UTF{FF81}\UTF{FF82}\UTF{FF83}\UTF{FF84}\UTF{FF85}\UTF{FF86}\UTF{FF87}%
+=\UTF{FF88}\UTF{FF89}\UTF{FF8A}\UTF{FF8B}\UTF{FF8C}\UTF{FF8D}\UTF{FF8E}\UTF{FF8F}=\\
+=\UTF{FF90}\UTF{FF91}\UTF{FF92}\UTF{FF93}\UTF{FF94}\UTF{FF95}\UTF{FF96}\UTF{FF97}%
+=\UTF{FF98}\UTF{FF99}\UTF{FF9A}\UTF{FF9B}\UTF{FF9C}\UTF{FF9D}\UTF{FF9E}\UTF{FF9F}=
+
+=\phantom{\UTFM{FF61}}\UTFM{FF61}\UTFM{FF62}\UTFM{FF63}\UTFM{FF64}\UTFM{FF65}\UTFM{FF66}\UTFM{FF67}%
+=\UTFM{FF68}\UTFM{FF69}\UTFM{FF6A}\UTFM{FF6B}\UTFM{FF6C}\UTFM{FF6D}\UTFM{FF6E}\UTFM{FF6F}=\\
+=\UTFM{FF70}\UTFM{FF71}\UTFM{FF72}\UTFM{FF73}\UTFM{FF74}\UTFM{FF75}\UTFM{FF76}\UTFM{FF77}%
+=\UTFM{FF78}\UTFM{FF79}\UTFM{FF7A}\UTFM{FF7B}\UTFM{FF7C}\UTFM{FF7D}\UTFM{FF7E}\UTFM{FF7F}=\\
+=\UTFM{FF80}\UTFM{FF81}\UTFM{FF82}\UTFM{FF83}\UTFM{FF84}\UTFM{FF85}\UTFM{FF86}\UTFM{FF87}%
+=\UTFM{FF88}\UTFM{FF89}\UTFM{FF8A}\UTFM{FF8B}\UTFM{FF8C}\UTFM{FF8D}\UTFM{FF8E}\UTFM{FF8F}=\\
+=\UTFM{FF90}\UTFM{FF91}\UTFM{FF92}\UTFM{FF93}\UTFM{FF94}\UTFM{FF95}\UTFM{FF96}\UTFM{FF97}%
+=\UTFM{FF98}\UTFM{FF99}\UTFM{FF9A}\UTFM{FF9B}\UTFM{FF9C}\UTFM{FF9D}\UTFM{FF9E}\UTFM{FF9F}=
+
+=\phantom{\CID{327}}\CID{327}\CID{328}\CID{329}\CID{330}\CID{331}\CID{332}\CID{333}%
+=\CID{334}\CID{335}\CID{336}\CID{337}\CID{338}\CID{339}\CID{340}\CID{341}=\\
+=\CID{342}\CID{343}\CID{344}\CID{345}\CID{346}\CID{347}\CID{348}\CID{349}%
+=\CID{350}\CID{351}\CID{352}\CID{353}\CID{354}\CID{355}\CID{356}\CID{357}=\\
+=\CID{358}\CID{359}\CID{360}\CID{361}\CID{362}\CID{363}\CID{364}\CID{365}%
+=\CID{366}\CID{367}\CID{368}\CID{369}\CID{370}\CID{371}\CID{372}\CID{373}=\\
+=\CID{374}\CID{375}\CID{376}\CID{377}\CID{378}\CID{379}\CID{380}\CID{381}%
+=\CID{382}\CID{383}\CID{384}\CID{385}\CID{386}\CID{387}\CID{388}\CID{389}=
+}
+
+\ifdeluxemode
+{\ltseries%
+[mc/l]
+
+=\phantom{\UTF{FF61}}\UTF{FF61}\UTF{FF62}\UTF{FF63}\UTF{FF64}\UTF{FF65}\UTF{FF66}\UTF{FF67}%
+=\UTF{FF68}\UTF{FF69}\UTF{FF6A}\UTF{FF6B}\UTF{FF6C}\UTF{FF6D}\UTF{FF6E}\UTF{FF6F}=\\
+=\UTF{FF70}\UTF{FF71}\UTF{FF72}\UTF{FF73}\UTF{FF74}\UTF{FF75}\UTF{FF76}\UTF{FF77}%
+=\UTF{FF78}\UTF{FF79}\UTF{FF7A}\UTF{FF7B}\UTF{FF7C}\UTF{FF7D}\UTF{FF7E}\UTF{FF7F}=\\
+=\UTF{FF80}\UTF{FF81}\UTF{FF82}\UTF{FF83}\UTF{FF84}\UTF{FF85}\UTF{FF86}\UTF{FF87}%
+=\UTF{FF88}\UTF{FF89}\UTF{FF8A}\UTF{FF8B}\UTF{FF8C}\UTF{FF8D}\UTF{FF8E}\UTF{FF8F}=\\
+=\UTF{FF90}\UTF{FF91}\UTF{FF92}\UTF{FF93}\UTF{FF94}\UTF{FF95}\UTF{FF96}\UTF{FF97}%
+=\UTF{FF98}\UTF{FF99}\UTF{FF9A}\UTF{FF9B}\UTF{FF9C}\UTF{FF9D}\UTF{FF9E}\UTF{FF9F}=
+
+=\phantom{\UTFM{FF61}}\UTFM{FF61}\UTFM{FF62}\UTFM{FF63}\UTFM{FF64}\UTFM{FF65}\UTFM{FF66}\UTFM{FF67}%
+=\UTFM{FF68}\UTFM{FF69}\UTFM{FF6A}\UTFM{FF6B}\UTFM{FF6C}\UTFM{FF6D}\UTFM{FF6E}\UTFM{FF6F}=\\
+=\UTFM{FF70}\UTFM{FF71}\UTFM{FF72}\UTFM{FF73}\UTFM{FF74}\UTFM{FF75}\UTFM{FF76}\UTFM{FF77}%
+=\UTFM{FF78}\UTFM{FF79}\UTFM{FF7A}\UTFM{FF7B}\UTFM{FF7C}\UTFM{FF7D}\UTFM{FF7E}\UTFM{FF7F}=\\
+=\UTFM{FF80}\UTFM{FF81}\UTFM{FF82}\UTFM{FF83}\UTFM{FF84}\UTFM{FF85}\UTFM{FF86}\UTFM{FF87}%
+=\UTFM{FF88}\UTFM{FF89}\UTFM{FF8A}\UTFM{FF8B}\UTFM{FF8C}\UTFM{FF8D}\UTFM{FF8E}\UTFM{FF8F}=\\
+=\UTFM{FF90}\UTFM{FF91}\UTFM{FF92}\UTFM{FF93}\UTFM{FF94}\UTFM{FF95}\UTFM{FF96}\UTFM{FF97}%
+=\UTFM{FF98}\UTFM{FF99}\UTFM{FF9A}\UTFM{FF9B}\UTFM{FF9C}\UTFM{FF9D}\UTFM{FF9E}\UTFM{FF9F}=
+
+=\phantom{\CID{327}}\CID{327}\CID{328}\CID{329}\CID{330}\CID{331}\CID{332}\CID{333}%
+=\CID{334}\CID{335}\CID{336}\CID{337}\CID{338}\CID{339}\CID{340}\CID{341}=\\
+=\CID{342}\CID{343}\CID{344}\CID{345}\CID{346}\CID{347}\CID{348}\CID{349}%
+=\CID{350}\CID{351}\CID{352}\CID{353}\CID{354}\CID{355}\CID{356}\CID{357}=\\
+=\CID{358}\CID{359}\CID{360}\CID{361}\CID{362}\CID{363}\CID{364}\CID{365}%
+=\CID{366}\CID{367}\CID{368}\CID{369}\CID{370}\CID{371}\CID{372}\CID{373}=\\
+=\CID{374}\CID{375}\CID{376}\CID{377}\CID{378}\CID{379}\CID{380}\CID{381}%
+=\CID{382}\CID{383}\CID{384}\CID{385}\CID{386}\CID{387}\CID{388}\CID{389}=
+}
+\fi
+
+{\gtfamily
+[gt/m]
+
+=\phantom{\UTF{FF61}}\UTF{FF61}\UTF{FF62}\UTF{FF63}\UTF{FF64}\UTF{FF65}\UTF{FF66}\UTF{FF67}%
+=\UTF{FF68}\UTF{FF69}\UTF{FF6A}\UTF{FF6B}\UTF{FF6C}\UTF{FF6D}\UTF{FF6E}\UTF{FF6F}=\\
+=\UTF{FF70}\UTF{FF71}\UTF{FF72}\UTF{FF73}\UTF{FF74}\UTF{FF75}\UTF{FF76}\UTF{FF77}%
+=\UTF{FF78}\UTF{FF79}\UTF{FF7A}\UTF{FF7B}\UTF{FF7C}\UTF{FF7D}\UTF{FF7E}\UTF{FF7F}=\\
+=\UTF{FF80}\UTF{FF81}\UTF{FF82}\UTF{FF83}\UTF{FF84}\UTF{FF85}\UTF{FF86}\UTF{FF87}%
+=\UTF{FF88}\UTF{FF89}\UTF{FF8A}\UTF{FF8B}\UTF{FF8C}\UTF{FF8D}\UTF{FF8E}\UTF{FF8F}=\\
+=\UTF{FF90}\UTF{FF91}\UTF{FF92}\UTF{FF93}\UTF{FF94}\UTF{FF95}\UTF{FF96}\UTF{FF97}%
+=\UTF{FF98}\UTF{FF99}\UTF{FF9A}\UTF{FF9B}\UTF{FF9C}\UTF{FF9D}\UTF{FF9E}\UTF{FF9F}=
+
+=\phantom{\UTFM{FF61}}\UTFM{FF61}\UTFM{FF62}\UTFM{FF63}\UTFM{FF64}\UTFM{FF65}\UTFM{FF66}\UTFM{FF67}%
+=\UTFM{FF68}\UTFM{FF69}\UTFM{FF6A}\UTFM{FF6B}\UTFM{FF6C}\UTFM{FF6D}\UTFM{FF6E}\UTFM{FF6F}=\\
+=\UTFM{FF70}\UTFM{FF71}\UTFM{FF72}\UTFM{FF73}\UTFM{FF74}\UTFM{FF75}\UTFM{FF76}\UTFM{FF77}%
+=\UTFM{FF78}\UTFM{FF79}\UTFM{FF7A}\UTFM{FF7B}\UTFM{FF7C}\UTFM{FF7D}\UTFM{FF7E}\UTFM{FF7F}=\\
+=\UTFM{FF80}\UTFM{FF81}\UTFM{FF82}\UTFM{FF83}\UTFM{FF84}\UTFM{FF85}\UTFM{FF86}\UTFM{FF87}%
+=\UTFM{FF88}\UTFM{FF89}\UTFM{FF8A}\UTFM{FF8B}\UTFM{FF8C}\UTFM{FF8D}\UTFM{FF8E}\UTFM{FF8F}=\\
+=\UTFM{FF90}\UTFM{FF91}\UTFM{FF92}\UTFM{FF93}\UTFM{FF94}\UTFM{FF95}\UTFM{FF96}\UTFM{FF97}%
+=\UTFM{FF98}\UTFM{FF99}\UTFM{FF9A}\UTFM{FF9B}\UTFM{FF9C}\UTFM{FF9D}\UTFM{FF9E}\UTFM{FF9F}=
+
+
+=\phantom{\CID{327}}\CID{327}\CID{328}\CID{329}\CID{330}\CID{331}\CID{332}\CID{333}%
+=\CID{334}\CID{335}\CID{336}\CID{337}\CID{338}\CID{339}\CID{340}\CID{341}=\\
+=\CID{342}\CID{343}\CID{344}\CID{345}\CID{346}\CID{347}\CID{348}\CID{349}%
+=\CID{350}\CID{351}\CID{352}\CID{353}\CID{354}\CID{355}\CID{356}\CID{357}=\\
+=\CID{358}\CID{359}\CID{360}\CID{361}\CID{362}\CID{363}\CID{364}\CID{365}%
+=\CID{366}\CID{367}\CID{368}\CID{369}\CID{370}\CID{371}\CID{372}\CID{373}=\\
+=\CID{374}\CID{375}\CID{376}\CID{377}\CID{378}\CID{379}\CID{380}\CID{381}%
+=\CID{382}\CID{383}\CID{384}\CID{385}\CID{386}\CID{387}\CID{388}\CID{389}=
+
+{\bfseries%
+[gt/bx]
+
+=\phantom{\UTF{FF61}}\UTF{FF61}\UTF{FF62}\UTF{FF63}\UTF{FF64}\UTF{FF65}\UTF{FF66}\UTF{FF67}%
+=\UTF{FF68}\UTF{FF69}\UTF{FF6A}\UTF{FF6B}\UTF{FF6C}\UTF{FF6D}\UTF{FF6E}\UTF{FF6F}=\\
+=\UTF{FF70}\UTF{FF71}\UTF{FF72}\UTF{FF73}\UTF{FF74}\UTF{FF75}\UTF{FF76}\UTF{FF77}%
+=\UTF{FF78}\UTF{FF79}\UTF{FF7A}\UTF{FF7B}\UTF{FF7C}\UTF{FF7D}\UTF{FF7E}\UTF{FF7F}=\\
+=\UTF{FF80}\UTF{FF81}\UTF{FF82}\UTF{FF83}\UTF{FF84}\UTF{FF85}\UTF{FF86}\UTF{FF87}%
+=\UTF{FF88}\UTF{FF89}\UTF{FF8A}\UTF{FF8B}\UTF{FF8C}\UTF{FF8D}\UTF{FF8E}\UTF{FF8F}=\\
+=\UTF{FF90}\UTF{FF91}\UTF{FF92}\UTF{FF93}\UTF{FF94}\UTF{FF95}\UTF{FF96}\UTF{FF97}%
+=\UTF{FF98}\UTF{FF99}\UTF{FF9A}\UTF{FF9B}\UTF{FF9C}\UTF{FF9D}\UTF{FF9E}\UTF{FF9F}=
+
+=\phantom{\UTFM{FF61}}\UTFM{FF61}\UTFM{FF62}\UTFM{FF63}\UTFM{FF64}\UTFM{FF65}\UTFM{FF66}\UTFM{FF67}%
+=\UTFM{FF68}\UTFM{FF69}\UTFM{FF6A}\UTFM{FF6B}\UTFM{FF6C}\UTFM{FF6D}\UTFM{FF6E}\UTFM{FF6F}=\\
+=\UTFM{FF70}\UTFM{FF71}\UTFM{FF72}\UTFM{FF73}\UTFM{FF74}\UTFM{FF75}\UTFM{FF76}\UTFM{FF77}%
+=\UTFM{FF78}\UTFM{FF79}\UTFM{FF7A}\UTFM{FF7B}\UTFM{FF7C}\UTFM{FF7D}\UTFM{FF7E}\UTFM{FF7F}=\\
+=\UTFM{FF80}\UTFM{FF81}\UTFM{FF82}\UTFM{FF83}\UTFM{FF84}\UTFM{FF85}\UTFM{FF86}\UTFM{FF87}%
+=\UTFM{FF88}\UTFM{FF89}\UTFM{FF8A}\UTFM{FF8B}\UTFM{FF8C}\UTFM{FF8D}\UTFM{FF8E}\UTFM{FF8F}=\\
+=\UTFM{FF90}\UTFM{FF91}\UTFM{FF92}\UTFM{FF93}\UTFM{FF94}\UTFM{FF95}\UTFM{FF96}\UTFM{FF97}%
+=\UTFM{FF98}\UTFM{FF99}\UTFM{FF9A}\UTFM{FF9B}\UTFM{FF9C}\UTFM{FF9D}\UTFM{FF9E}\UTFM{FF9F}=
+
+=\phantom{\CID{327}}\CID{327}\CID{328}\CID{329}\CID{330}\CID{331}\CID{332}\CID{333}%
+=\CID{334}\CID{335}\CID{336}\CID{337}\CID{338}\CID{339}\CID{340}\CID{341}=\\
+=\CID{342}\CID{343}\CID{344}\CID{345}\CID{346}\CID{347}\CID{348}\CID{349}%
+=\CID{350}\CID{351}\CID{352}\CID{353}\CID{354}\CID{355}\CID{356}\CID{357}=\\
+=\CID{358}\CID{359}\CID{360}\CID{361}\CID{362}\CID{363}\CID{364}\CID{365}%
+=\CID{366}\CID{367}\CID{368}\CID{369}\CID{370}\CID{371}\CID{372}\CID{373}=\\
+=\CID{374}\CID{375}\CID{376}\CID{377}\CID{378}\CID{379}\CID{380}\CID{381}%
+=\CID{382}\CID{383}\CID{384}\CID{385}\CID{386}\CID{387}\CID{388}\CID{389}=
+}
+
+\ifdeluxemode
+{\ebseries%
+[gt/eb]
+
+=\phantom{\UTF{FF61}}\UTF{FF61}\UTF{FF62}\UTF{FF63}\UTF{FF64}\UTF{FF65}\UTF{FF66}\UTF{FF67}%
+=\UTF{FF68}\UTF{FF69}\UTF{FF6A}\UTF{FF6B}\UTF{FF6C}\UTF{FF6D}\UTF{FF6E}\UTF{FF6F}=\\
+=\UTF{FF70}\UTF{FF71}\UTF{FF72}\UTF{FF73}\UTF{FF74}\UTF{FF75}\UTF{FF76}\UTF{FF77}%
+=\UTF{FF78}\UTF{FF79}\UTF{FF7A}\UTF{FF7B}\UTF{FF7C}\UTF{FF7D}\UTF{FF7E}\UTF{FF7F}=\\
+=\UTF{FF80}\UTF{FF81}\UTF{FF82}\UTF{FF83}\UTF{FF84}\UTF{FF85}\UTF{FF86}\UTF{FF87}%
+=\UTF{FF88}\UTF{FF89}\UTF{FF8A}\UTF{FF8B}\UTF{FF8C}\UTF{FF8D}\UTF{FF8E}\UTF{FF8F}=\\
+=\UTF{FF90}\UTF{FF91}\UTF{FF92}\UTF{FF93}\UTF{FF94}\UTF{FF95}\UTF{FF96}\UTF{FF97}%
+=\UTF{FF98}\UTF{FF99}\UTF{FF9A}\UTF{FF9B}\UTF{FF9C}\UTF{FF9D}\UTF{FF9E}\UTF{FF9F}=
+
+=\phantom{\UTFM{FF61}}\UTFM{FF61}\UTFM{FF62}\UTFM{FF63}\UTFM{FF64}\UTFM{FF65}\UTFM{FF66}\UTFM{FF67}%
+=\UTFM{FF68}\UTFM{FF69}\UTFM{FF6A}\UTFM{FF6B}\UTFM{FF6C}\UTFM{FF6D}\UTFM{FF6E}\UTFM{FF6F}=\\
+=\UTFM{FF70}\UTFM{FF71}\UTFM{FF72}\UTFM{FF73}\UTFM{FF74}\UTFM{FF75}\UTFM{FF76}\UTFM{FF77}%
+=\UTFM{FF78}\UTFM{FF79}\UTFM{FF7A}\UTFM{FF7B}\UTFM{FF7C}\UTFM{FF7D}\UTFM{FF7E}\UTFM{FF7F}=\\
+=\UTFM{FF80}\UTFM{FF81}\UTFM{FF82}\UTFM{FF83}\UTFM{FF84}\UTFM{FF85}\UTFM{FF86}\UTFM{FF87}%
+=\UTFM{FF88}\UTFM{FF89}\UTFM{FF8A}\UTFM{FF8B}\UTFM{FF8C}\UTFM{FF8D}\UTFM{FF8E}\UTFM{FF8F}=\\
+=\UTFM{FF90}\UTFM{FF91}\UTFM{FF92}\UTFM{FF93}\UTFM{FF94}\UTFM{FF95}\UTFM{FF96}\UTFM{FF97}%
+=\UTFM{FF98}\UTFM{FF99}\UTFM{FF9A}\UTFM{FF9B}\UTFM{FF9C}\UTFM{FF9D}\UTFM{FF9E}\UTFM{FF9F}=
+
+=\phantom{\CID{327}}\CID{327}\CID{328}\CID{329}\CID{330}\CID{331}\CID{332}\CID{333}%
+=\CID{334}\CID{335}\CID{336}\CID{337}\CID{338}\CID{339}\CID{340}\CID{341}=\\
+=\CID{342}\CID{343}\CID{344}\CID{345}\CID{346}\CID{347}\CID{348}\CID{349}%
+=\CID{350}\CID{351}\CID{352}\CID{353}\CID{354}\CID{355}\CID{356}\CID{357}=\\
+=\CID{358}\CID{359}\CID{360}\CID{361}\CID{362}\CID{363}\CID{364}\CID{365}%
+=\CID{366}\CID{367}\CID{368}\CID{369}\CID{370}\CID{371}\CID{372}\CID{373}=\\
+=\CID{374}\CID{375}\CID{376}\CID{377}\CID{378}\CID{379}\CID{380}\CID{381}%
+=\CID{382}\CID{383}\CID{384}\CID{385}\CID{386}\CID{387}\CID{388}\CID{389}=
+}
+\fi
+}
+
+%\ifdeluxemode
+{\mgfamily
+[mg/m]
+
+=\phantom{\UTF{FF61}}\UTF{FF61}\UTF{FF62}\UTF{FF63}\UTF{FF64}\UTF{FF65}\UTF{FF66}\UTF{FF67}%
+=\UTF{FF68}\UTF{FF69}\UTF{FF6A}\UTF{FF6B}\UTF{FF6C}\UTF{FF6D}\UTF{FF6E}\UTF{FF6F}=\\
+=\UTF{FF70}\UTF{FF71}\UTF{FF72}\UTF{FF73}\UTF{FF74}\UTF{FF75}\UTF{FF76}\UTF{FF77}%
+=\UTF{FF78}\UTF{FF79}\UTF{FF7A}\UTF{FF7B}\UTF{FF7C}\UTF{FF7D}\UTF{FF7E}\UTF{FF7F}=\\
+=\UTF{FF80}\UTF{FF81}\UTF{FF82}\UTF{FF83}\UTF{FF84}\UTF{FF85}\UTF{FF86}\UTF{FF87}%
+=\UTF{FF88}\UTF{FF89}\UTF{FF8A}\UTF{FF8B}\UTF{FF8C}\UTF{FF8D}\UTF{FF8E}\UTF{FF8F}=\\
+=\UTF{FF90}\UTF{FF91}\UTF{FF92}\UTF{FF93}\UTF{FF94}\UTF{FF95}\UTF{FF96}\UTF{FF97}%
+=\UTF{FF98}\UTF{FF99}\UTF{FF9A}\UTF{FF9B}\UTF{FF9C}\UTF{FF9D}\UTF{FF9E}\UTF{FF9F}=
+
+=\phantom{\UTFM{FF61}}\UTFM{FF61}\UTFM{FF62}\UTFM{FF63}\UTFM{FF64}\UTFM{FF65}\UTFM{FF66}\UTFM{FF67}%
+=\UTFM{FF68}\UTFM{FF69}\UTFM{FF6A}\UTFM{FF6B}\UTFM{FF6C}\UTFM{FF6D}\UTFM{FF6E}\UTFM{FF6F}=\\
+=\UTFM{FF70}\UTFM{FF71}\UTFM{FF72}\UTFM{FF73}\UTFM{FF74}\UTFM{FF75}\UTFM{FF76}\UTFM{FF77}%
+=\UTFM{FF78}\UTFM{FF79}\UTFM{FF7A}\UTFM{FF7B}\UTFM{FF7C}\UTFM{FF7D}\UTFM{FF7E}\UTFM{FF7F}=\\
+=\UTFM{FF80}\UTFM{FF81}\UTFM{FF82}\UTFM{FF83}\UTFM{FF84}\UTFM{FF85}\UTFM{FF86}\UTFM{FF87}%
+=\UTFM{FF88}\UTFM{FF89}\UTFM{FF8A}\UTFM{FF8B}\UTFM{FF8C}\UTFM{FF8D}\UTFM{FF8E}\UTFM{FF8F}=\\
+=\UTFM{FF90}\UTFM{FF91}\UTFM{FF92}\UTFM{FF93}\UTFM{FF94}\UTFM{FF95}\UTFM{FF96}\UTFM{FF97}%
+=\UTFM{FF98}\UTFM{FF99}\UTFM{FF9A}\UTFM{FF9B}\UTFM{FF9C}\UTFM{FF9D}\UTFM{FF9E}\UTFM{FF9F}=
+
+=\phantom{\CID{327}}\CID{327}\CID{328}\CID{329}\CID{330}\CID{331}\CID{332}\CID{333}%
+=\CID{334}\CID{335}\CID{336}\CID{337}\CID{338}\CID{339}\CID{340}\CID{341}=\\
+=\CID{342}\CID{343}\CID{344}\CID{345}\CID{346}\CID{347}\CID{348}\CID{349}%
+=\CID{350}\CID{351}\CID{352}\CID{353}\CID{354}\CID{355}\CID{356}\CID{357}=\\
+=\CID{358}\CID{359}\CID{360}\CID{361}\CID{362}\CID{363}\CID{364}\CID{365}%
+=\CID{366}\CID{367}\CID{368}\CID{369}\CID{370}\CID{371}\CID{372}\CID{373}=\\
+=\CID{374}\CID{375}\CID{376}\CID{377}\CID{378}\CID{379}\CID{380}\CID{381}%
+=\CID{382}\CID{383}\CID{384}\CID{385}\CID{386}\CID{387}\CID{388}\CID{389}=
+}
+%\fi
+
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/test/jis2004.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/jis2004.tex
index 8842d51b0a4..8842d51b0a4 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/test/jis2004.tex
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/jis2004.tex
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/test/koreanexample.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/koreanexample.tex
index cf2b8ade3a2..cf2b8ade3a2 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/test/koreanexample.tex
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/koreanexample.tex
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/test/otftest.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/otftest.tex
index 57bee19e106..57bee19e106 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/test/otftest.tex
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/otftest.tex
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/test/pkanatest.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/pkanatest.tex
index dda71ea41f9..dda71ea41f9 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/test/pkanatest.tex
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/pkanatest.tex
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/test/pkanatest2.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/pkanatest2.tex
index 79c0107fe37..79c0107fe37 100644
--- a/Master/texmf-dist/doc/fonts/japanese-otf/test/pkanatest2.tex
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/pkanatest2.tex
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/Makefile b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/Makefile
new file mode 100644
index 00000000000..227e3dcd1d5
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/Makefile
@@ -0,0 +1,231 @@
+UPTEX = uptex
+PTEX = ptex
+UPLATEX = uplatex
+PLATEX = platex -kanji=utf8
+DVIPS = dvips
+DVIPDFMX = dvipdfmx -v
+PDVITYPE = pdvitype
+
+all: otf sp art brsg jis04 scale prop punct exclam mltwght
+
+otf: uplatex-otf platex-otf
+sp: uplatex-sp platex-sp
+art: uplatex-article platex-article
+brsg: uplatex-brsg platex-brsg
+jis04: uplatex-jis04 platex-jis04
+scale: uplatex-scale platex-scale
+prop: uplatex-prop platex-prop
+exclam: uplatex-exclam platex-exclam
+utfmacro: uplatex-utfmacro platex-utfmacro
+
+uplatex-otf:
+ for opt in default deluxe expert bold noreplace; do \
+ $(UPLATEX) "\def\option{$$opt}\def\class{ujarticle}\input" uotftest-utf8.tex ; \
+ mv uotftest-utf8.dvi uotftest-$$opt-h-uplatex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-h-uplatex.dvi ; \
+ $(UPLATEX) "\def\option{$$opt}\def\class{utarticle}\input" uotftest-utf8.tex ; \
+ mv uotftest-utf8.dvi uotftest-$$opt-v-uplatex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-v-uplatex.dvi ; \
+ done
+
+platex-otf:
+ for opt in default deluxe expert bold noreplace; do \
+ $(PLATEX) "\def\option{$$opt}\def\class{jarticle}\input" uotftest-utf8.tex ; \
+ mv uotftest-utf8.dvi uotftest-$$opt-h-platex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-h-platex.dvi ; \
+ $(PLATEX) "\def\option{$$opt}\def\class{tarticle}\input" uotftest-utf8.tex ; \
+ mv uotftest-utf8.dvi uotftest-$$opt-v-platex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-v-platex.dvi ; \
+ done
+
+uplatex-sp:
+ for opt in default deluxe expert bold noreplace; do \
+ $(UPLATEX) "\def\option{$$opt}\def\class{ujarticle}\input" uotf-sp-utf8.tex ; \
+ mv uotf-sp-utf8.dvi uotf-sp-$$opt-h-uplatex.dvi ; \
+ $(DVIPDFMX) uotf-sp-$$opt-h-uplatex.dvi ; \
+ $(UPLATEX) "\def\option{$$opt}\def\class{utarticle}\input" uotf-sp-utf8.tex ; \
+ mv uotf-sp-utf8.dvi uotf-sp-$$opt-v-uplatex.dvi ; \
+ $(DVIPDFMX) uotf-sp-$$opt-v-uplatex.dvi ; \
+ done
+
+platex-sp:
+ for opt in default deluxe expert bold noreplace; do \
+ $(PLATEX) "\def\option{$$opt}\def\class{jarticle}\input" uotf-sp-utf8.tex ; \
+ mv uotf-sp-utf8.dvi uotf-sp-$$opt-h-platex.dvi ; \
+ $(DVIPDFMX) uotf-sp-$$opt-h-platex.dvi ; \
+ $(PLATEX) "\def\option{$$opt}\def\class{tarticle}\input" uotf-sp-utf8.tex ; \
+ mv uotf-sp-utf8.dvi uotf-sp-$$opt-v-platex.dvi ; \
+ $(DVIPDFMX) uotf-sp-$$opt-v-platex.dvi ; \
+ done
+
+uplatex-article:
+ for opt in noreplace; do \
+ $(UPLATEX) "\def\option{$$opt}\def\class{article}\input" uotftest-utf8.tex ; \
+ mv uotftest-utf8.dvi uotftest-$$opt-a-uplatex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-a-uplatex.dvi ; \
+ done
+
+platex-article:
+ for opt in noreplace; do \
+ $(PLATEX) "\def\option{$$opt}\def\class{article}\input" uotftest-utf8.tex ; \
+ mv uotftest-utf8.dvi uotftest-$$opt-a-platex.dvi ; \
+ $(DVIPDFMX) uotftest-$$opt-a-platex.dvi ; \
+ done
+
+uplatex-brsg:
+ for opt in default expert; do \
+ for burasage in br oi; do \
+ $(UPLATEX) "\def\option{$$opt}\def\burasage{$$burasage}\def\class{ujbook}\input" upbrsgtest.tex ; \
+ mv upbrsgtest.dvi upbrsgtest-$$opt-$$burasage-h-uplatex.dvi ; \
+ $(DVIPDFMX) upbrsgtest-$$opt-$$burasage-h-uplatex.dvi ; \
+ $(UPLATEX) "\def\option{$$opt}\def\burasage{$$burasage}\def\class{utbook}\input" upbrsgtest.tex ; \
+ mv upbrsgtest.dvi upbrsgtest-$$opt-$$burasage-v-uplatex.dvi ; \
+ $(DVIPDFMX) upbrsgtest-$$opt-$$burasage-v-uplatex.dvi ; \
+ done \
+ done
+
+platex-brsg:
+ for opt in default expert; do \
+ for burasage in br oi; do \
+ $(PLATEX) "\def\option{$$opt}\def\burasage{$$burasage}\def\class{jbook}\input" upbrsgtest.tex ; \
+ mv upbrsgtest.dvi upbrsgtest-$$opt-$$burasage-h-platex.dvi ; \
+ $(DVIPDFMX) upbrsgtest-$$opt-$$burasage-h-platex.dvi ; \
+ $(PLATEX) "\def\option{$$opt}\def\burasage{$$burasage}\def\class{tbook}\input" upbrsgtest.tex ; \
+ mv upbrsgtest.dvi upbrsgtest-$$opt-$$burasage-v-platex.dvi ; \
+ $(DVIPDFMX) upbrsgtest-$$opt-$$burasage-v-platex.dvi ; \
+ done \
+ done
+
+uplatex-jis04:
+ for opt in default expert; do \
+ for brsg in br oi; do \
+ for jis in 00 04; do \
+ $(UPLATEX) "\def\option{$$opt}\def\burasage{$$brsg}\def\jisvar{$$jis}\def\class{ujarticle}\input" upjis2004.tex ; \
+ mv upjis2004.dvi upjis2004-$$opt-$$brsg-$$jis-h-uplatex.dvi ; \
+ $(DVIPDFMX) -f utfmacro-haranoaji.map upjis2004-$$opt-$$brsg-$$jis-h-uplatex.dvi ; \
+ $(UPLATEX) "\def\option{$$opt}\def\burasage{$$brsg}\def\jisvar{$$jis}\def\class{utarticle}\input" upjis2004.tex ; \
+ mv upjis2004.dvi upjis2004-$$opt-$$brsg-$$jis-v-uplatex.dvi ; \
+ $(DVIPDFMX) -f utfmacro-haranoaji.map upjis2004-$$opt-$$brsg-$$jis-v-uplatex.dvi ; \
+ done \
+ done \
+ done
+
+platex-jis04:
+ for opt in default expert; do \
+ for brsg in br oi; do \
+ for jis in 00 04; do \
+ $(PLATEX) "\def\option{$$opt}\def\burasage{$$brsg}\def\jisvar{$$jis}\def\class{jarticle}\input" upjis2004.tex ; \
+ mv upjis2004.dvi upjis2004-$$opt-$$brsg-$$jis-h-platex.dvi ; \
+ $(DVIPDFMX) -f utfmacro-haranoaji.map upjis2004-$$opt-$$brsg-$$jis-h-platex.dvi ; \
+ $(PLATEX) "\def\option{$$opt}\def\burasage{$$brsg}\def\jisvar{$$jis}\def\class{tarticle}\input" upjis2004.tex ; \
+ mv upjis2004.dvi upjis2004-$$opt-$$brsg-$$jis-v-platex.dvi ; \
+ $(DVIPDFMX) -f utfmacro-haranoaji.map upjis2004-$$opt-$$brsg-$$jis-v-platex.dvi ; \
+ done \
+ done \
+ done
+
+uplatex-scale:
+ for scl in default 0.5 1.0 1.5 2.0; do \
+ $(UPLATEX) "\def\scale{$$scl}\def\class{ujarticle}\input" otfscale.tex ; \
+ mv otfscale.dvi otfscale-$$scl-uplatex.dvi ; \
+ $(DVIPDFMX) otfscale-$$scl-uplatex.dvi ; \
+ done
+ for scl in default 1.0; do \
+ $(UPLATEX) "\def\scale{$$scl}\def\class{jsarticle}\input" otfscale.tex ; \
+ mv otfscale.dvi otfscale-$$scl-js-uplatex.dvi ; \
+ $(DVIPDFMX) otfscale-$$scl-js-uplatex.dvi ; \
+ done
+
+platex-scale:
+ for scl in default 0.5 1.0 1.5 2.0; do \
+ $(PLATEX) "\def\scale{$$scl}\def\class{jarticle}\input" otfscale.tex ; \
+ mv otfscale.dvi otfscale-$$scl-platex.dvi ; \
+ $(DVIPDFMX) otfscale-$$scl-platex.dvi ; \
+ done
+ for scl in default 1.0; do \
+ $(PLATEX) "\def\scale{$$scl}\def\class{jsarticle}\input" otfscale.tex ; \
+ mv otfscale.dvi otfscale-$$scl-js-platex.dvi ; \
+ $(DVIPDFMX) otfscale-$$scl-js-platex.dvi ; \
+ done
+
+uplatex-prop:
+ for test in 1 2; do \
+ $(UPLATEX) "\def\class{ujarticle}\input" upkanatest$$test.tex ; \
+ mv upkanatest$$test.dvi upkanatest$$test-h-uplatex.dvi ; \
+ $(DVIPDFMX) upkanatest$$test-h-uplatex.dvi ; \
+ $(UPLATEX) "\def\class{utarticle}\input" upkanatest$$test.tex ; \
+ mv upkanatest$$test.dvi upkanatest$$test-v-uplatex.dvi ; \
+ $(DVIPDFMX) -l upkanatest$$test-v-uplatex.dvi ; \
+ done
+
+platex-prop:
+ for test in 1 2; do \
+ $(PLATEX) "\def\class{jarticle}\input" upkanatest$$test.tex ; \
+ mv upkanatest$$test.dvi upkanatest$$test-h-platex.dvi ; \
+ $(DVIPDFMX) upkanatest$$test-h-platex.dvi ; \
+ $(PLATEX) "\def\class{tarticle}\input" upkanatest$$test.tex ; \
+ mv upkanatest$$test.dvi upkanatest$$test-v-platex.dvi ; \
+ $(DVIPDFMX) -l upkanatest$$test-v-platex.dvi ; \
+ done
+
+punct:
+ for opt in default deluxe expert bold noreplace; do \
+ $(UPLATEX) "\def\option{$$opt}\input" punctuation.tex ; \
+ mv punctuation.dvi punctuation-$$opt.dvi ; \
+ $(DVIPDFMX) punctuation-$$opt.dvi ; \
+ done
+
+uplatex-exclam:
+ for opt in default deluxe noreplace; do \
+ $(UPLATEX) "\def\option{$$opt}\input" exclam.tex ; \
+ mv exclam.dvi exclam-$$opt-uplatex.dvi ; \
+ $(DVIPDFMX) exclam-$$opt-uplatex.dvi ; \
+ done
+
+platex-exclam:
+ for opt in default deluxe noreplace; do \
+ $(PLATEX) "\def\option{$$opt}\input" exclam.tex ; \
+ mv exclam.dvi exclam-$$opt-platex.dvi ; \
+ $(DVIPDFMX) exclam-$$opt-platex.dvi ; \
+ done
+
+uplatex-utfmacro:
+ for opt in default deluxe bold; do \
+ $(UPLATEX) "\def\option{$$opt}\def\class{ujarticle}\input" utfmacro-cjk.tex ; \
+ mv utfmacro-cjk.dvi utfmacro-cjk-$$opt-h-uplatex.dvi ; \
+ $(DVIPDFMX) -f utfmacro-haranoaji.map utfmacro-cjk-$$opt-h-uplatex.dvi ; \
+ $(UPLATEX) "\def\option{$$opt}\def\class{utarticle}\input" utfmacro-cjk.tex ; \
+ mv utfmacro-cjk.dvi utfmacro-cjk-$$opt-v-uplatex.dvi ; \
+ $(DVIPDFMX) -l -f utfmacro-haranoaji.map utfmacro-cjk-$$opt-v-uplatex.dvi ; \
+ done
+
+platex-utfmacro:
+ for opt in default deluxe bold; do \
+ $(PLATEX) "\def\option{$$opt}\def\class{jarticle}\input" utfmacro-cjk.tex ; \
+ mv utfmacro-cjk.dvi utfmacro-cjk-$$opt-h-platex.dvi ; \
+ $(DVIPDFMX) -f utfmacro-haranoaji.map utfmacro-cjk-$$opt-h-platex.dvi ; \
+ $(PLATEX) "\def\option{$$opt}\def\class{tarticle}\input" utfmacro-cjk.tex ; \
+ mv utfmacro-cjk.dvi utfmacro-cjk-$$opt-v-platex.dvi ; \
+ $(DVIPDFMX) -l -f utfmacro-haranoaji.map utfmacro-cjk-$$opt-v-platex.dvi ; \
+ done
+
+mltwght:
+ $(UPLATEX) "\def\map{mapline}\input" cjk-mltwght-h.tex ; \
+ mv cjk-mltwght-h.dvi cjk-mltwght-h-line.dvi ; \
+ $(DVIPDFMX) cjk-mltwght-h-line.dvi ; \
+ $(UPLATEX) "\def\map{mapline}\input" cjk-mltwght-v.tex ; \
+ mv cjk-mltwght-v.dvi cjk-mltwght-v-line.dvi ; \
+ $(DVIPDFMX) -l cjk-mltwght-v-line.dvi ; \
+ $(UPLATEX) cjk-mltwght-h.tex ; \
+ mv cjk-mltwght-h.dvi cjk-mltwght-h-cmap.dvi ; \
+ $(DVIPDFMX) -f utfmacro-haranoaji.map cjk-mltwght-h-cmap.dvi ; \
+ $(UPLATEX) cjk-mltwght-v.tex ; \
+ mv cjk-mltwght-v.dvi cjk-mltwght-v-cmap.dvi ; \
+ $(DVIPDFMX) -l -f utfmacro-haranoaji.map cjk-mltwght-v-cmap.dvi ; \
+ $(UPLATEX) cjk-pxbabel-h.tex ; \
+ $(DVIPDFMX) -f utfmacro-haranoaji.map cjk-pxbabel-h.dvi ; \
+ $(UPLATEX) cjk-pxbabel-v.tex ; \
+ $(DVIPDFMX) -l -f utfmacro-haranoaji.map cjk-pxbabel-v.dvi
+
+clean:
+ rm -f *.aux *.log *.dvi *.pdf
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-mltwght-h.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-mltwght-h.tex
new file mode 100644
index 00000000000..de5b35bd25e
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-mltwght-h.tex
@@ -0,0 +1,202 @@
+% -*- coding: utf-8 -*-
+
+\documentclass{ujarticle}
+
+%\usepackage[uplatex]{otf}
+
+\makeatletter
+\ifx\map\@undefined
+ \def\map{default}
+\fi
+\def\@mapline@{mapline}
+\ifx\map\@mapline@
+\AtBeginDvi{\special{pdf:mapline uphminl-h unicode HaranoAjiMincho-Light.otf}}
+\AtBeginDvi{\special{pdf:mapline uphminr-h unicode HaranoAjiMincho-Medium.otf}}
+\AtBeginDvi{\special{pdf:mapline uphminb-h unicode HaranoAjiMincho-Bold.otf}}
+\AtBeginDvi{\special{pdf:mapline uphgothr-h unicode HaranoAjiGothic-ExtraLight.otf}}
+\AtBeginDvi{\special{pdf:mapline uphgothb-h unicode HaranoAjiGothic-Normal.otf}}
+\AtBeginDvi{\special{pdf:mapline uphgotheb-h unicode HaranoAjiGothic-Medium.otf}}
+\AtBeginDvi{\special{pdf:mapline uphmgothr-h unicode HaranoAjiGothic-Heavy.otf}}
+
+\AtBeginDvi{\special{pdf:mapline upaschminl-h unicode HaranoAjiMinchoCN-Light.otf}}
+\AtBeginDvi{\special{pdf:mapline upaschminr-h unicode HaranoAjiMinchoCN-Medium.otf}}
+\AtBeginDvi{\special{pdf:mapline upaschminb-h unicode HaranoAjiMinchoCN-Bold.otf}}
+\AtBeginDvi{\special{pdf:mapline upaschgothr-h unicode HaranoAjiGothicCN-ExtraLight.otf}}
+\AtBeginDvi{\special{pdf:mapline upaschgothb-h unicode HaranoAjiGothicCN-Normal.otf}}
+\AtBeginDvi{\special{pdf:mapline upaschgotheb-h unicode HaranoAjiGothicCN-Medium.otf}}
+\AtBeginDvi{\special{pdf:mapline upaschmgothr-h unicode HaranoAjiGothicCN-Heavy.otf}}
+
+\AtBeginDvi{\special{pdf:mapline upatchminl-h unicode HaranoAjiMinchoTW-Light.otf}}
+\AtBeginDvi{\special{pdf:mapline upatchminr-h unicode HaranoAjiMinchoTW-Medium.otf}}
+\AtBeginDvi{\special{pdf:mapline upatchminb-h unicode HaranoAjiMinchoTW-Bold.otf}}
+\AtBeginDvi{\special{pdf:mapline upatchgothr-h unicode HaranoAjiGothicTW-ExtraLight.otf}}
+\AtBeginDvi{\special{pdf:mapline upatchgothb-h unicode HaranoAjiGothicTW-Normal.otf}}
+\AtBeginDvi{\special{pdf:mapline upatchgotheb-h unicode HaranoAjiGothicTW-Medium.otf}}
+\AtBeginDvi{\special{pdf:mapline upatchmgothr-h unicode HaranoAjiGothicTW-Heavy.otf}}
+
+\AtBeginDvi{\special{pdf:mapline upakorminl-h unicode HaranoAjiMinchoK1-Light.otf}}
+\AtBeginDvi{\special{pdf:mapline upakorminr-h unicode HaranoAjiMinchoK1-Medium.otf}}
+\AtBeginDvi{\special{pdf:mapline upakorminb-h unicode HaranoAjiMinchoK1-Bold.otf}}
+\AtBeginDvi{\special{pdf:mapline upakorgothr-h unicode HaranoAjiGothicK1-ExtraLight.otf}}
+\AtBeginDvi{\special{pdf:mapline upakorgothb-h unicode HaranoAjiGothicK1-Normal.otf}}
+\AtBeginDvi{\special{pdf:mapline upakorgotheb-h unicode HaranoAjiGothicK1-Medium.otf}}
+\AtBeginDvi{\special{pdf:mapline upakormgothr-h unicode HaranoAjiGothicK1-Heavy.otf}}
+\fi
+
+\makeatother
+
+\font\upjpnrml = upnmlminl-h at 10.0pt
+\font\upjpnrmm = upnmlminr-h at 10.0pt
+\font\upjpnrmb = upnmlminb-h at 10.0pt
+\font\upjpngtm = upnmlgothr-h at 10.0pt
+\font\upjpngtb = upnmlgothb-h at 10.0pt
+\font\upjpngte = upnmlgotheb-h at 10.0pt
+\font\upjpngth = upnmlmgothr-h at 10.0pt
+
+\font\upschrml = upnmschminl-h at 10.0pt
+\font\upschrmm = upnmschminr-h at 10.0pt
+\font\upschrmb = upnmschminb-h at 10.0pt
+\font\upschgtm = upnmschgothr-h at 10.0pt
+\font\upschgtb = upnmschgothb-h at 10.0pt
+\font\upschgte = upnmschgotheb-h at 10.0pt
+\font\upschgth = upnmschmgothr-h at 10.0pt
+
+\font\uptchrml = upnmtchminl-h at 10.0pt
+\font\uptchrmm = upnmtchminr-h at 10.0pt
+\font\uptchrmb = upnmtchminb-h at 10.0pt
+\font\uptchgtm = upnmtchgothr-h at 10.0pt
+\font\uptchgtb = upnmtchgothb-h at 10.0pt
+\font\uptchgte = upnmtchgotheb-h at 10.0pt
+\font\uptchgth = upnmtchmgothr-h at 10.0pt
+
+\font\upkorrml = upnmkorminl-h at 10.0pt
+\font\upkorrmm = upnmkorminr-h at 10.0pt
+\font\upkorrmb = upnmkorminb-h at 10.0pt
+\font\upkorgtm = upnmkorgothr-h at 10.0pt
+\font\upkorgtb = upnmkorgothb-h at 10.0pt
+\font\upkorgte = upnmkorgotheb-h at 10.0pt
+\font\upkorgth = upnmkormgothr-h at 10.0pt
+
+\textwidth170mm
+
+\begin{document}
+\parindent0mm
+map: \texttt{\map}
+
+\section{日本語}
+\upjpngtb 日本語
+
+\upjpnrml 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpnrmm 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpnrmb 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpngtm 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpngtb 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpngte 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpngth 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+
+\upjpnrmm
+=“おはよう,有難う.”=
+
+=「おはよう、有難う。」=
+
+=‘(おはよう・有難う。)’=
+
+=頑張れ!元気?=
+
+=\kchar"00AB回\kchar"00BB% U+00AB, U+00BBは width: Neutralなのでずれても不思議ではない。
+=\kchar"2018回\kchar"2019=\kchar"201C回\kchar"201D=\kchar"2329回\kchar"232A=\kchar"3008回\kchar"3009%
+=\kchar"300A回\kchar"300B=\kchar"300C回\kchar"300D=\kchar"300E回\kchar"300F=\kchar"3010回\kchar"3011=\\
+=\kchar"3014回\kchar"3015=\kchar"3016回\kchar"3017=\kchar"3018回\kchar"3019%
+=\kchar"301D回\kchar"301E=\kchar"301D回\kchar"301F%
+=\kchar"FF08回\kchar"FF09=\kchar"FF3B回\kchar"FF3D=\kchar"FF5B回\kchar"FF5D=\kchar"FF5F回\kchar"FF60=\\
+=回\kchar"00B7回=回・回=回:回=回;回=回\kchar"2013回=回\kchar"2014回=回\kchar"2015回=回…回=回‥回=
+
+
+\section{中国語簡体字}
+\upschgtb 简体中文
+
+\upschrml 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschrmm 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschrmb 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschgtm 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschgtb 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschgte 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschgth 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+
+\upschrmm
+=“早上好,谢谢你.”=
+
+=「早上好、谢谢你。」=
+
+=‘(早上好·谢谢你)’=
+
+=加油!你呢?=
+
+=\kchar"2018回\kchar"2019=\kchar"201C回\kchar"201D=\kchar"2329回\kchar"232A=\kchar"3008回\kchar"3009%
+=\kchar"300A回\kchar"300B=\kchar"300C回\kchar"300D=\kchar"300E回\kchar"300F=\kchar"3010回\kchar"3011=\\
+=\kchar"3014回\kchar"3015=\kchar"3016回\kchar"3017=\kchar"301D回\kchar"301E%
+=\kchar"FF08回\kchar"FF09=\kchar"FF3B回\kchar"FF3D=\kchar"FF5B回\kchar"FF5D=\\
+=回\kchar"00B7回=回:回=回;回=回\kchar"2014回=回\kchar"2015回=回…回=回‥回=
+
+
+\newpage
+
+\section{中国語繁体字}
+\upschgtb 繁體中文
+
+\uptchrml 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchrmm 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchrmb 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchgtm 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchgtb 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchgte 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchgth 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+
+\uptchrmm
+
+骨海直画器術述
+
+=“早上好,謝謝你.”=
+
+=「早上好、謝謝你。」=
+
+=‘(早上好·謝謝你)’=
+
+=加油!你呢?=
+
+=\kchar"2018回\kchar"2019=\kchar"201C回\kchar"201D=\kchar"2329回\kchar"232A=\kchar"3008回\kchar"3009%
+=\kchar"300A回\kchar"300B=\kchar"300C回\kchar"300D=\kchar"300E回\kchar"300F=\kchar"3010回\kchar"3011=\\
+=\kchar"3014回\kchar"3015=\kchar"301D回\kchar"301E=\kchar"FE59回\kchar"FE5A=\kchar"FE5B回\kchar"FE5C%
+=\kchar"FE5D回\kchar"FE5E=\kchar"FF08回\kchar"FF09=\kchar"FF3B回\kchar"FF3D=\kchar"FF5B回\kchar"FF5D=\\
+=回\kchar"00B7回=回:回=回;回=回\kchar"2013回=回\kchar"2014回=回…回=回‥回=
+
+
+\section{韓国語}
+\upkorgtb 한국어
+
+\upkorrml 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorrmm 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorrmb 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorgtm 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorgtb 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorgte 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorgth 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+
+\upkorrmm
+
+=“좋은 아침,고마워.”=
+
+=「좋은 아침、고마워。」=
+
+=‘(좋은 아침·고마워)’=
+
+=파이팅!안녕?=
+
+=\kchar"2018믐\kchar"2019=\kchar"201C믐\kchar"201D=\kchar"3008믐\kchar"3009%
+=\kchar"300A믐\kchar"300B=\kchar"300C믐\kchar"300D=\kchar"300E믐\kchar"300F=\kchar"3010믐\kchar"3011=\\
+=\kchar"3014믐\kchar"3015=\kchar"3016믐\kchar"3017=\kchar"3018믐\kchar"3019%
+=\kchar"FF08믐\kchar"FF09=\kchar"FF3B믐\kchar"FF3D=\kchar"FF5B믐\kchar"FF5D=\\
+=믐\kchar"00B7믐=믐:믐=믐;믐=믐\kchar"2013믐=믐\kchar"2014믐=믐…믐=믐‥믐=
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-mltwght-v.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-mltwght-v.tex
new file mode 100644
index 00000000000..115d009f713
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-mltwght-v.tex
@@ -0,0 +1,202 @@
+% -*- coding: utf-8 -*-
+
+\documentclass[landscape]{utarticle}
+
+%\usepackage[uplatex]{otf}
+
+\makeatletter
+\ifx\map\@undefined
+ \def\map{default}
+\fi
+\def\@mapline@{mapline}
+\ifx\map\@mapline@
+\AtBeginDvi{\special{pdf:mapline uphminl-v unicode HaranoAjiMincho-Light.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline uphminr-v unicode HaranoAjiMincho-Medium.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline uphminb-v unicode HaranoAjiMincho-Bold.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline uphgothr-v unicode HaranoAjiGothic-ExtraLight.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline uphgothb-v unicode HaranoAjiGothic-Normal.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline uphgotheb-v unicode HaranoAjiGothic-Medium.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline uphmgothr-v unicode HaranoAjiGothic-Heavy.otf -w 1}}
+
+\AtBeginDvi{\special{pdf:mapline upaschminl-v unicode HaranoAjiMinchoCN-Light.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upaschminr-v unicode HaranoAjiMinchoCN-Medium.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upaschminb-v unicode HaranoAjiMinchoCN-Bold.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upaschgothr-v unicode HaranoAjiGothicCN-ExtraLight.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upaschgothb-v unicode HaranoAjiGothicCN-Normal.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upaschgotheb-v unicode HaranoAjiGothicCN-Medium.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upaschmgothr-v unicode HaranoAjiGothicCN-Heavy.otf -w 1}}
+
+\AtBeginDvi{\special{pdf:mapline upatchminl-v unicode HaranoAjiMinchoTW-Light.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upatchminr-v unicode HaranoAjiMinchoTW-Medium.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upatchminb-v unicode HaranoAjiMinchoTW-Bold.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upatchgothr-v unicode HaranoAjiGothicTW-ExtraLight.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upatchgothb-v unicode HaranoAjiGothicTW-Normal.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upatchgotheb-v unicode HaranoAjiGothicTW-Medium.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upatchmgothr-v unicode HaranoAjiGothicTW-Heavy.otf -w 1}}
+
+\AtBeginDvi{\special{pdf:mapline upakorminl-v unicode HaranoAjiMinchoK1-Light.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upakorminr-v unicode HaranoAjiMinchoK1-Medium.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upakorminb-v unicode HaranoAjiMinchoK1-Bold.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upakorgothr-v unicode HaranoAjiGothicK1-ExtraLight.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upakorgothb-v unicode HaranoAjiGothicK1-Normal.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upakorgotheb-v unicode HaranoAjiGothicK1-Medium.otf -w 1}}
+\AtBeginDvi{\special{pdf:mapline upakormgothr-v unicode HaranoAjiGothicK1-Heavy.otf -w 1}}
+\fi
+
+\makeatother
+
+\font\upjpnrml = upnmlminl-v at 10.0pt
+\font\upjpnrmm = upnmlminr-v at 10.0pt
+\font\upjpnrmb = upnmlminb-v at 10.0pt
+\font\upjpngtm = upnmlgothr-v at 10.0pt
+\font\upjpngtb = upnmlgothb-v at 10.0pt
+\font\upjpngte = upnmlgotheb-v at 10.0pt
+\font\upjpngth = upnmlmgothr-v at 10.0pt
+
+\font\upschrml = upnmschminl-v at 10.0pt
+\font\upschrmm = upnmschminr-v at 10.0pt
+\font\upschrmb = upnmschminb-v at 10.0pt
+\font\upschgtm = upnmschgothr-v at 10.0pt
+\font\upschgtb = upnmschgothb-v at 10.0pt
+\font\upschgte = upnmschgotheb-v at 10.0pt
+\font\upschgth = upnmschmgothr-v at 10.0pt
+
+\font\uptchrml = upnmtchminl-v at 10.0pt
+\font\uptchrmm = upnmtchminr-v at 10.0pt
+\font\uptchrmb = upnmtchminb-v at 10.0pt
+\font\uptchgtm = upnmtchgothr-v at 10.0pt
+\font\uptchgtb = upnmtchgothb-v at 10.0pt
+\font\uptchgte = upnmtchgotheb-v at 10.0pt
+\font\uptchgth = upnmtchmgothr-v at 10.0pt
+
+\font\upkorrml = upnmkorminl-v at 10.0pt
+\font\upkorrmm = upnmkorminr-v at 10.0pt
+\font\upkorrmb = upnmkorminb-v at 10.0pt
+\font\upkorgtm = upnmkorgothr-v at 10.0pt
+\font\upkorgtb = upnmkorgothb-v at 10.0pt
+\font\upkorgte = upnmkorgotheb-v at 10.0pt
+\font\upkorgth = upnmkormgothr-v at 10.0pt
+
+\textwidth170mm
+
+\begin{document}
+\parindent0mm
+map: \texttt{\map}
+
+\section{日本語}
+\upjpngtb 日本語
+
+\upjpnrml 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpnrmm 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpnrmb 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpngtm 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpngtb 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpngte 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+\upjpngth 骨海直器述与 おはよう,元気?頑張れ!有難う。おわり\\
+
+\upjpnrmm
+=“おはよう,有難う.”=
+
+=「おはよう、有難う。」=
+
+=‘(おはよう・有難う。)’=
+
+=頑張れ!元気?=
+
+=\kchar"00AB回\kchar"00BB% U+00AB, U+00BBは width: Neutralなのでずれても不思議ではない。
+=\kchar"2018回\kchar"2019=\kchar"201C回\kchar"201D=\kchar"2329回\kchar"232A=\kchar"3008回\kchar"3009%
+=\kchar"300A回\kchar"300B=\kchar"300C回\kchar"300D=\kchar"300E回\kchar"300F=\kchar"3010回\kchar"3011=\\
+=\kchar"3014回\kchar"3015=\kchar"3016回\kchar"3017=\kchar"3018回\kchar"3019%
+=\kchar"301D回\kchar"301E=\kchar"301D回\kchar"301F%
+=\kchar"FF08回\kchar"FF09=\kchar"FF3B回\kchar"FF3D=\kchar"FF5B回\kchar"FF5D=\kchar"FF5F回\kchar"FF60=\\
+=回\kchar"00B7回=回・回=回:回=回;回=回\kchar"2013回=回\kchar"2014回=回\kchar"2015回=回…回=回‥回=
+
+
+\section{中国語簡体字}
+\upschgtb 简体中文
+
+\upschrml 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschrmm 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschrmb 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschgtm 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschgtb 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschgte 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+\upschgth 骨海直器述与 早上好,你呢?加油!谢谢你。完\\
+
+\upschrmm
+=“早上好,谢谢你.”=
+
+=「早上好、谢谢你。」=
+
+=‘(早上好·谢谢你)’=
+
+=加油!你呢?=
+
+=\kchar"2018回\kchar"2019=\kchar"201C回\kchar"201D=\kchar"2329回\kchar"232A=\kchar"3008回\kchar"3009%
+=\kchar"300A回\kchar"300B=\kchar"300C回\kchar"300D=\kchar"300E回\kchar"300F=\kchar"3010回\kchar"3011=\\
+=\kchar"3014回\kchar"3015=\kchar"3016回\kchar"3017=\kchar"301D回\kchar"301E%
+=\kchar"FF08回\kchar"FF09=\kchar"FF3B回\kchar"FF3D=\kchar"FF5B回\kchar"FF5D=\\
+=回\kchar"00B7回=回:回=回;回=回\kchar"2014回=回\kchar"2015回=回…回=回‥回=
+
+
+\newpage
+
+\section{中国語繁体字}
+\upschgtb 繁體中文
+
+\uptchrml 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchrmm 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchrmb 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchgtm 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchgtb 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchgte 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+\uptchgth 骨海直器述与 早上好,你呢?加油!謝謝你。完\\
+
+\uptchrmm
+
+骨海直画器術述
+
+=“早上好,謝謝你.”=
+
+=「早上好、謝謝你。」=
+
+=‘(早上好·謝謝你)’=
+
+=加油!你呢?=
+
+=\kchar"2018回\kchar"2019=\kchar"201C回\kchar"201D=\kchar"2329回\kchar"232A=\kchar"3008回\kchar"3009%
+=\kchar"300A回\kchar"300B=\kchar"300C回\kchar"300D=\kchar"300E回\kchar"300F=\kchar"3010回\kchar"3011=\\
+=\kchar"3014回\kchar"3015=\kchar"301D回\kchar"301E=\kchar"FE59回\kchar"FE5A=\kchar"FE5B回\kchar"FE5C%
+=\kchar"FE5D回\kchar"FE5E=\kchar"FF08回\kchar"FF09=\kchar"FF3B回\kchar"FF3D=\kchar"FF5B回\kchar"FF5D=\\
+=回\kchar"00B7回=回:回=回;回=回\kchar"2013回=回\kchar"2014回=回…回=回‥回=
+
+
+\section{韓国語}
+\upkorgtb 한국어
+
+\upkorrml 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorrmm 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorrmb 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorgtm 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorgtb 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorgte 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+\upkorgth 骨海直器述乭 좋은 아침,안녕?파이팅!고마워.끝\\
+
+\upkorrmm
+
+=“좋은 아침,고마워.”=
+
+=「좋은 아침、고마워。」=
+
+=‘(좋은 아침·고마워)’=
+
+=파이팅!안녕?=
+
+=\kchar"2018믐\kchar"2019=\kchar"201C믐\kchar"201D=\kchar"3008믐\kchar"3009%
+=\kchar"300A믐\kchar"300B=\kchar"300C믐\kchar"300D=\kchar"300E믐\kchar"300F=\kchar"3010믐\kchar"3011=\\
+=\kchar"3014믐\kchar"3015=\kchar"3016믐\kchar"3017=\kchar"3018믐\kchar"3019%
+=\kchar"FF08믐\kchar"FF09=\kchar"FF3B믐\kchar"FF3D=\kchar"FF5B믐\kchar"FF5D=\\
+=믐\kchar"00B7믐=믐:믐=믐;믐=믐\kchar"2013믐=믐\kchar"2014믐=믐…믐=믐‥믐=
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-pxbabel-h.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-pxbabel-h.tex
new file mode 100644
index 00000000000..4c6f560ca01
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-pxbabel-h.tex
@@ -0,0 +1,114 @@
+\documentclass[dvipdfmx]{ujarticle}
+
+\usepackage[uplatex,multi,deluxe]{otf}
+\usepackage[schinese,tchinese,korean,japanese,forcedeluxemulti]{pxbabel}
+
+% UniKS
+\pxDeclareBasicCJKShape{J21}{hmc}{l}{!upnmkorminl-h}
+\pxDeclareBasicCJKShape{J21}{hmc}{m}{!upnmkorminr-h}
+\pxDeclareBasicCJKShape{J21}{hmc}{bx}{!upnmkorminb-h}
+\pxDeclareBasicCJKShape{J21}{hgt}{m}{!upnmkorgothr-h}
+\pxDeclareBasicCJKShape{J21}{hgt}{bx}{!upnmkorgothb-h}
+\pxDeclareBasicCJKShape{J21}{hgt}{eb}{!upnmkorgotheb-h}
+\pxDeclareKanjiFamily{J21}{mg}
+\pxDeclareBasicCJKShape{J21}{mg}{m}{!upnmkormgothr-h}
+
+\pxDeclareBasicCJKShape{J31}{hmc}{l}{!upnmkorminl-v}
+\pxDeclareBasicCJKShape{J31}{hmc}{m}{!upnmkorminr-v}
+\pxDeclareBasicCJKShape{J31}{hmc}{bx}{!upnmkorminb-v}
+\pxDeclareBasicCJKShape{J31}{hgt}{m}{!upnmkorgothr-v}
+\pxDeclareBasicCJKShape{J31}{hgt}{bx}{!upnmkorgothb-v}
+\pxDeclareBasicCJKShape{J31}{hgt}{eb}{!upnmkorgotheb-v}
+\pxDeclareKanjiFamily{J31}{mg}
+\pxDeclareBasicCJKShape{J31}{mg}{m}{!upnmkormgothr-v}
+
+% UniGB
+\pxDeclareBasicCJKShape{J22}{hmc}{l}{!upnmschminl-h}
+\pxDeclareBasicCJKShape{J22}{hmc}{m}{!upnmschminr-h}
+\pxDeclareBasicCJKShape{J22}{hmc}{bx}{!upnmschminb-h}
+\pxDeclareBasicCJKShape{J22}{hgt}{m}{!upnmschgothr-h}
+\pxDeclareBasicCJKShape{J22}{hgt}{bx}{!upnmschgothb-h}
+\pxDeclareBasicCJKShape{J22}{hgt}{eb}{!upnmschgotheb-h}
+\pxDeclareKanjiFamily{J22}{mg}
+\pxDeclareBasicCJKShape{J22}{mg}{m}{!upnmschmgothr-h}
+
+\pxDeclareBasicCJKShape{J32}{hmc}{l}{!upnmschminl-v}
+\pxDeclareBasicCJKShape{J32}{hmc}{m}{!upnmschminr-v}
+\pxDeclareBasicCJKShape{J32}{hmc}{bx}{!upnmschminb-v}
+\pxDeclareBasicCJKShape{J32}{hgt}{m}{!upnmschgothr-v}
+\pxDeclareBasicCJKShape{J32}{hgt}{bx}{!upnmschgothb-v}
+\pxDeclareBasicCJKShape{J32}{hgt}{eb}{!upnmschgotheb-v}
+\pxDeclareKanjiFamily{J32}{mg}
+\pxDeclareBasicCJKShape{J32}{mg}{m}{!upnmschmgothr-v}
+
+% UniCNS
+\pxDeclareBasicCJKShape{J23}{hmc}{l}{!upnmtchminl-h}
+\pxDeclareBasicCJKShape{J23}{hmc}{m}{!upnmtchminr-h}
+\pxDeclareBasicCJKShape{J23}{hmc}{bx}{!upnmtchminb-h}
+\pxDeclareBasicCJKShape{J23}{hgt}{m}{!upnmtchgothr-h}
+\pxDeclareBasicCJKShape{J23}{hgt}{bx}{!upnmtchgothb-h}
+\pxDeclareBasicCJKShape{J23}{hgt}{eb}{!upnmtchgotheb-h}
+\pxDeclareKanjiFamily{J23}{mg}
+\pxDeclareBasicCJKShape{J23}{mg}{m}{!upnmtchmgothr-h}
+
+\pxDeclareBasicCJKShape{J33}{hmc}{l}{!upnmtchminl-v}
+\pxDeclareBasicCJKShape{J33}{hmc}{m}{!upnmtchminr-v}
+\pxDeclareBasicCJKShape{J33}{hmc}{bx}{!upnmtchminb-v}
+\pxDeclareBasicCJKShape{J33}{hgt}{m}{!upnmtchgothr-v}
+\pxDeclareBasicCJKShape{J33}{hgt}{bx}{!upnmtchgothb-v}
+\pxDeclareBasicCJKShape{J33}{hgt}{eb}{!upnmtchgotheb-v}
+\pxDeclareKanjiFamily{J33}{mg}
+\pxDeclareBasicCJKShape{J33}{mg}{m}{!upnmtchmgothr-v}
+
+\begin{document}
+\parindent0mm
+
+{\mcfamily
+ {\ltseries
+ 明朝・細\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}
+ {\mdseries
+ 明朝・中\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}
+ {\bfseries
+ 明朝・太\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}}
+
+{\gtfamily
+ {\mdseries
+ ゴシック・中\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}
+ {\bfseries
+ ゴシック・太\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}
+ {\ebseries
+ ゴシック・極太\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}}
+
+{\mgfamily
+ {\mdseries
+ 丸ゴシック\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-pxbabel-v.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-pxbabel-v.tex
new file mode 100644
index 00000000000..e306160ba77
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/cjk-pxbabel-v.tex
@@ -0,0 +1,114 @@
+\documentclass[dvipdfmx,landscape]{utarticle}
+
+\usepackage[uplatex,multi,deluxe]{otf}
+\usepackage[schinese,tchinese,korean,japanese,forcedeluxemulti]{pxbabel}
+
+% UniKS
+\pxDeclareBasicCJKShape{J21}{hmc}{l}{!upnmkorminl-h}
+\pxDeclareBasicCJKShape{J21}{hmc}{m}{!upnmkorminr-h}
+\pxDeclareBasicCJKShape{J21}{hmc}{bx}{!upnmkorminb-h}
+\pxDeclareBasicCJKShape{J21}{hgt}{m}{!upnmkorgothr-h}
+\pxDeclareBasicCJKShape{J21}{hgt}{bx}{!upnmkorgothb-h}
+\pxDeclareBasicCJKShape{J21}{hgt}{eb}{!upnmkorgotheb-h}
+\pxDeclareKanjiFamily{J21}{mg}
+\pxDeclareBasicCJKShape{J21}{mg}{m}{!upnmkormgothr-h}
+
+\pxDeclareBasicCJKShape{J31}{hmc}{l}{!upnmkorminl-v}
+\pxDeclareBasicCJKShape{J31}{hmc}{m}{!upnmkorminr-v}
+\pxDeclareBasicCJKShape{J31}{hmc}{bx}{!upnmkorminb-v}
+\pxDeclareBasicCJKShape{J31}{hgt}{m}{!upnmkorgothr-v}
+\pxDeclareBasicCJKShape{J31}{hgt}{bx}{!upnmkorgothb-v}
+\pxDeclareBasicCJKShape{J31}{hgt}{eb}{!upnmkorgotheb-v}
+\pxDeclareKanjiFamily{J31}{mg}
+\pxDeclareBasicCJKShape{J31}{mg}{m}{!upnmkormgothr-v}
+
+% UniGB
+\pxDeclareBasicCJKShape{J22}{hmc}{l}{!upnmschminl-h}
+\pxDeclareBasicCJKShape{J22}{hmc}{m}{!upnmschminr-h}
+\pxDeclareBasicCJKShape{J22}{hmc}{bx}{!upnmschminb-h}
+\pxDeclareBasicCJKShape{J22}{hgt}{m}{!upnmschgothr-h}
+\pxDeclareBasicCJKShape{J22}{hgt}{bx}{!upnmschgothb-h}
+\pxDeclareBasicCJKShape{J22}{hgt}{eb}{!upnmschgotheb-h}
+\pxDeclareKanjiFamily{J22}{mg}
+\pxDeclareBasicCJKShape{J22}{mg}{m}{!upnmschmgothr-h}
+
+\pxDeclareBasicCJKShape{J32}{hmc}{l}{!upnmschminl-v}
+\pxDeclareBasicCJKShape{J32}{hmc}{m}{!upnmschminr-v}
+\pxDeclareBasicCJKShape{J32}{hmc}{bx}{!upnmschminb-v}
+\pxDeclareBasicCJKShape{J32}{hgt}{m}{!upnmschgothr-v}
+\pxDeclareBasicCJKShape{J32}{hgt}{bx}{!upnmschgothb-v}
+\pxDeclareBasicCJKShape{J32}{hgt}{eb}{!upnmschgotheb-v}
+\pxDeclareKanjiFamily{J32}{mg}
+\pxDeclareBasicCJKShape{J32}{mg}{m}{!upnmschmgothr-v}
+
+% UniCNS
+\pxDeclareBasicCJKShape{J23}{hmc}{l}{!upnmtchminl-h}
+\pxDeclareBasicCJKShape{J23}{hmc}{m}{!upnmtchminr-h}
+\pxDeclareBasicCJKShape{J23}{hmc}{bx}{!upnmtchminb-h}
+\pxDeclareBasicCJKShape{J23}{hgt}{m}{!upnmtchgothr-h}
+\pxDeclareBasicCJKShape{J23}{hgt}{bx}{!upnmtchgothb-h}
+\pxDeclareBasicCJKShape{J23}{hgt}{eb}{!upnmtchgotheb-h}
+\pxDeclareKanjiFamily{J23}{mg}
+\pxDeclareBasicCJKShape{J23}{mg}{m}{!upnmtchmgothr-h}
+
+\pxDeclareBasicCJKShape{J33}{hmc}{l}{!upnmtchminl-v}
+\pxDeclareBasicCJKShape{J33}{hmc}{m}{!upnmtchminr-v}
+\pxDeclareBasicCJKShape{J33}{hmc}{bx}{!upnmtchminb-v}
+\pxDeclareBasicCJKShape{J33}{hgt}{m}{!upnmtchgothr-v}
+\pxDeclareBasicCJKShape{J33}{hgt}{bx}{!upnmtchgothb-v}
+\pxDeclareBasicCJKShape{J33}{hgt}{eb}{!upnmtchgotheb-v}
+\pxDeclareKanjiFamily{J33}{mg}
+\pxDeclareBasicCJKShape{J33}{mg}{m}{!upnmtchmgothr-v}
+
+\begin{document}
+\parindent0mm
+
+{\mcfamily
+ {\ltseries
+ 明朝・細\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}
+ {\mdseries
+ 明朝・中\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}
+ {\bfseries
+ 明朝・太\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}}
+
+{\gtfamily
+ {\mdseries
+ ゴシック・中\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}
+ {\bfseries
+ ゴシック・太\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}
+ {\ebseries
+ ゴシック・極太\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}}
+
+{\mgfamily
+ {\mdseries
+ 丸ゴシック\par
+ =日~骨海直器述~~\foreignlanguage{korean}{한~骨海直器述}%
+ ~~\foreignlanguage{schinese}{中·简~骨海直器述}~~\foreignlanguage{tchinese}{中·繁~骨海直器述}=\par
+ ポケモン。\foreignlanguage{korean}{포켓몬.}\foreignlanguage{schinese}{精灵宝可梦。}\foreignlanguage{tchinese}{精靈寶可夢。} Pokémon.
+ \par}}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/era.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/era.tex
new file mode 100644
index 00000000000..65be6c52452
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/era.tex
@@ -0,0 +1,111 @@
+% -*- coding: utf-8 -*-
+
+%%%%%%%%
+% ①,②,③,④,⑤,⑥ のどれかを実行すればよい。
+% ① platex, 新元号なし
+% $ platex era.tex
+% ② uplatex, 新元号なし
+% $ uplatex era.tex
+% ③ platex, 新元号あり
+% $ platex "\def\era{true}\input" era.tex
+% ④ uplatex, 新元号あり
+% $ uplatex "\def\era{true}\input" era.tex
+% ⑤ platex, 新元号あり、\ajLig{令和}も含む
+% $ platex "\def\era{full}\input" era.tex
+% ⑥ uplatex, 新元号あり、\ajLig{令和}も含む
+% $ uplatex "\def\era{full}\input" era.tex
+%%%%%%
+
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000 \uptexmodetrue\fi
+
+\makeatletter
+
+\def\@opt@{multi}
+\def\@default{default}
+\def\@full{full}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\class\@undefined
+ \ifuptexmode
+ \def\engine{upLaTeX}
+ \else
+ \def\engine{pLaTeX}
+ \fi
+\fi
+
+\newif\ifnewera\newerafalse
+\ifx\era\@undefined
+ \edef\era{なし}
+\else
+ \neweratrue
+ \ifx\era\@full
+ \def\ligNewEra{\ajLig{令和}}
+ \edef\era{あり (ajLigも含む)}
+ \else
+ \def\ligNewEra{\relax}
+ \edef\era{あり}
+ \fi
+\fi
+\typeout{## 新元号:\era ##}
+
+\documentclass[a4paper,draft,autodetect-engine]{jsarticle}
+
+\usepackage{plext}
+\usepackage[\@opt@]{otf}
+
+\makeatother
+\edef\bs{$\backslash$\kern0em}
+
+\begin{document}
+\parindent0pt
+
+エンジン:\texttt{\engine}\\
+オプション:\texttt{\option}\\
+新元号:\era
+
+\vskip1zh
+
+\bs{}ajLig: \ajLig{明治}\ajLig{大正}\ajLig{昭和}\ajLig{平成}\ifnewera\ligNewEra\fi
+
+\bs{}UTF: \UTF{337E}\UTF{337D}\UTF{337C}\UTF{337B}\ifnewera\UTF{32FF}\fi
+
+\bs{}CID: \CID{7621}\CID{7622}\CID{7623}\CID{8323}\ifnewera\CID{23058}\fi
+
+\ifuptexmode
+
+UTF-8: ㍾㍽㍼㍻\ifnewera ㋿\fi
+
+\bs{}kchar: \kchar"337E\kchar"337D\kchar"337C\kchar"337B\ifnewera\kchar"32FF\fi
+
+\fi
+
+\vskip1zh
+
+\parbox<t>{25.0zw}{
+
+\bs{}ajLig: \ajLig{明治}\ajLig{大正}\ajLig{昭和}\ajLig{平成}\ifnewera\ligNewEra\fi
+
+\bs{}UTF: \UTF{337E}\UTF{337D}\UTF{337C}\UTF{337B}\ifnewera\UTF{32FF}\fi
+
+\bs{}CID: \CID{12041}\CID{12042}\CID{12043}\CID{12044}\ifnewera\CID{23059}\fi
+
+\ifuptexmode
+
+UTF-8: ㍾㍽㍼㍻\ifnewera ㋿\fi
+
+\bs{}kchar: \kchar"337E\kchar"337D\kchar"337C\kchar"337B\ifnewera\kchar"32FF\fi
+
+\fi
+
+}
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/exclam.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/exclam.tex
new file mode 100644
index 00000000000..2f8f1c38185
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/exclam.tex
@@ -0,0 +1,133 @@
+% -*- coding: utf-8 -*-
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000 \uptexmodetrue\fi
+
+\makeatletter
+
+\def\@opt@{multi}
+\def\@default{default}
+\def\@jarticle{jarticle}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\class\@undefined
+ \ifuptexmode
+ \def\class{ujarticle}
+ \else
+ \def\class{jarticle}
+ \fi
+\fi
+
+\ifuptexmode
+ \edef\@opt@{uplatex,\@opt@}
+\fi
+
+\documentclass[a4paper,draft]{\class}
+
+\usepackage{plext}
+\usepackage[\@opt@]{otf}
+
+\makeatother
+
+\begin{document}
+\parindent0pt
+
+クラス:\texttt{\class}\\
+オプション:\texttt{\option}
+
+\vskip1zh
+
+あっ!あっ?ああ!ああ?驚いた。\\
+あっ! あっ? ああ! ああ? 驚いた。\\
+あっ!あっ?と驚き、ああ!ああ?と嘆く。\\
+あっ!\inhibitglue あっ?\inhibitglue と驚き、
+ああ!\inhibitglue ああ?\inhibitglue と嘆く。\\
+あっ\,!\inhibitglue\,あっ\,?\inhibitglue\,と驚き、
+ああ\,!\inhibitglue\,ああ\,?\inhibitglue\,と嘆く。\\
+あっ!\<あっ?\<と驚き、
+ああ!\<ああ?\<と嘆く。\\
+あっ\,!\<\,あっ\,?\<\,と驚き、
+ああ\,!\<\,ああ\,?\<\,と嘆く。
+
+\ifuptexmode
+
+あっ‼あっ⁇ああ‼ああ⁇驚いた。\\
+あっ‼ あっ⁇ ああ‼ ああ⁇ 驚いた。\\
+あっ‼あっ⁇と驚き、ああ‼ああ⁇と嘆く。\\
+あっ‼\inhibitglue あっ⁇\inhibitglue と驚き、
+ああ‼\inhibitglue ああ⁇\inhibitglue と嘆く。\\
+あっ\,‼\inhibitglue\,あっ\,⁇\inhibitglue\,と驚き、
+ああ\,‼\inhibitglue\,ああ\,⁇\inhibitglue\,と嘆く。\\
+あっ‼\<あっ⁇\<と驚き、
+ああ‼\<ああ⁇\<と嘆く。\\
+あっ\,‼\<\,あっ\,⁇\<\,と驚き、
+ああ\,‼\<\,ああ\,⁇\<\,と嘆く。
+
+あっ⁈あっ⁉ああ⁈ああ⁉驚いた。\\
+あっ⁈ あっ⁉ ああ⁈ ああ⁉ 驚いた。\\
+あっ⁈あっ⁉と驚き、ああ⁈ああ⁉と嘆く。\\
+あっ⁈\inhibitglue あっ⁉\inhibitglue と驚き、
+ああ⁈\inhibitglue ああ⁉\inhibitglue と嘆く。\\
+あっ\,⁈\inhibitglue\,あっ\,⁉\inhibitglue\,と驚き、
+ああ\,⁈\inhibitglue\,ああ\,⁉\inhibitglue\,と嘆く。\\
+あっ⁈\<あっ⁉\<と驚き、
+ああ⁈\<ああ⁉\<と嘆く。\\
+あっ\,⁈\<\,あっ\,⁉\<\,と驚き、
+ああ\,⁈\<\,ああ\,⁉\<\,と嘆く。
+
+\fi
+
+\vskip1zh
+
+\parbox<t>{25.0zw}{
+
+あっ!あっ?ああ!ああ?驚いた。\\
+あっ! あっ? ああ! ああ? 驚いた。\\
+あっ!あっ?と驚き、ああ!ああ?と嘆く。\\
+あっ!\inhibitglue あっ?\inhibitglue と驚き、
+ああ!\inhibitglue ああ?\inhibitglue と嘆く。\\
+あっ\,!\inhibitglue\,あっ\,?\inhibitglue\,と驚き、
+ああ\,!\inhibitglue\,ああ\,?\inhibitglue\,と嘆く。\\
+あっ!\<あっ?\<と驚き、
+ああ!\<ああ?\<と嘆く。\\
+あっ\,!\<\,あっ\,?\<\,と驚き、
+ああ\,!\<\,ああ\,?\<\,と嘆く。
+
+\ifuptexmode
+
+あっ‼あっ⁇ああ‼ああ⁇驚いた。\\
+あっ‼ あっ⁇ ああ‼ ああ⁇ 驚いた。\\
+あっ‼あっ⁇と驚き、ああ‼ああ⁇と嘆く。\\
+あっ‼\inhibitglue あっ⁇\inhibitglue と驚き、
+ああ‼\inhibitglue ああ⁇\inhibitglue と嘆く。\\
+あっ\,‼\inhibitglue\,あっ\,⁇\inhibitglue\,と驚き、
+ああ\,‼\inhibitglue\,ああ\,⁇\inhibitglue\,と嘆く。\\
+あっ‼\<あっ⁇\<と驚き、
+ああ‼\<ああ⁇\<と嘆く。\\
+あっ\,‼\<\,あっ\,⁇\<\,と驚き、
+ああ\,‼\<\,ああ\,⁇\<\,と嘆く。
+
+あっ⁈あっ⁉ああ⁈ああ⁉驚いた。\\
+あっ⁈ あっ⁉ ああ⁈ ああ⁉ 驚いた。\\
+あっ⁈あっ⁉と驚き、ああ⁈ああ⁉と嘆く。\\
+あっ⁈\inhibitglue あっ⁉\inhibitglue と驚き、
+ああ⁈\inhibitglue ああ⁉\inhibitglue と嘆く。\\
+あっ\,⁈\inhibitglue\,あっ\,⁉\inhibitglue\,と驚き、
+ああ\,⁈\inhibitglue\,ああ\,⁉\inhibitglue\,と嘆く。\\
+あっ⁈\<あっ⁉\<と驚き、
+ああ⁈\<ああ⁉\<と嘆く。\\
+あっ\,⁈\<\,あっ\,⁉\<\,と驚き、
+ああ\,⁈\<\,ああ\,⁉\<\,と嘆く。
+
+\fi
+
+}
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/otfscale.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/otfscale.tex
new file mode 100644
index 00000000000..49d42eb1770
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/otfscale.tex
@@ -0,0 +1,69 @@
+\makeatletter
+
+\def\@opt@{multi}
+\def\@default{default}
+\def\@jarticle{jarticle}
+\def\@tarticle{tarticle}
+\def\@op@cls{}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\scale\@undefined
+ \edef\scale{default}
+\else
+ \ifx\scale\@default
+ \else
+ \edef\@opt@{scale=\scale,\@opt@}
+ \fi
+\fi
+\typeout{## scale: \scale ##}
+
+\ifx\class\@undefined
+ \def\class{jarticle}
+\fi
+\ifx\class\@jarticle
+\else
+ \ifx\class\@tarticle
+ \else
+ \ifnum\jis"2121="3000
+ \edef\@opt@{uplatex,\@opt@}
+ \def\@op@cls{,uplatex}
+ \else
+ \fi
+ \fi
+\fi
+
+\documentclass[a4paper,titlepage,draft\@op@cls]{\class}
+
+\usepackage[\@opt@]{otf}
+\usepackage{color}
+\newcommand{\redframe}[1]{%
+ \textcolor{red}{\frame{\textcolor{black}{#1}}}}
+
+\begin{document}
+\section{見出し}
+
+クラス:\texttt{\class}\\
+オプション:\texttt{\option}\\
+スケール:\texttt{\scale}
+
+\parindent0mm
+\xkanjiskip=0pt plus.1pt minus.1pt
+
+\vbox{\tate
+\hbox{\Large \redframe{HMH}\redframe{回□回}\redframe{HMH}\redframe{回□回}\redframe{HMH}}
+\hbox{\Large HMH回□回HMH回□回HMH}
+}
+
+\vbox{\yoko
+\hbox{\Large \redframe{HMH}\redframe{回□回}\redframe{HMH}\redframe{回□回}\redframe{HMH}}
+\hbox{\Large HMH回□回HMH回□回HMH}
+}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/paren0.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/paren0.tex
new file mode 100644
index 00000000000..e12e947fc8c
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/paren0.tex
@@ -0,0 +1,45 @@
+% -*- coding: utf-8 -*-
+
+%\Bracket{«}{»} \BracketUCS{00AB}{00BB}\\% Adobe-Japan1-6には和文用グリフがない
+\Bracket{‘}{’} \BracketUCS{2018}{2019}\\
+\Bracket{“}{”} \BracketUCS{201C}{201D}\\
+\Bracket{〈}{〉} \BracketUCS{2329}{232A}\\
+\Bracket{〈}{〉} \BracketUCS{3008}{3009}\\
+\Bracket{《}{》} \BracketUCS{300A}{300B}\\
+\Bracket{「}{」} \BracketUCS{300C}{300D}\\
+\Bracket{『}{』} \BracketUCS{300E}{300F}\\
+\Bracket{【}{】} \BracketUCS{3010}{3011}\\
+\Bracket{〔}{〕} \BracketUCS{3014}{3015}\\
+\Bracket{〖}{〗} \BracketUCS{3016}{3017}\\
+\Bracket{〘}{〙} \BracketUCS{3018}{3019}\\
+%\Bracket{〚}{〛} \BracketUCS{301A}{301B}\\% Adobe-Japan1-6には無い
+\Bracket{〝}{〞} \BracketUCS{301D}{301E}\\% 日本では標準的ではない
+\Bracket{〝}{〟} \BracketUCS{301D}{301F}\\
+\Bracket{(}{)} \BracketUCS{FF08}{FF09}\\
+\Bracket{[}{]} \BracketUCS{FF3B}{FF3D}\\
+\Bracket{{}{}} \BracketUCS{FF5B}{FF5D}\\
+\Bracket{⦅}{⦆} \BracketUCS{FF5F}{FF60}\\
+
+\parbox<t>{21.0zw}{
+
+%\Bracket{«}{»} \BracketUCS{00AB}{00BB}\\% Adobe-Japan1-6には和文用グリフがない
+%\Bracket{‘}{’} \BracketUCS{2018}{2019}\\% 標準的ではない
+%\Bracket{“}{”} \BracketUCS{201C}{201D}\\% 標準的ではない
+%\Bracket{〈}{〉} \BracketUCS{2329}{232A}\\% 標準的ではない
+\Bracket{〈}{〉} \BracketUCS{3008}{3009}\\
+\Bracket{《}{》} \BracketUCS{300A}{300B}\\
+\Bracket{「}{」} \BracketUCS{300C}{300D}\\
+\Bracket{『}{』} \BracketUCS{300E}{300F}\\
+\Bracket{【}{】} \BracketUCS{3010}{3011}\\
+\Bracket{〔}{〕} \BracketUCS{3014}{3015}\\
+\Bracket{〖}{〗} \BracketUCS{3016}{3017}\\
+\Bracket{〘}{〙} \BracketUCS{3018}{3019}\\
+%\Bracket{〚}{〛} \BracketUCS{301A}{301B}\\% Adobe-Japan1-6には無い
+\Bracket{〝}{〞} \BracketUCS{301D}{301E}\\% 日本では標準的ではない。UniJISup-UTF16-Vでは割り当てた。
+\Bracket{〝}{〟} \BracketUCS{301D}{301F}\\
+\Bracket{(}{)} \BracketUCS{FF08}{FF09}\\
+\Bracket{[}{]} \BracketUCS{FF3B}{FF3D}\\
+\Bracket{{}{}} \BracketUCS{FF5B}{FF5D}\\
+\Bracket{⦅}{⦆} \BracketUCS{FF5F}{FF60}\\
+
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/punct0.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/punct0.tex
new file mode 100644
index 00000000000..1d46dcf9109
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/punct0.tex
@@ -0,0 +1,31 @@
+% -*- coding: utf-8 -*-
+
+%\Punct{·} \PunctUCS{00B7}\\% Adobe-Japan1-6には和文用グリフがない
+\Punct{・} \PunctUCS{30FB}\\
+\Punct{:} \PunctUCS{FF1A}\\
+\Punct{;} \PunctUCS{FF1B}\\
+\Punct{、} \PunctUCS{3001}\\
+\Punct{。} \PunctUCS{3002}\\
+\Punct{,} \PunctUCS{FF0C}\\
+\Punct{.} \PunctUCS{FF0E}\\
+\Punct{—} \PunctUCS{2014}\\
+\Punct{―} \PunctUCS{2015}\\
+\Punct{‥} \PunctUCS{2025}\\
+\Punct{…} \PunctUCS{2026}\\
+
+\parbox<t>{15.5zw}{
+
+%\Punct{·} \PunctUCS{00B7}\\% Adobe-Japan1-6には和文用グリフがない
+\Punct{・} \PunctUCS{30FB}\\
+\Punct{:} \PunctUCS{FF1A}\\
+%\Punct{;} \PunctUCS{FF1B}\\% Adobe-Japan1-6には縦組み用グリフがない
+\Punct{、} \PunctUCS{3001}\\
+\Punct{。} \PunctUCS{3002}\\
+\Punct{,} \PunctUCS{FF0C}\\
+\Punct{.} \PunctUCS{FF0E}\\
+\Punct{—} \PunctUCS{2014}\\
+\Punct{―} \PunctUCS{2015}\\
+\Punct{‥} \PunctUCS{2025}\\
+\Punct{…} \PunctUCS{2026}\\
+
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/punctuation.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/punctuation.tex
new file mode 100644
index 00000000000..72c981b8f31
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/punctuation.tex
@@ -0,0 +1,181 @@
+% -*- coding: utf-8 -*-
+\makeatletter
+
+\def\@opt@{uplatex}
+\def\@default{default}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\documentclass[twocolumn]{ujarticle}
+\textwidth 170mm
+\textheight 255mm
+\voffset -10mm
+\topmargin 0mm
+\headheight 0mm
+\headsep 0mm
+\leftmargin 0mm
+\rightmargin 0mm
+
+\usepackage{color}
+\usepackage{plext}
+\usepackage[\@opt@]{otf}
+
+\makeatother
+
+\newcommand{\Bracket}[2]{%
+ \textcolor{green}{\fbox{\textcolor{black}{#1}}}雪%
+ \textcolor{green}{\fbox{\textcolor{black}{#2}}}%
+ \textcolor{green}{\fbox{\textcolor{black}{\inhibitglue #1}}}雪%
+ \textcolor{green}{\fbox{\textcolor{black}{#2\inhibitglue}}}%
+%%% vvv 色無し vvv %%%
+% \fbox{#1}雪\fbox{#2}%
+% \fbox{\inhibitglue #1}雪\fbox{#2\inhibitglue}%
+}
+\newcommand{\BracketUCS}[2]{%
+ \Bracket{\kchar"#1}{\kchar"#2} {\footnotesize U+#1, U+#2}%
+}
+\newcommand{\Punct}[1]{%
+ 雪\textcolor{green}{\fbox{\textcolor{black}{#1}}}雪%
+ \textcolor{green}{\fbox{\textcolor{black}{\inhibitglue #1\inhibitglue}}}雪%
+%%% vvv 色無し vvv %%%
+% 雪\fbox{#1}雪%
+% \fbox{\inhibitglue #1\inhibitglue}雪%
+}
+\newcommand{\PunctUCS}[1]{%
+ \Punct{\kchar"#1} {\footnotesize U+#1}%"
+}
+
+\makeatletter
+\ifx\rubyfamily\@undefined\let\rubyfamily=\relax\fi
+\ifx\mgfamily\@undefined\let\mgfamily=\relax\fi
+\makeatother
+
+\begin{document}
+\parindent0pt
+\fboxsep0pt
+
+オプション:\texttt{\option}
+
+\section{括弧類}
+{
+[mc/m]
+
+\input{paren0.tex}
+
+{\bfseries%
+[mc/bx]
+
+\input{paren0.tex}
+}}
+
+{\gtfamily
+[gt/m]
+
+\input{paren0.tex}
+
+{\bfseries%
+[gt/bx]
+
+\input{paren0.tex}
+}}
+
+{\mgfamily
+[mg/m]
+
+\input{paren0.tex}
+}
+
+{\rubyfamily%
+[ruby/m]
+
+\input{paren0.tex}
+
+{\bfseries%
+[ruby/bx]
+
+\input{paren0.tex}
+}}
+
+{\gtfamily\rubyfamily%
+[rubyg/m]
+
+\input{paren0.tex}
+
+{\gtfamily\rubyfamily\bfseries%
+[rubyg/bx]
+
+\input{paren0.tex}
+}}
+
+{\mgfamily\rubyfamily%
+[rubymg/m]
+
+\input{paren0.tex}
+}
+
+
+\section{句読点など}
+{
+[mc/m]
+
+\input{punct0.tex}
+
+{\bfseries%
+[mc/bx]
+
+\input{punct0.tex}
+}}
+
+{\gtfamily
+[gt/m]
+
+\input{punct0.tex}
+
+{\bfseries%
+[gt/bx]
+
+\input{punct0.tex}
+}}
+
+{\mgfamily
+[mg/m]
+
+\input{punct0.tex}
+}
+
+{\rubyfamily%
+[ruby/m]
+
+\input{punct0.tex}
+
+{\bfseries%
+[ruby/bx]
+
+\input{punct0.tex}
+}}
+
+{\gtfamily\rubyfamily%
+[rubyg/m]
+
+\input{punct0.tex}
+
+{\gtfamily\rubyfamily\bfseries%
+[rubyg/bx]
+
+\input{punct0.tex}
+}}
+
+{\mgfamily\rubyfamily%
+[rubymg/m]
+
+\input{punct0.tex}
+}
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_cns_utf.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_cns_utf.tex
new file mode 100644
index 00000000000..fdd6023915c
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_cns_utf.tex
@@ -0,0 +1,204 @@
+%
+% This file is generated from the data of UniCNS-UTF32
+% in cid2code.txt (Version 10/24/2017)
+% for Adobe-CNS1-7
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% Adobe-CNS1-7/cid2code.txt
+%
+% A newer CMap may be required for some code points.
+%
+
+
+Adobe-CNS1-0\\
+\UTFT{200CC}\UTFT{2008A}\UTFT{27607}
+
+Adobe-CNS1-1\\
+\UTFT{23ED7}\UTFT{26ED3}\UTFT{257E0}\UTFT{28BE9}\UTFT{258E1}\UTFT{294D9}\UTFT{259AC}\UTFT{2648D}\UTFT{25C01}\UTFT{2530E}%
+\UTFT{25CFE}\UTFT{25BB4}\UTFT{26C7F}\UTFT{25D20}\UTFT{25CC1}\UTFT{24882}\UTFT{24578}\UTFT{26E44}\UTFT{26ED6}\UTFT{24057}%
+\UTFT{26029}\UTFT{217F9}\UTFT{2836D}\UTFT{26121}\UTFT{2615A}\UTFT{262D0}\UTFT{26351}\UTFT{21661}\UTFT{20068}\UTFT{23766}%
+\UTFT{2833A}\UTFT{26489}\UTFT{2A087}\UTFT{26CC3}\UTFT{22714}\UTFT{26626}\UTFT{23DE3}\UTFT{266E8}\UTFT{28A48}\UTFT{226F6}%
+\UTFT{26498}\UTFT{2148A}\UTFT{2185E}\UTFT{24A65}\UTFT{24A95}\UTFT{26A52}\UTFT{23D7E}\UTFT{214FD}\UTFT{2F98F}\UTFT{249A7}%
+\UTFT{23530}\UTFT{21773}\UTFT{23DF8}\UTFT{2F994}\UTFT{20E16}\UTFT{217B4}\UTFT{2317D}\UTFT{2355A}\UTFT{23E8B}\UTFT{26DA3}%
+\UTFT{26B05}\UTFT{26B97}\UTFT{235CE}\UTFT{26DA5}\UTFT{26ED4}\UTFT{26E42}\UTFT{25BE4}\UTFT{26B96}\UTFT{26E77}\UTFT{26E43}%
+\UTFT{25C91}\UTFT{25CC0}\UTFT{28625}\UTFT{2863B}\UTFT{27088}\UTFT{21582}\UTFT{270CD}\UTFT{270F0}\UTFT{2F9B2}\UTFT{218A2}%
+\UTFT{2739A}\UTFT{2A0F8}\UTFT{22C27}\UTFT{275E0}\UTFT{23DB9}\UTFT{275E4}\UTFT{2770F}\UTFT{28A25}\UTFT{27924}\UTFT{27ABD}%
+\UTFT{27A59}\UTFT{27B3A}\UTFT{27B38}\UTFT{25430}\UTFT{25565}\UTFT{24A7A}\UTFT{216DF}\UTFT{27D54}\UTFT{27D8F}\UTFT{2F9D4}%
+\UTFT{27D53}\UTFT{27D98}\UTFT{27DBD}\UTFT{21910}\UTFT{2F9D7}\UTFT{28002}\UTFT{21014}\UTFT{2498A}\UTFT{281BC}\UTFT{2710C}%
+\UTFT{28365}\UTFT{28412}\UTFT{2A29F}\UTFT{20A50}\UTFT{289DE}\UTFT{2853D}\UTFT{23DBB}\UTFT{23262}\UTFT{22325}\UTFT{26ED7}%
+\UTFT{2853C}\UTFT{27ABE}\UTFT{2856C}\UTFT{2860B}\UTFT{28713}\UTFT{286E6}\UTFT{28933}\UTFT{21E89}\UTFT{255B9}\UTFT{28AC6}%
+\UTFT{23C9B}\UTFT{28B0C}\UTFT{255DB}\UTFT{20D31}\UTFT{28AE1}\UTFT{28BEB}\UTFT{28AE2}\UTFT{28AE5}\UTFT{28BEC}\UTFT{28C39}%
+\UTFT{28BFF}\UTFT{286D8}\UTFT{2127C}\UTFT{23E2E}\UTFT{26ED5}\UTFT{28AE0}\UTFT{26CB8}\UTFT{20274}\UTFT{26410}\UTFT{290AF}%
+\UTFT{290E5}\UTFT{24AD1}\UTFT{21915}\UTFT{2330A}\UTFT{24AE9}\UTFT{291D5}\UTFT{291EB}\UTFT{230B7}\UTFT{230BC}\UTFT{2546C}%
+\UTFT{29433}\UTFT{2941D}\UTFT{2797A}\UTFT{27175}\UTFT{20630}\UTFT{2415C}\UTFT{25706}\UTFT{26D27}\UTFT{216D3}\UTFT{24A29}%
+\UTFT{29857}\UTFT{29905}\UTFT{25725}\UTFT{290B1}\UTFT{29BD5}\UTFT{29B05}\UTFT{28600}\UTFT{2307D}\UTFT{29D3E}\UTFT{21863}%
+\UTFT{29E68}\UTFT{29FB7}\UTFT{2A192}\UTFT{2A1AB}\UTFT{2A0E1}\UTFT{2A123}\UTFT{2A1DF}\UTFT{2A134}\UTFT{2A193}\UTFT{2A220}%
+\UTFT{2193B}\UTFT{2A233}\UTFT{2A0B9}\UTFT{2A2B4}\UTFT{24364}\UTFT{2A3ED}\UTFT{28C2B}\UTFT{26DA2}\UTFT{2FA1B}\UTFT{2908B}%
+\UTFT{24975}\UTFT{249BB}\UTFT{249F8}\UTFT{24348}\UTFT{24A51}\UTFT{28BDA}\UTFT{218FA}\UTFT{2897E}\UTFT{28E36}\UTFT{28A44}%
+\UTFT{2896C}\UTFT{244B9}\UTFT{24473}\UTFT{243F8}\UTFT{217EF}\UTFT{218BE}\UTFT{23599}\UTFT{21885}\UTFT{2542F}\UTFT{217F8}%
+\UTFT{216FB}\UTFT{21839}\UTFT{21774}\UTFT{218D1}\UTFT{25F4B}\UTFT{216C0}\UTFT{24A25}\UTFT{213FE}\UTFT{212A8}\UTFT{213C6}%
+\UTFT{214B6}\UTFT{236A6}\UTFT{24994}\UTFT{27165}\UTFT{23E31}\UTFT{2555C}\UTFT{23EFB}\UTFT{27052}\UTFT{236EE}\UTFT{2999D}%
+\UTFT{26F26}\UTFT{21922}\UTFT{2373F}\UTFT{240E1}\UTFT{2408B}\UTFT{2410F}\UTFT{26C21}\UTFT{266B1}\UTFT{20FDF}\UTFT{20BA8}%
+\UTFT{20E0D}\UTFT{28B13}\UTFT{24436}\UTFT{20465}\UTFT{25651}\UTFT{201AB}\UTFT{203CB}\UTFT{2030A}\UTFT{20414}\UTFT{202C0}%
+\UTFT{28EB3}\UTFT{20275}\UTFT{2020C}\UTFT{24A0E}\UTFT{23E8A}\UTFT{23595}\UTFT{23E39}\UTFT{23EBF}\UTFT{21884}\UTFT{23E89}%
+\UTFT{205E0}\UTFT{204A3}\UTFT{20492}\UTFT{20491}\UTFT{28A9C}\UTFT{2070E}\UTFT{20873}\UTFT{2438C}\UTFT{20C20}\UTFT{249AC}%
+\UTFT{210E4}\UTFT{20E1D}\UTFT{24ABC}\UTFT{2408D}\UTFT{240C9}\UTFT{20345}\UTFT{20BC6}\UTFT{28A46}\UTFT{216FA}\UTFT{2176F}%
+\UTFT{21710}\UTFT{25946}\UTFT{219F3}\UTFT{21861}\UTFT{24295}\UTFT{25E83}\UTFT{28BD7}\UTFT{20413}\UTFT{21303}\UTFT{289FB}%
+\UTFT{21996}\UTFT{2197C}\UTFT{23AEE}\UTFT{21903}\UTFT{21904}\UTFT{218A0}\UTFT{216FE}\UTFT{28A47}\UTFT{21DBA}\UTFT{23472}%
+\UTFT{289A8}\UTFT{21927}\UTFT{217AB}\UTFT{2173B}\UTFT{275FD}\UTFT{22860}\UTFT{2262B}\UTFT{225AF}\UTFT{225BE}\UTFT{29088}%
+\UTFT{26F73}\UTFT{2003E}\UTFT{20046}\UTFT{2261B}\UTFT{22C9B}\UTFT{22D07}\UTFT{246D4}\UTFT{2914D}\UTFT{24665}\UTFT{22B6A}%
+\UTFT{22B22}\UTFT{23450}\UTFT{298EA}\UTFT{22E78}\UTFT{249E3}\UTFT{22D67}\UTFT{22CA1}\UTFT{2308E}\UTFT{232AD}\UTFT{24989}%
+\UTFT{232AB}\UTFT{232E0}\UTFT{218D9}\UTFT{2943F}\UTFT{23289}\UTFT{231B3}\UTFT{25584}\UTFT{28B22}\UTFT{2558F}\UTFT{216FC}%
+\UTFT{2555B}\UTFT{25425}\UTFT{23103}\UTFT{2182A}\UTFT{23234}\UTFT{2320F}\UTFT{23182}\UTFT{242C9}\UTFT{26D24}\UTFT{27870}%
+\UTFT{21DEB}\UTFT{232D2}\UTFT{232E1}\UTFT{25872}\UTFT{2383A}\UTFT{237BC}\UTFT{237A2}\UTFT{233FE}\UTFT{2462A}\UTFT{237D5}%
+\UTFT{24487}\UTFT{21912}\UTFT{23FC0}\UTFT{23C9A}\UTFT{28BEA}\UTFT{28ACB}\UTFT{2801E}\UTFT{289DC}\UTFT{23F7F}\UTFT{2403C}%
+\UTFT{2431A}\UTFT{24276}\UTFT{2478F}\UTFT{24725}\UTFT{24AA4}\UTFT{205EB}\UTFT{23EF8}\UTFT{2365F}\UTFT{24A4A}\UTFT{24917}%
+\UTFT{25FE1}\UTFT{24ADF}\UTFT{28C23}\UTFT{23F35}\UTFT{26DEA}\UTFT{24CD9}\UTFT{24D06}\UTFT{2A5C6}\UTFT{28ACC}\UTFT{249AB}%
+\UTFT{2498E}\UTFT{24A4E}\UTFT{249C5}\UTFT{248F3}\UTFT{28AE3}\UTFT{21864}\UTFT{25221}\UTFT{251E7}\UTFT{23232}\UTFT{24697}%
+\UTFT{23781}\UTFT{248F0}\UTFT{24ABA}\UTFT{24AC7}\UTFT{24A96}\UTFT{261AE}\UTFT{25581}\UTFT{27741}\UTFT{256E3}\UTFT{23EFA}%
+\UTFT{216E6}\UTFT{20D4C}\UTFT{2498C}\UTFT{20299}\UTFT{23DBA}\UTFT{2176E}\UTFT{201D4}\UTFT{20C0D}\UTFT{226F5}\UTFT{25AAF}%
+\UTFT{25A9C}\UTFT{2025B}\UTFT{25BC6}\UTFT{25BB3}\UTFT{25EBC}\UTFT{25EA6}\UTFT{249F9}\UTFT{217B0}\UTFT{26261}\UTFT{2615C}%
+\UTFT{27B48}\UTFT{25E82}\UTFT{26B75}\UTFT{20916}\UTFT{2004E}\UTFT{235CF}\UTFT{26412}\UTFT{263F8}\UTFT{2082C}\UTFT{25AE9}%
+\UTFT{25D43}\UTFT{25E0E}\UTFT{2343F}\UTFT{249F7}\UTFT{265AD}\UTFT{265A0}\UTFT{27127}\UTFT{26CD1}\UTFT{267B4}\UTFT{26A42}%
+\UTFT{26A51}\UTFT{26DA7}\UTFT{2721B}\UTFT{21840}\UTFT{218A1}\UTFT{218D8}\UTFT{2F9BC}\UTFT{23D8F}\UTFT{27422}\UTFT{25683}%
+\UTFT{27785}\UTFT{27784}\UTFT{28BF5}\UTFT{28BD9}\UTFT{28B9C}\UTFT{289F9}\UTFT{29448}\UTFT{24284}\UTFT{21845}\UTFT{27DDC}%
+\UTFT{24C09}\UTFT{22321}\UTFT{217DA}\UTFT{2492F}\UTFT{28A4B}\UTFT{28AFC}\UTFT{28C1D}\UTFT{28C3B}\UTFT{28D34}\UTFT{248FF}%
+\UTFT{24A42}\UTFT{243EA}\UTFT{23225}\UTFT{28EE7}\UTFT{28E66}\UTFT{28E65}\UTFT{249ED}\UTFT{24A78}\UTFT{23FEE}\UTFT{290B0}%
+\UTFT{29093}\UTFT{257DF}\UTFT{28989}\UTFT{28C26}\UTFT{28B2F}\UTFT{263BE}\UTFT{2421B}\UTFT{20F26}\UTFT{28BC5}\UTFT{24AB2}%
+\UTFT{294DA}\UTFT{295D7}\UTFT{28B50}\UTFT{24A67}\UTFT{28B64}\UTFT{28A45}\UTFT{27B06}\UTFT{28B65}\UTFT{258C8}\UTFT{298F1}%
+\UTFT{29948}\UTFT{21302}\UTFT{249B8}\UTFT{214E8}\UTFT{2271F}\UTFT{23DB8}\UTFT{22781}\UTFT{2296B}\UTFT{29E2D}\UTFT{2A1F5}%
+\UTFT{2A0FE}\UTFT{24104}\UTFT{2A1B4}\UTFT{2A0ED}\UTFT{2A0F3}\UTFT{2992F}\UTFT{26E12}\UTFT{26FDF}\UTFT{26B82}\UTFT{26DA4}%
+\UTFT{26E84}\UTFT{26DF0}\UTFT{26E00}\UTFT{237D7}\UTFT{26064}\UTFT{2359C}\UTFT{23640}\UTFT{249DE}\UTFT{202BF}\UTFT{2555D}%
+\UTFT{21757}\UTFT{231C9}\UTFT{24941}\UTFT{241B5}\UTFT{241AC}\UTFT{26C40}\UTFT{24F97}\UTFT{217B5}\UTFT{28A49}\UTFT{24488}%
+\UTFT{289FC}\UTFT{218D6}\UTFT{20F1D}\UTFT{26CC0}\UTFT{21413}\UTFT{242FA}\UTFT{22C26}\UTFT{243C1}\UTFT{23DB7}\UTFT{26741}%
+\UTFT{2615B}\UTFT{260A4}\UTFT{249B9}\UTFT{2498B}\UTFT{289FA}\UTFT{28B63}\UTFT{2189F}\UTFT{24AB3}\UTFT{24A3E}\UTFT{24A94}%
+\UTFT{217D9}\UTFT{24A66}\UTFT{203A7}\UTFT{21424}\UTFT{249E5}\UTFT{24916}\UTFT{24976}\UTFT{204FE}\UTFT{28ACE}\UTFT{28A16}%
+\UTFT{28BE7}\UTFT{255D5}\UTFT{28A82}\UTFT{24943}\UTFT{20CFF}\UTFT{2061A}\UTFT{20BEB}\UTFT{20CB8}\UTFT{217FA}\UTFT{216C2}%
+\UTFT{24A50}\UTFT{21852}\UTFT{28AC0}\UTFT{249AD}\UTFT{218BF}\UTFT{21883}\UTFT{27484}\UTFT{23D5B}\UTFT{28A81}\UTFT{21862}%
+\UTFT{20AB4}\UTFT{2139C}\UTFT{28218}\UTFT{290E4}\UTFT{27E4F}\UTFT{23FED}\UTFT{23E2D}\UTFT{203F5}\UTFT{28C1C}\UTFT{26BC0}%
+\UTFT{21452}\UTFT{24362}\UTFT{24A71}\UTFT{22FE3}\UTFT{212B0}\UTFT{223BD}\UTFT{21398}\UTFT{234E5}\UTFT{27BF4}\UTFT{236DF}%
+\UTFT{28A83}\UTFT{237D6}\UTFT{233FA}\UTFT{24C9F}\UTFT{236AD}\UTFT{26CB7}\UTFT{26D26}\UTFT{26D51}\UTFT{26C82}\UTFT{26FDE}%
+\UTFT{2173A}\UTFT{26C80}\UTFT{27053}\UTFT{217DB}\UTFT{217B3}\UTFT{21905}\UTFT{241FC}\UTFT{2173C}\UTFT{242A5}\UTFT{24293}%
+\UTFT{23EF9}\UTFT{27736}\UTFT{2445B}\UTFT{242CA}\UTFT{24259}\UTFT{289E1}\UTFT{26D28}\UTFT{244CE}\UTFT{27E4D}\UTFT{243BD}%
+\UTFT{24256}\UTFT{21304}\UTFT{243E9}\UTFT{2F825}\UTFT{23300}\UTFT{27AF4}\UTFT{256F6}\UTFT{27B18}\UTFT{27A79}\UTFT{249BA}%
+\UTFT{20346}\UTFT{27657}\UTFT{25FE2}\UTFT{275FE}\UTFT{2209A}\UTFT{28A9A}\UTFT{2403B}\UTFT{24A45}\UTFT{205CA}\UTFT{20611}%
+\UTFT{21EA8}\UTFT{23CFF}\UTFT{285E8}\UTFT{299C9}\UTFT{221C3}\UTFT{28B4E}\UTFT{20C78}\UTFT{20779}\UTFT{23F4A}\UTFT{24AA7}%
+\UTFT{26B52}\UTFT{27632}\UTFT{2493F}\UTFT{233CC}\UTFT{28948}\UTFT{21D90}\UTFT{27C12}\UTFT{24F9A}\UTFT{26BF7}\UTFT{2191C}%
+\UTFT{249F6}\UTFT{23FEF}\UTFT{2271B}\UTFT{257E1}\UTFT{2F8CD}\UTFT{2F806}\UTFT{24521}\UTFT{24934}\UTFT{26CBD}\UTFT{26411}%
+\UTFT{290C0}\UTFT{20A11}\UTFT{26469}\UTFT{20021}\UTFT{23519}\UTFT{2258D}\UTFT{2217A}\UTFT{249D0}\UTFT{20EF8}\UTFT{22926}%
+\UTFT{28473}\UTFT{217B1}\UTFT{24A2A}\UTFT{21820}\UTFT{29CAD}\UTFT{298A4}\UTFT{2160A}\UTFT{2372F}\UTFT{280E8}\UTFT{213C5}%
+\UTFT{291A8}\UTFT{270AF}\UTFT{289AB}\UTFT{2417A}\UTFT{2A2DF}\UTFT{28318}\UTFT{26E07}\UTFT{2816F}\UTFT{269B5}\UTFT{213ED}%
+\UTFT{2322F}\UTFT{28C30}\UTFT{28949}\UTFT{24988}\UTFT{24AA5}\UTFT{23F81}\UTFT{21FA1}\UTFT{295E9}\UTFT{2789D}\UTFT{28024}%
+\UTFT{27A3E}\UTFT{23CB7}\UTFT{26258}\UTFT{29D98}\UTFT{23D40}\UTFT{20E9D}\UTFT{282E2}\UTFT{20C41}\UTFT{20C96}\UTFT{20E76}%
+\UTFT{22C62}\UTFT{20EA2}\UTFT{21075}\UTFT{22B43}\UTFT{22EB3}\UTFT{20DA7}\UTFT{2688A}\UTFT{20EF9}\UTFT{27FF9}\UTFT{247E0}%
+\UTFT{29D7C}\UTFT{275A3}\UTFT{26048}\UTFT{24618}\UTFT{29EAC}\UTFT{29FDE}\UTFT{272B2}\UTFT{2048E}\UTFT{20EB6}\UTFT{27F2E}%
+\UTFT{2A434}\UTFT{243F2}\UTFT{29E06}\UTFT{294D0}\UTFT{26335}\UTFT{20D28}\UTFT{20D71}\UTFT{21F0F}\UTFT{21DD1}\UTFT{2176D}%
+\UTFT{2B473}\UTFT{28E97}\UTFT{25C21}\UTFT{20CD4}\UTFT{201F2}\UTFT{2A64A}\UTFT{2837D}\UTFT{2A2B2}\UTFT{24ABB}\UTFT{26E05}%
+\UTFT{2AE67}\UTFT{2251B}\UTFT{2DF3C}\UTFT{28E39}\UTFT{20F3B}\UTFT{25F1A}\UTFT{27486}\UTFT{267CC}\UTFT{24011}\UTFT{2F922}%
+\UTFT{20547}\UTFT{205DF}\UTFT{23FC5}\UTFT{24942}\UTFT{289E4}\UTFT{219DB}\UTFT{23CC8}\UTFT{24933}\UTFT{289AA}\UTFT{202A0}%
+\UTFT{26BB3}\UTFT{21305}\UTFT{224ED}\UTFT{26D29}\UTFT{27A84}\UTFT{23600}\UTFT{24AB1}\UTFT{22513}\UTFT{2037E}\UTFT{20380}%
+\UTFT{20347}\UTFT{2041F}\UTFT{249A4}\UTFT{20487}\UTFT{233B4}\UTFT{20BFF}\UTFT{220FC}\UTFT{202E5}\UTFT{22530}\UTFT{2058E}%
+\UTFT{23233}\UTFT{21983}\UTFT{205B3}\UTFT{23C99}\UTFT{24AA6}\UTFT{2372D}\UTFT{26B13}\UTFT{2F829}\UTFT{28ADE}\UTFT{23F80}%
+\UTFT{20954}\UTFT{23FEC}\UTFT{20BE2}\UTFT{21726}\UTFT{216E8}\UTFT{286AB}\UTFT{2F832}\UTFT{21596}\UTFT{21613}\UTFT{28A9B}%
+\UTFT{25772}\UTFT{20B8F}\UTFT{23FEB}\UTFT{22DA3}\UTFT{20C77}\UTFT{26B53}\UTFT{20D74}\UTFT{2170D}\UTFT{20EDD}\UTFT{20D4D}%
+\UTFT{289BC}\UTFT{22698}\UTFT{218D7}\UTFT{2403A}\UTFT{24435}\UTFT{210B4}\UTFT{2328A}\UTFT{28B66}\UTFT{2124F}\UTFT{241A5}%
+\UTFT{26C7E}\UTFT{21416}\UTFT{21454}\UTFT{24363}\UTFT{24BF5}\UTFT{2123C}\UTFT{2A150}\UTFT{24278}\UTFT{2163E}\UTFT{21692}%
+\UTFT{20D4E}\UTFT{26C81}\UTFT{26D2A}\UTFT{217DC}\UTFT{217FB}\UTFT{217B2}\UTFT{26DA6}\UTFT{21828}\UTFT{216D5}\UTFT{26E45}%
+\UTFT{249A9}\UTFT{26FA1}\UTFT{22554}\UTFT{21911}\UTFT{216B8}\UTFT{27A0E}\UTFT{20204}\UTFT{21A34}\UTFT{259CC}\UTFT{205A5}%
+\UTFT{21B44}\UTFT{21CA5}\UTFT{26B28}\UTFT{21DF9}\UTFT{21E37}\UTFT{21EA4}\UTFT{24901}\UTFT{22049}\UTFT{22173}\UTFT{244BC}%
+\UTFT{20CD3}\UTFT{21771}\UTFT{28482}\UTFT{201C1}\UTFT{2F894}\UTFT{2133A}\UTFT{26888}\UTFT{223D0}\UTFT{22471}\UTFT{26E6E}%
+\UTFT{28A36}\UTFT{25250}\UTFT{21F6A}\UTFT{270F8}\UTFT{22668}\UTFT{2029E}\UTFT{28A29}\UTFT{227B4}\UTFT{24982}\UTFT{2498F}%
+\UTFT{27A53}\UTFT{2F8A6}\UTFT{26ED2}\UTFT{20656}\UTFT{23FB7}\UTFT{2285F}\UTFT{28B9D}\UTFT{2995D}\UTFT{22980}\UTFT{228C1}%
+\UTFT{20118}\UTFT{21770}\UTFT{22E0D}\UTFT{249DF}\UTFT{2138E}\UTFT{217FC}\UTFT{22E36}\UTFT{2571D}\UTFT{24A28}\UTFT{24A23}%
+\UTFT{24940}\UTFT{21829}\UTFT{23400}\UTFT{231F7}\UTFT{231F8}\UTFT{231A4}\UTFT{231A5}\UTFT{20E75}\UTFT{251E6}\UTFT{23231}%
+\UTFT{285F4}\UTFT{231C8}\UTFT{25313}\UTFT{228F7}\UTFT{2439C}\UTFT{24A21}\UTFT{237C2}\UTFT{2F8DB}\UTFT{241CD}\UTFT{290ED}%
+\UTFT{233E6}\UTFT{26DA0}\UTFT{2346F}\UTFT{28ADF}\UTFT{235CD}\UTFT{2363C}\UTFT{28A4A}\UTFT{203C9}\UTFT{23659}\UTFT{2212A}%
+\UTFT{23703}\UTFT{2919C}\UTFT{20923}\UTFT{227CD}\UTFT{23ADB}\UTFT{21958}\UTFT{23B5A}\UTFT{23EFC}\UTFT{2248B}\UTFT{248F1}%
+\UTFT{26B51}\UTFT{23DBC}\UTFT{23DBD}\UTFT{241A4}\UTFT{2490C}\UTFT{24900}\UTFT{23CC9}\UTFT{20D32}\UTFT{231F9}\UTFT{22491}%
+\UTFT{26D25}\UTFT{26DA1}\UTFT{26DEB}\UTFT{2497F}\UTFT{24085}\UTFT{26E72}\UTFT{26F74}\UTFT{28B21}\UTFT{2F908}\UTFT{23E2F}%
+\UTFT{23F82}\UTFT{2304B}\UTFT{23E30}\UTFT{21497}\UTFT{2403D}\UTFT{29170}\UTFT{24144}\UTFT{24091}\UTFT{24155}\UTFT{24039}%
+\UTFT{23FF0}\UTFT{23FB4}\UTFT{2413F}\UTFT{24156}\UTFT{24157}\UTFT{24140}\UTFT{261DD}\UTFT{24277}\UTFT{24365}\UTFT{242C1}%
+\UTFT{2445A}\UTFT{24A27}\UTFT{24A22}\UTFT{28BE8}\UTFT{25605}\UTFT{24974}\UTFT{23044}\UTFT{24823}\UTFT{2882B}\UTFT{28804}%
+\UTFT{20C3A}\UTFT{26A2E}\UTFT{241E2}\UTFT{216E7}\UTFT{24A24}\UTFT{249B7}\UTFT{2498D}\UTFT{249FB}\UTFT{24A26}\UTFT{2F92F}%
+\UTFT{228AD}\UTFT{28EB2}\UTFT{24A8C}\UTFT{2415F}\UTFT{24A79}\UTFT{28B8F}\UTFT{28C03}\UTFT{2189E}\UTFT{21988}\UTFT{28ED9}%
+\UTFT{21A4B}\UTFT{28EAC}\UTFT{24F82}\UTFT{24D13}\UTFT{263F5}\UTFT{26911}\UTFT{2690E}\UTFT{26F9F}\UTFT{2509D}\UTFT{2517D}%
+\UTFT{21E1C}\UTFT{25220}\UTFT{232AC}\UTFT{28964}\UTFT{28968}\UTFT{216C1}\UTFT{255E0}\UTFT{2760C}\UTFT{2261C}\UTFT{25857}%
+\UTFT{27B39}\UTFT{27126}\UTFT{2910D}\UTFT{20C42}\UTFT{20D15}\UTFT{2512B}\UTFT{22CC6}\UTFT{20341}\UTFT{24DB8}\UTFT{294E5}%
+\UTFT{280BE}\UTFT{22C38}\UTFT{2815D}\UTFT{269F2}\UTFT{24DEA}\UTFT{20D7C}\UTFT{20FB4}\UTFT{20CD5}\UTFT{2BAB3}\UTFT{20E96}%
+\UTFT{20F64}\UTFT{22CA9}\UTFT{28256}\UTFT{244D3}\UTFT{20D46}\UTFT{29A4D}\UTFT{280E9}\UTFT{24EA7}\UTFT{22CC2}\UTFT{295F4}%
+\UTFT{252C7}\UTFT{297D4}\UTFT{22D44}\UTFT{2BCD7}\UTFT{22BCA}\UTFT{2B977}\UTFT{266DA}\UTFT{26716}\UTFT{279A0}\UTFT{25052}%
+\UTFT{20C43}\UTFT{28B4C}\UTFT{20731}\UTFT{201A9}\UTFT{22D8D}\UTFT{245C8}\UTFT{204FC}\UTFT{26097}\UTFT{20F4C}\UTFT{22A66}%
+\UTFT{2109D}\UTFT{20D9C}\UTFT{22775}\UTFT{2A601}\UTFT{20E09}\UTFT{22ACF}\UTFT{2C5F8}\UTFT{210C8}\UTFT{239C2}\UTFT{2829B}%
+\UTFT{25E49}\UTFT{220C7}\UTFT{22CB2}\UTFT{29720}\UTFT{24E3B}\UTFT{2C9A0}\UTFT{27574}\UTFT{22E8B}\UTFT{22208}\UTFT{2A65B}%
+\UTFT{28CCD}\UTFT{20E7A}\UTFT{20C34}\UTFT{27639}\UTFT{22BCE}\UTFT{22C51}\UTFT{210C7}\UTFT{2A632}\UTFT{28CD2}\UTFT{28D99}%
+\UTFT{28CCA}\UTFT{2775E}\UTFT{2F828}\UTFT{2107B}\UTFT{210D3}\UTFT{212FE}\UTFT{247EF}\UTFT{24EA5}\UTFT{24F5C}\UTFT{28189}%
+\UTFT{2B42C}
+
+Adobe-CNS1-3\\
+\UTFT{2010C}\UTFT{200D1}\UTFT{200CD}\UTFT{200CB}\UTFT{21FE8}\UTFT{200CA}\UTFT{2010E}\UTFT{21BC1}\UTFT{2F878}\UTFT{20086}%
+\UTFT{248E9}\UTFT{2626A}\UTFT{2634B}\UTFT{26612}\UTFT{26951}\UTFT{278B2}\UTFT{28E0F}\UTFT{29810}\UTFT{20087}\UTFT{2A3A9}%
+\UTFT{21145}\UTFT{27735}\UTFT{209E7}\UTFT{29DF6}\UTFT{2700E}\UTFT{2A133}\UTFT{2846C}\UTFT{21DCA}\UTFT{205D0}\UTFT{22AE6}%
+\UTFT{27D84}\UTFT{210F4}\UTFT{20C0B}\UTFT{278C8}\UTFT{260A5}\UTFT{22D4C}\UTFT{21077}\UTFT{2106F}\UTFT{221A1}\UTFT{20D96}%
+\UTFT{22CC9}\UTFT{20F31}\UTFT{2681C}\UTFT{210CF}\UTFT{22803}\UTFT{22939}\UTFT{251E3}\UTFT{20E8C}\UTFT{20F8D}\UTFT{20EAA}%
+\UTFT{20F30}\UTFT{20D47}\UTFT{2114F}\UTFT{20E4C}\UTFT{20EAB}\UTFT{20BA9}\UTFT{20D48}\UTFT{210C0}\UTFT{2113D}\UTFT{22696}%
+\UTFT{20FAD}\UTFT{233F4}\UTFT{20D7E}\UTFT{20D7F}\UTFT{22C55}\UTFT{20E98}\UTFT{20F2E}\UTFT{26B50}\UTFT{29EC3}\UTFT{22DEE}%
+\UTFT{26572}\UTFT{280BD}\UTFT{20EFA}\UTFT{20E0F}\UTFT{20E77}\UTFT{20EFB}\UTFT{24DEB}\UTFT{20CD6}\UTFT{227B5}\UTFT{210C9}%
+\UTFT{20E10}\UTFT{20E78}\UTFT{21078}\UTFT{21148}\UTFT{28207}\UTFT{21455}\UTFT{20E79}\UTFT{24E50}\UTFT{22DA4}\UTFT{2101D}%
+\UTFT{2101E}\UTFT{210F5}\UTFT{210F6}\UTFT{20E11}\UTFT{27694}\UTFT{282CD}\UTFT{20FB5}\UTFT{20E7B}\UTFT{2517E}\UTFT{20FB6}%
+\UTFT{21180}\UTFT{252D8}\UTFT{2A2BD}\UTFT{249DA}\UTFT{2183A}\UTFT{24177}\UTFT{2827C}\UTFT{2573D}\UTFT{25B74}\UTFT{2313D}%
+\UTFT{289C0}\UTFT{23F41}\UTFT{20325}\UTFT{20ED8}\UTFT{25C65}\UTFT{24FB8}\UTFT{20B0D}\UTFT{26B0A}\UTFT{22EEF}\UTFT{23CB5}%
+\UTFT{26E99}\UTFT{23F8F}\UTFT{24CC9}\UTFT{2A014}\UTFT{286BC}\UTFT{28501}\UTFT{2267A}\UTFT{269A8}\UTFT{2424B}\UTFT{2215B}%
+\UTFT{2037F}\UTFT{2A45B}\UTFT{249EC}\UTFT{24962}\UTFT{27109}\UTFT{24A4F}\UTFT{24A5D}\UTFT{217DF}\UTFT{23AFA}\UTFT{20214}%
+\UTFT{208D5}\UTFT{20619}\UTFT{21F9E}\UTFT{2A2B6}\UTFT{2915B}\UTFT{28A59}\UTFT{29420}\UTFT{248F2}\UTFT{25535}\UTFT{20CCF}%
+\UTFT{27967}\UTFT{21BC2}\UTFT{20094}\UTFT{202B7}\UTFT{203A0}\UTFT{204D7}\UTFT{205D5}\UTFT{20615}\UTFT{20676}\UTFT{216BA}%
+\UTFT{20AC2}\UTFT{20ACD}\UTFT{20BBF}\UTFT{2F83B}\UTFT{20BCB}\UTFT{20BFB}\UTFT{20C3B}\UTFT{20C53}\UTFT{20C65}\UTFT{20C7C}%
+\UTFT{20C8D}\UTFT{20CB5}\UTFT{20CDD}\UTFT{20CED}\UTFT{20D6F}\UTFT{20DB2}\UTFT{20DC8}\UTFT{20E04}\UTFT{20E0E}\UTFT{20ED7}%
+\UTFT{20F90}\UTFT{20F2D}\UTFT{20E73}\UTFT{20FBC}\UTFT{2105C}\UTFT{2104F}\UTFT{21076}\UTFT{21088}\UTFT{21096}\UTFT{210BF}%
+\UTFT{2112F}\UTFT{2113B}\UTFT{212E3}\UTFT{21375}\UTFT{21336}\UTFT{21577}\UTFT{21619}\UTFT{217C3}\UTFT{217C7}\UTFT{2182D}%
+\UTFT{2196A}\UTFT{21A2D}\UTFT{21A45}\UTFT{21C2A}\UTFT{21C70}\UTFT{21CAC}\UTFT{21EC8}\UTFT{21ED5}\UTFT{21F15}\UTFT{22045}%
+\UTFT{2227C}\UTFT{223D7}\UTFT{223FA}\UTFT{2272A}\UTFT{22871}\UTFT{2294F}\UTFT{22967}\UTFT{22993}\UTFT{22AD5}\UTFT{22AE8}%
+\UTFT{22B0E}\UTFT{22B3F}\UTFT{22C4C}\UTFT{22C88}\UTFT{22CB7}\UTFT{25BE8}\UTFT{22D08}\UTFT{22D12}\UTFT{22DB7}\UTFT{22D95}%
+\UTFT{22E42}\UTFT{22F74}\UTFT{22FCC}\UTFT{23033}\UTFT{23066}\UTFT{2331F}\UTFT{233DE}\UTFT{23567}\UTFT{235F3}\UTFT{2361A}%
+\UTFT{23716}\UTFT{23AA7}\UTFT{23E11}\UTFT{23EB9}\UTFT{24119}\UTFT{242EE}\UTFT{2430D}\UTFT{24334}\UTFT{24396}\UTFT{24404}%
+\UTFT{244D6}\UTFT{24674}\UTFT{2472F}\UTFT{24812}\UTFT{248FB}\UTFT{24A15}\UTFT{24AC0}\UTFT{24F86}\UTFT{2502C}\UTFT{25299}%
+\UTFT{25419}\UTFT{25446}\UTFT{2546E}\UTFT{2553F}\UTFT{2555E}\UTFT{25562}\UTFT{25566}\UTFT{257C7}\UTFT{2585D}\UTFT{25903}%
+\UTFT{25AAE}\UTFT{25B89}\UTFT{25C06}\UTFT{26102}\UTFT{261B2}\UTFT{26402}\UTFT{2644A}\UTFT{26484}\UTFT{26488}\UTFT{26512}%
+\UTFT{265BF}\UTFT{266B5}\UTFT{266FC}\UTFT{26799}\UTFT{2686E}\UTFT{2685E}\UTFT{268C7}\UTFT{26926}\UTFT{26939}\UTFT{269FA}%
+\UTFT{26A2D}\UTFT{26A34}\UTFT{26B5B}\UTFT{26B9D}\UTFT{26CA4}\UTFT{26DAE}\UTFT{2704B}\UTFT{271CD}\UTFT{27280}\UTFT{27285}%
+\UTFT{2728B}\UTFT{272E6}\UTFT{27450}\UTFT{277CC}\UTFT{27858}\UTFT{279DD}\UTFT{279FD}\UTFT{27A0A}\UTFT{27B0B}\UTFT{27D66}%
+\UTFT{28009}\UTFT{28023}\UTFT{28048}\UTFT{28083}\UTFT{28090}\UTFT{280F4}\UTFT{2812E}\UTFT{2814F}\UTFT{281AF}\UTFT{2821A}%
+\UTFT{28306}\UTFT{2832F}\UTFT{2838A}\UTFT{28468}\UTFT{286AA}\UTFT{28956}\UTFT{289B8}\UTFT{289E7}\UTFT{289E8}\UTFT{28B46}%
+\UTFT{28BD4}\UTFT{28C09}\UTFT{28FC5}\UTFT{290EC}\UTFT{29110}\UTFT{2913C}\UTFT{2915E}\UTFT{24ACA}\UTFT{294E7}\UTFT{295B0}%
+\UTFT{295B8}\UTFT{29732}\UTFT{298D1}\UTFT{29949}\UTFT{2996A}\UTFT{299C3}\UTFT{29A28}\UTFT{29B0E}\UTFT{29D5A}\UTFT{29D9B}%
+\UTFT{29EF8}\UTFT{29F23}\UTFT{2A293}\UTFT{2A2FF}\UTFT{2A5CB}\UTFT{20C9C}\UTFT{224B0}\UTFT{24A93}\UTFT{28B2C}\UTFT{217F5}%
+\UTFT{28B6C}\UTFT{28B99}\UTFT{266AF}\UTFT{27655}\UTFT{25635}\UTFT{25956}\UTFT{25E81}\UTFT{20E6D}\UTFT{23E88}\UTFT{24C9E}%
+\UTFT{217F6}\UTFT{2187B}\UTFT{25C4A}\UTFT{25311}\UTFT{25ED8}\UTFT{20FEA}\UTFT{20D49}\UTFT{236BA}\UTFT{25148}\UTFT{210C1}%
+\UTFT{24706}\UTFT{26893}\UTFT{226F4}\UTFT{27D2F}\UTFT{241A3}\UTFT{27D73}\UTFT{26ED0}\UTFT{272B6}\UTFT{211D9}\UTFT{23CFC}%
+\UTFT{2A6A9}\UTFT{20EAC}\UTFT{21CA2}\UTFT{24FC2}\UTFT{20FEB}\UTFT{22DA0}\UTFT{20FEC}\UTFT{20E0A}\UTFT{20FED}\UTFT{21187}%
+\UTFT{24B6E}\UTFT{25A95}\UTFT{20979}\UTFT{22465}\UTFT{23CFE}\UTFT{29F30}\UTFT{24FA9}\UTFT{2959E}\UTFT{23DB6}\UTFT{267B3}%
+\UTFT{23720}\UTFT{23EF7}\UTFT{23E2C}\UTFT{230DA}\UTFT{212A9}\UTFT{24963}\UTFT{270AE}\UTFT{2176C}\UTFT{27164}\UTFT{26D22}%
+\UTFT{24AE2}\UTFT{2493E}\UTFT{26D23}\UTFT{203FC}\UTFT{23CFD}\UTFT{24919}\UTFT{24A77}\UTFT{28A5A}\UTFT{2F840}\UTFT{2183B}%
+\UTFT{26159}\UTFT{233F5}\UTFT{28BC2}\UTFT{21D46}\UTFT{26ED1}\UTFT{28B2D}\UTFT{23CC7}\UTFT{25ED7}\UTFT{27656}\UTFT{25531}%
+\UTFT{21944}\UTFT{29903}\UTFT{26DDC}\UTFT{270AD}\UTFT{261AD}\UTFT{28A0F}\UTFT{23677}\UTFT{200EE}\UTFT{26846}\UTFT{24F0E}%
+\UTFT{2634C}\UTFT{2626B}\UTFT{21877}\UTFT{2408C}\UTFT{2307E}\UTFT{21E3D}\UTFT{203B5}\UTFT{205C3}\UTFT{21376}\UTFT{24A12}%
+\UTFT{28B2B}\UTFT{26083}
+
+Adobe-CNS1-4\\
+\UTFT{29C73}\UTFT{2414E}\UTFT{251CD}\UTFT{25D30}\UTFT{28A32}\UTFT{23281}\UTFT{2A107}\UTFT{21980}\UTFT{2870F}\UTFT{2A2BA}%
+\UTFT{29947}\UTFT{28AEA}\UTFT{2207E}\UTFT{289E3}\UTFT{21DB6}\UTFT{22712}\UTFT{233F9}\UTFT{23C63}\UTFT{24505}\UTFT{24A13}%
+\UTFT{25CA4}\UTFT{25695}\UTFT{28DB9}\UTFT{2143F}\UTFT{2497B}\UTFT{2710D}\UTFT{26D74}\UTFT{26B15}\UTFT{26FBE}
+
+Adobe-CNS1-5\\
+\UTFT{27267}\UTFT{27CB1}\UTFT{27CC5}\UTFT{242BF}\UTFT{23617}\UTFT{27352}\UTFT{26E8B}\UTFT{270D2}\UTFT{2A351}\UTFT{27C6C}%
+\UTFT{26B23}\UTFT{25A54}\UTFT{21A63}\UTFT{23E06}\UTFT{23F61}\UTFT{28BB9}\UTFT{27BEF}\UTFT{21D5E}\UTFT{29EB0}\UTFT{29945}%
+\UTFT{20A6F}\UTFT{23256}\UTFT{22796}\UTFT{23B1A}\UTFT{23551}\UTFT{240EC}\UTFT{21E23}\UTFT{201A4}\UTFT{26C41}\UTFT{20239}%
+\UTFT{298FA}\UTFT{20B9F}\UTFT{221C1}\UTFT{2896D}\UTFT{29079}\UTFT{2A1B5}\UTFT{26C46}\UTFT{286B2}\UTFT{273FF}\UTFT{2549A}%
+\UTFT{24B0F}
+
+Adobe-CNS1-6\\
+\UTFT{21D53}\UTFT{2369E}\UTFT{26021}\UTFT{258DE}\UTFT{24161}\UTFT{2890D}\UTFT{231EA}\UTFT{20A8A}\UTFT{2325E}\UTFT{25DB9}%
+\UTFT{2368E}\UTFT{27B65}\UTFT{26E88}\UTFT{25D99}\UTFT{224BC}\UTFT{224C1}\UTFT{224C9}\UTFT{224CC}\UTFT{235BB}\UTFT{2ADFF}%
+
+
+% end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_gb_utf.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_gb_utf.tex
new file mode 100644
index 00000000000..f03fc4c969a
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_gb_utf.tex
@@ -0,0 +1,17 @@
+%
+% This file is generated from the data of UniGB-UTF32
+% in cid2code.txt (Version 12/05/2017)
+% for Adobe-GB1-5
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% Adobe-GB1-5/cid2code.txt
+%
+% A newer CMap may be required for some code points.
+%
+
+
+Adobe-GB1-2\\
+\UTFC{20087}\UTFC{20089}\UTFC{200CC}\UTFC{215D7}\UTFC{2298F}\UTFC{20509}\UTFC{2099D}\UTFC{241FE}
+
+% end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_jp_text.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_jp_text.tex
new file mode 100644
index 00000000000..24203b59b91
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_jp_text.tex
@@ -0,0 +1,75 @@
+%
+% This file is generated from the data of UniJIS-UTF32
+% in cid2code.txt (Version 07/30/2019)
+% for Adobe-Japan1-7
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% Adobe-Japan1-7/cid2code.txt
+%
+% A newer CMap may be required for some code points.
+%
+
+
+Adobe-Japan1-0\\
+𨳝櫛𥡴𨻶杓巽屠兔冕冤
+𡨚𤏐爨🄀
+
+Adobe-Japan1-4\\
+🄐🄑🄒🄓🄔🄕🄖🄗🄘🄙
+🄚🄛🄜🄝🄞🄟🄠🄡🄢🄣
+🄤🄥🄦🄧🄨🄩🅐🅑🅒🅓
+🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝
+🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧
+🅨🅩🄰🄱🄲🄳🄴🄵🄶🄷
+🄸🄹🄺🄻🄼🄽🄾🄿🅀🅁
+🅂🅃🅄🅅🅆🅇🅈🅉🈂🈷
+🅰🅱🅲🅳🅴🅵🅶🅷🅸🅹
+🅺🅻🅼🅽🅾🅿🆀🆁🆂🆃
+🆄🆅🆆🆇🆈🆉🞜眞𠤎𦥑
+𫟘沿芽槪割𦈢𠮷𩵋卿𫞎
+憲𠩤浩𫝆𫝷滋𠮟勺爵周
+将𭕄𠀋城𩙿真𠆢𮕩𫝑成
+𧾷𣳾炭𥫗彫潮𡈽冬𤴔姬
+𫞉諭輸𥙿𦚰𠘨𠂊𠦄卉寃
+拔𦦙𣏌杞𪧦𫞽絣𮉸𠔿𦉪
+𠂰𮛪𨦇𨸗𫠚𤋮桒𣲾𠘑嶲
+你𣘺𣏾𢘉
+
+Adobe-Japan1-5\\
+𡌛𡑮𡢽𡚴𡸴𣇄𣗄𣜿𣝣𤟱
+𥒎𥔎𥝱𥧄𥶡𦫿𦹀𧃴𧚄𨉷
+𨏍𪆐𠂉𠂢𠂤𠈓𠌫𠎁𠍱𠏹
+𠑊𠔉𠗖𠝏𠠇𠠺𠢹𠥼𠦝𠫓
+𠬝𠵅𠷡𠺕𠹭𠹤𠽟𡈁𡉕𡉻
+𡉴𡋤𡋗𡋽𡌶𡍄𡏄𡑭𡗗𦰩
+𡙇𡜆𡝂𡧃𡱖𡴭𡵅𡵸𡵢𡶡
+𡶜𡶒𡶷𡷠𡸳𡼞𡽶𡿺𢅻𢌞
+𢎭𢛳𢡛𢢫𢦏𢪸𢭏𢭐𢭆𢰝
+𢮦𢰤𢷡𣇃𣇵𣆶𣍲𣏓𣏒𣏐
+𣏤𣏕𣏚𣏟𣑊𣑑𣑋𣑥𣓤𣕚
+𣖔𣘹𣙇𣘸𣜜𣜌𣝤𣟿𣟧𣠤
+𣠽𣪘𣱿𣴀𣵀𣷺𣷹𣷓𣽾𤂖
+𤄃𤇆𤇾𤎼𤘩𤚥𤢖𤩍𤭖𤭯
+𤰖𤸎𤸷𤹪𤺋𥁊𥁕𥄢𥆩𥇥
+𥇍𥈞𥉌𥐮𥓙𥖧𥞩𥞴𥧔𥫤
+𥫣𥫱𥮲𥱋𥱤𥸮𥹖𥹥𥹢𥻘
+𥻂𥻨𥼣𥽜𥿠𥿔𦀌𥿻𦀗𦁠
+𦃭𦉰𦊆𣴎𦐂𦙾𦜝𦣝𦣪𦥯
+𦧝𦨞𦩘𦪌𦪷𦱳𦳝𦹥𦾔𦿸
+𦿶𦿷𧄍𧄹𧏛𧏚𧏾𧐐𧑉𧘕
+𧘔𧘱𧚓𧜎𧜣𧝒𧦅𧪄𧮳𧮾
+𧯇𧲸𧶠𧸐𨂊𨂻𨊂𨋳𨐌𨑕
+𨕫𨗈𨗉𨛗𨛺𨥉𨥆𨥫𨦈𨦺
+𨦻𨨞𨨩𨩱𨩃𨪙𨫍𨫤𨫝𨯁
+𨯯𨴐𨵱𨷻𨸟𨸶𨺉𨻫𨼲𨿸
+𩊠𩊱𩒐𩗏𩛰𩜙𩝐𩣆𩩲𩷛
+𩸕𩺊𩹉𩻄𩻩𩻛𩿎𩿗𪀯𪀚
+𪃹𪂂𢈘𪎌𪐷𪗱𪘂𪚲𠃵𤸄
+𤿲𧵳再善形慈栟軔𪊲𠅘
+𠖱𠛬𫝓𠵘𫝚𫝜𥧌𫝶𢹂𫝼
+𠟈𢿫𧦴𫞂𫞋𣟱𫞔𤁋𫞬𫞯
+𫟉𫟏𫟒𦲞𧰼𫟰𫝥𫠍𫠗𦍌
+𩸽𪘚
+
+% end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_jp_utf.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_jp_utf.tex
new file mode 100644
index 00000000000..3f9a1e6fcbb
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_jp_utf.tex
@@ -0,0 +1,75 @@
+%
+% This file is generated from the data of UniJIS-UTF32
+% in cid2code.txt (Version 07/30/2019)
+% for Adobe-Japan1-7
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% Adobe-Japan1-7/cid2code.txt
+%
+% A newer CMap may be required for some code points.
+%
+
+
+Adobe-Japan1-0\\
+\UTF{28CDD}\UTF{2F8ED}\UTF{25874}\UTF{28EF6}\UTF{2F8DC}\UTF{2F884}\UTF{2F877}\UTF{2F80F}\UTF{2F8D3}\UTF{2F818}%
+\UTF{21A1A}\UTF{243D0}\UTF{2F920}\UTF{1F100}
+
+Adobe-Japan1-4\\
+\UTF{1F110}\UTF{1F111}\UTF{1F112}\UTF{1F113}\UTF{1F114}\UTF{1F115}\UTF{1F116}\UTF{1F117}\UTF{1F118}\UTF{1F119}%
+\UTF{1F11A}\UTF{1F11B}\UTF{1F11C}\UTF{1F11D}\UTF{1F11E}\UTF{1F11F}\UTF{1F120}\UTF{1F121}\UTF{1F122}\UTF{1F123}%
+\UTF{1F124}\UTF{1F125}\UTF{1F126}\UTF{1F127}\UTF{1F128}\UTF{1F129}\UTF{1F150}\UTF{1F151}\UTF{1F152}\UTF{1F153}%
+\UTF{1F154}\UTF{1F155}\UTF{1F156}\UTF{1F157}\UTF{1F158}\UTF{1F159}\UTF{1F15A}\UTF{1F15B}\UTF{1F15C}\UTF{1F15D}%
+\UTF{1F15E}\UTF{1F15F}\UTF{1F160}\UTF{1F161}\UTF{1F162}\UTF{1F163}\UTF{1F164}\UTF{1F165}\UTF{1F166}\UTF{1F167}%
+\UTF{1F168}\UTF{1F169}\UTF{1F130}\UTF{1F131}\UTF{1F132}\UTF{1F133}\UTF{1F134}\UTF{1F135}\UTF{1F136}\UTF{1F137}%
+\UTF{1F138}\UTF{1F139}\UTF{1F13A}\UTF{1F13B}\UTF{1F13C}\UTF{1F13D}\UTF{1F13E}\UTF{1F13F}\UTF{1F140}\UTF{1F141}%
+\UTF{1F142}\UTF{1F143}\UTF{1F144}\UTF{1F145}\UTF{1F146}\UTF{1F147}\UTF{1F148}\UTF{1F149}\UTF{1F202}\UTF{1F237}%
+\UTF{1F170}\UTF{1F171}\UTF{1F172}\UTF{1F173}\UTF{1F174}\UTF{1F175}\UTF{1F176}\UTF{1F177}\UTF{1F178}\UTF{1F179}%
+\UTF{1F17A}\UTF{1F17B}\UTF{1F17C}\UTF{1F17D}\UTF{1F17E}\UTF{1F17F}\UTF{1F180}\UTF{1F181}\UTF{1F182}\UTF{1F183}%
+\UTF{1F184}\UTF{1F185}\UTF{1F186}\UTF{1F187}\UTF{1F188}\UTF{1F189}\UTF{1F79C}\UTF{2F945}\UTF{2090E}\UTF{26951}%
+\UTF{2B7D8}\UTF{2F8FC}\UTF{2F995}\UTF{2F8EA}\UTF{2F822}\UTF{26222}\UTF{20BB7}\UTF{29D4B}\UTF{2F833}\UTF{2B78E}%
+\UTF{2F8AC}\UTF{20A64}\UTF{2F903}\UTF{2B746}\UTF{2B777}\UTF{2F90B}\UTF{20B9F}\UTF{2F828}\UTF{2F921}\UTF{2F83F}%
+\UTF{2F873}\UTF{2D544}\UTF{2000B}\UTF{2F852}\UTF{2967F}\UTF{2F947}\UTF{201A2}\UTF{2E569}\UTF{2B751}\UTF{2F8B2}%
+\UTF{27FB7}\UTF{23CFE}\UTF{2F91A}\UTF{25AD7}\UTF{2F89A}\UTF{2F90F}\UTF{2123D}\UTF{2F81A}\UTF{24D14}\UTF{2F862}%
+\UTF{2B789}\UTF{2F9D0}\UTF{2F9DF}\UTF{2567F}\UTF{266B0}\UTF{20628}\UTF{2008A}\UTF{20984}\UTF{2F82C}\UTF{2F86D}%
+\UTF{2F8B6}\UTF{26999}\UTF{233CC}\UTF{2F8DB}\UTF{2A9E6}\UTF{2B7BD}\UTF{2F96C}\UTF{2E278}\UTF{2053F}\UTF{2626A}%
+\UTF{200B0}\UTF{2E6EA}\UTF{28987}\UTF{28E17}\UTF{2B81A}\UTF{242EE}\UTF{2F8E1}\UTF{23CBE}\UTF{20611}\UTF{2F9F4}%
+\UTF{2F804}\UTF{2363A}\UTF{233FE}\UTF{22609}
+
+Adobe-Japan1-5\\
+\UTF{2131B}\UTF{2146E}\UTF{218BD}\UTF{216B4}\UTF{21E34}\UTF{231C4}\UTF{235C4}\UTF{2373F}\UTF{23763}\UTF{247F1}%
+\UTF{2548E}\UTF{2550E}\UTF{25771}\UTF{259C4}\UTF{25DA1}\UTF{26AFF}\UTF{26E40}\UTF{270F4}\UTF{27684}\UTF{28277}%
+\UTF{283CD}\UTF{2A190}\UTF{20089}\UTF{200A2}\UTF{200A4}\UTF{20213}\UTF{2032B}\UTF{20381}\UTF{20371}\UTF{203F9}%
+\UTF{2044A}\UTF{20509}\UTF{205D6}\UTF{2074F}\UTF{20807}\UTF{2083A}\UTF{208B9}\UTF{2097C}\UTF{2099D}\UTF{20AD3}%
+\UTF{20B1D}\UTF{20D45}\UTF{20DE1}\UTF{20E95}\UTF{20E6D}\UTF{20E64}\UTF{20F5F}\UTF{21201}\UTF{21255}\UTF{2127B}%
+\UTF{21274}\UTF{212E4}\UTF{212D7}\UTF{212FD}\UTF{21336}\UTF{21344}\UTF{213C4}\UTF{2146D}\UTF{215D7}\UTF{26C29}%
+\UTF{21647}\UTF{21706}\UTF{21742}\UTF{219C3}\UTF{21C56}\UTF{21D2D}\UTF{21D45}\UTF{21D78}\UTF{21D62}\UTF{21DA1}%
+\UTF{21D9C}\UTF{21D92}\UTF{21DB7}\UTF{21DE0}\UTF{21E33}\UTF{21F1E}\UTF{21F76}\UTF{21FFA}\UTF{2217B}\UTF{2231E}%
+\UTF{223AD}\UTF{226F3}\UTF{2285B}\UTF{228AB}\UTF{2298F}\UTF{22AB8}\UTF{22B4F}\UTF{22B50}\UTF{22B46}\UTF{22C1D}%
+\UTF{22BA6}\UTF{22C24}\UTF{22DE1}\UTF{231C3}\UTF{231F5}\UTF{231B6}\UTF{23372}\UTF{233D3}\UTF{233D2}\UTF{233D0}%
+\UTF{233E4}\UTF{233D5}\UTF{233DA}\UTF{233DF}\UTF{2344A}\UTF{23451}\UTF{2344B}\UTF{23465}\UTF{234E4}\UTF{2355A}%
+\UTF{23594}\UTF{23639}\UTF{23647}\UTF{23638}\UTF{2371C}\UTF{2370C}\UTF{23764}\UTF{237FF}\UTF{237E7}\UTF{23824}%
+\UTF{2383D}\UTF{23A98}\UTF{23C7F}\UTF{23D00}\UTF{23D40}\UTF{23DFA}\UTF{23DF9}\UTF{23DD3}\UTF{23F7E}\UTF{24096}%
+\UTF{24103}\UTF{241C6}\UTF{241FE}\UTF{243BC}\UTF{24629}\UTF{246A5}\UTF{24896}\UTF{24A4D}\UTF{24B56}\UTF{24B6F}%
+\UTF{24C16}\UTF{24E0E}\UTF{24E37}\UTF{24E6A}\UTF{24E8B}\UTF{2504A}\UTF{25055}\UTF{25122}\UTF{251A9}\UTF{251E5}%
+\UTF{251CD}\UTF{2521E}\UTF{2524C}\UTF{2542E}\UTF{254D9}\UTF{255A7}\UTF{257A9}\UTF{257B4}\UTF{259D4}\UTF{25AE4}%
+\UTF{25AE3}\UTF{25AF1}\UTF{25BB2}\UTF{25C4B}\UTF{25C64}\UTF{25E2E}\UTF{25E56}\UTF{25E65}\UTF{25E62}\UTF{25ED8}%
+\UTF{25EC2}\UTF{25EE8}\UTF{25F23}\UTF{25F5C}\UTF{25FE0}\UTF{25FD4}\UTF{2600C}\UTF{25FFB}\UTF{26017}\UTF{26060}%
+\UTF{260ED}\UTF{26270}\UTF{26286}\UTF{23D0E}\UTF{26402}\UTF{2667E}\UTF{2671D}\UTF{268DD}\UTF{268EA}\UTF{2696F}%
+\UTF{269DD}\UTF{26A1E}\UTF{26A58}\UTF{26A8C}\UTF{26AB7}\UTF{26C73}\UTF{26CDD}\UTF{26E65}\UTF{26F94}\UTF{26FF8}%
+\UTF{26FF6}\UTF{26FF7}\UTF{2710D}\UTF{27139}\UTF{273DB}\UTF{273DA}\UTF{273FE}\UTF{27410}\UTF{27449}\UTF{27615}%
+\UTF{27614}\UTF{27631}\UTF{27693}\UTF{2770E}\UTF{27723}\UTF{27752}\UTF{27985}\UTF{27A84}\UTF{27BB3}\UTF{27BBE}%
+\UTF{27BC7}\UTF{27CB8}\UTF{27DA0}\UTF{27E10}\UTF{2808A}\UTF{280BB}\UTF{28282}\UTF{282F3}\UTF{2840C}\UTF{28455}%
+\UTF{2856B}\UTF{285C8}\UTF{285C9}\UTF{286D7}\UTF{286FA}\UTF{28949}\UTF{28946}\UTF{2896B}\UTF{28988}\UTF{289BA}%
+\UTF{289BB}\UTF{28A1E}\UTF{28A29}\UTF{28A71}\UTF{28A43}\UTF{28A99}\UTF{28ACD}\UTF{28AE4}\UTF{28ADD}\UTF{28BC1}%
+\UTF{28BEF}\UTF{28D10}\UTF{28D71}\UTF{28DFB}\UTF{28E1F}\UTF{28E36}\UTF{28E89}\UTF{28EEB}\UTF{28F32}\UTF{28FF8}%
+\UTF{292A0}\UTF{292B1}\UTF{29490}\UTF{295CF}\UTF{296F0}\UTF{29719}\UTF{29750}\UTF{298C6}\UTF{29A72}\UTF{29DDB}%
+\UTF{29E15}\UTF{29E8A}\UTF{29E49}\UTF{29EC4}\UTF{29EE9}\UTF{29EDB}\UTF{29FCE}\UTF{29FD7}\UTF{2A02F}\UTF{2A01A}%
+\UTF{2A0F9}\UTF{2A082}\UTF{22218}\UTF{2A38C}\UTF{2A437}\UTF{2A5F1}\UTF{2A602}\UTF{2A6B2}\UTF{200F5}\UTF{24E04}%
+\UTF{24FF2}\UTF{27D73}\UTF{2F815}\UTF{2F846}\UTF{2F899}\UTF{2F8A6}\UTF{2F8E5}\UTF{2F9DE}\UTF{2A2B2}\UTF{20158}%
+\UTF{205B1}\UTF{206EC}\UTF{2B753}\UTF{20D58}\UTF{2B75A}\UTF{2B75C}\UTF{259CC}\UTF{2B776}\UTF{22E42}\UTF{2B77C}%
+\UTF{207C8}\UTF{22FEB}\UTF{279B4}\UTF{2B782}\UTF{2B78B}\UTF{237F1}\UTF{2B794}\UTF{2404B}\UTF{2B7AC}\UTF{2B7AF}%
+\UTF{2B7C9}\UTF{2B7CF}\UTF{2B7D2}\UTF{26C9E}\UTF{27C3C}\UTF{2B7F0}\UTF{2B765}\UTF{2B80D}\UTF{2B817}\UTF{2634C}%
+\UTF{29E3D}\UTF{2A61A}
+
+% end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_kr_utf.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_kr_utf.tex
new file mode 100644
index 00000000000..6af3e290ff3
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/sp_kr_utf.tex
@@ -0,0 +1,14 @@
+%
+% This file is generated from the data of UniKS-UTF32
+% in cid2code.txt (Version 01/31/2012)
+% for Adobe-Korea1-2
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% Adobe-Korea1-2/cid2code.txt
+%
+% A newer CMap may be required for some code points.
+%
+
+
+% end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotf-sp-utf8.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotf-sp-utf8.tex
new file mode 100644
index 00000000000..89b4ef4784c
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotf-sp-utf8.tex
@@ -0,0 +1,313 @@
+% -*- coding: utf-8 -*-
+%%%%%%%%
+% To control hyperref on command line,
+% you can select one of (1),(2a),(2b),(3).
+% (1) do not treat hyperref
+% $ uplatex uotf-sp-utf8.tex
+% (2a) hyperref + dvipdfmx (with CMap conversion)
+% $ uplatex "\def\withhyperref{dvipdfmx}\input" uotf-sp-utf8.tex
+% (2b) hyperref + dvipdfmx + out2uni (without CMap conversion)
+% $ uplatex "\def\withhyperref{dvipdfmx}\nocmap{true}\input" uotf-sp-utf8.tex
+% (3) hyperref + dvips + convbkmk.rb + distiller/ps2pdf
+% $ uplatex "\def\withhyperref{dvips}\input" uotf-sp-utf8.tex
+%%%%%%
+
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000
+ \uptexmodetrue
+ \def\tounicode{pdf:tounicode UTF8-UTF16}
+\else
+ \ifnum\jis"2121="A1A1
+ \def\tounicode{pdf:tounicode EUC-UCS2}
+ \fi
+ \ifnum\jis"2121="8140
+ \def\tounicode{pdf:tounicode 90ms-RKSJ-UCS2}
+ \fi
+\fi
+
+\makeatletter
+
+\def\@opt@{multi}
+\def\@default{default}
+\def\@jarticle{jarticle}
+\def\@tarticle{tarticle}
+\def\@ujarticle{ujarticle}
+\def\@noreplace{noreplace}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@noreplace
+ \ifuptexmode
+ \ifx\class\@ujarticle
+ \def\@enc@{JY2}\def\@dir@{h}
+ \else
+ \def\@enc@{JT2}\def\@dir@{v}
+ \fi
+ \DeclareFontFamily{\@enc@}{mcw}{}
+ \DeclareFontFamily{\@enc@}{gtw}{}
+ \DeclareFontShape{\@enc@}{mcw}{m}{n}{<->s*[0.962216]upjpnrm-\@dir@}{}
+ \DeclareFontShape{\@enc@}{gtw}{m}{n}{<->s*[0.962216]upjpngt-\@dir@}{}
+ \DeclareFontShape{\@enc@}{gt}{m}{n}{<->s*[0.962216]upjpngt-\@dir@}{}
+ \DeclareFontShape{\@enc@}{mcw}{bx}{n}{<->ssub*gt/m/n}{}
+ \DeclareFontShape{\@enc@}{gtw}{bx}{n}{<->ssub*gt/m/n}{}
+ \DeclareFontShape{\@enc@}{gt}{bx}{n}{<->ssub*gt/m/n}{}
+ \DeclareRobustCommand\mcw{\kanjifamily{mcw}\selectfont}
+ \DeclareRobustCommand\gtw{\kanjifamily{gtw}\selectfont}
+ \renewcommand\mcdefault{mcw}
+ \renewcommand\gtdefault{gtw}
+ \fi
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\class\@undefined
+ \ifuptexmode
+ \def\class{ujarticle}
+ \else
+ \def\class{jarticle}
+ \fi
+\fi
+\ifuptexmode
+ \edef\@opt@{uplatex,\@opt@}
+\fi
+\ifx\class\@jarticle
+ \documentclass[a4paper,titlepage]{\class}
+\else
+ \ifx\class\@ujarticle
+ \documentclass[a4paper,titlepage]{\class}
+ \else
+ \documentclass[a4paper,titlepage,landscape]{\class}
+ \fi
+\fi
+
+\usepackage[\@opt@]{otf}
+
+\def\@dvipdfmx{dvipdfmx}
+\def\@dvips{dvips}
+
+\ifx\withhyperref\@undefined
+ \def\withhyperref{undefined}
+ \edef\texorpdfstring#1#2{#1}
+\else
+ \ifx\withhyperref\@dvipdfmx
+ \def\@hyperrefkeyval{dvipdfm}
+ \usepackage{atbegshi}
+ \ifx\nocmap\@undefined
+ \AtBeginShipoutFirst{\special{\tounicode}}
+ \fi
+ \fi
+ \ifx\withhyperref\@dvips
+ \def\@hyperrefkeyval{dvips}
+ \fi
+
+\usepackage[\@hyperrefkeyval,%
+bookmarks=true,%
+bookmarksnumbered=true,%
+bookmarkstype=toc,%
+%pdfstartview={FitBH -32768},%
+pdftitle={japanese-otfのテスト},%
+pdfsubject={Unicode supplementary plane編},%
+pdfauthor={upTeXプロジェクト},%
+pdfkeywords={TeX; dvips; dvipdfmx; bookmark; hyperref; しおり; pdf}%
+]{hyperref}
+
+\fi
+
+\makeatother
+
+\usepackage{redeffont}
+
+\ajUTFVarDef{叱}{20B9F}
+\ajUTFVarDef{亭}{20158}
+\ajUTFVarDef{吉}{20bb7}
+\ajUTFVarDef{座}{2B776}
+
+\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+\pagestyle{empty}
+\makeatletter
+\ifx\rubyfamily\@undefined\let\rubyfamily=\relax\fi
+\ifx\mgfamily\@undefined\let\mgfamily=\relax\fi
+\makeatother
+
+\edef\bs{$\backslash$\kern0em}
+\setlength\parindent{0em}
+
+\begin{document}
+\section{見出し}
+
+コンパイラー:\ifuptexmode upLaTeX\else pLaTeX\fi\\
+クラス:\texttt{\class}\\
+オプション:\texttt{\option}
+
+\vspace{\baselineskip}
+\ifuptexmode
+\begin{tabular}{l||ccccccc}
+フォント & 仮名 & 漢字 & UTF-8 & \bs kchar & \bs UTF & \bs CID\\
+\hline
+mc/m & ひらかな & 漢字 & 𠮟𠅘 & \kchar"20B9F\kchar"20158 & \UTF{20B9F}\UTF{20158} & \CID{13803}\CID{20075} \\
+mc/bx & {\bfseries ひらかな} & {\bfseries 漢字} & {\bfseries 𠮟𠅘} & {\bfseries\kchar"20B9F\kchar"20158} & {\bfseries\UTF{20B9F}\UTF{20158}} & {\bfseries\CID{13803}\CID{20075}} \\
+gt/m & {\gtfamily ひらかな} & {\gtfamily 漢字} & {\gtfamily 𠮟𠅘} & {\gtfamily\kchar"20B9F\kchar"20158} & {\gtfamily\UTF{20B9F}\UTF{20158}} & {\gtfamily\CID{13803}\CID{20075}} \\
+gt/bx & {\gtfamily\bfseries ひらかな} & {\gtfamily\bfseries 漢字} & {\gtfamily\bfseries 𠮟𠅘} & {\gtfamily\bfseries\kchar"20B9F\kchar"20158} & {\gtfamily\bfseries\UTF{20B9F}\UTF{20158}} & {\gtfamily\bfseries\CID{13803}\CID{20075}} \\
+mg/m & {\mgfamily ひらかな} & {\mgfamily 漢字} & {\mgfamily 𠮟𠅘} & {\mgfamily\kchar"20B9F\kchar"20158} & {\mgfamily\UTF{20B9F}\UTF{20158}} & {\mgfamily\CID{13803}\CID{20075}} \\
+\end{tabular}
+\else
+\begin{tabular}{l||ccccc}
+フォント & 仮名 & 漢字 & \bs UTF & \bs CID\\
+\hline
+mc/m & ひらかな & 漢字 & \UTF{20B9F}\UTF{20158} & \CID{13803}\CID{20075} \\
+mc/bx & {\bfseries ひらかな} & {\bfseries 漢字} & {\bfseries\UTF{20B9F}\UTF{20158}} & {\bfseries\CID{13803}\CID{20075}} \\
+gt/m & {\gtfamily ひらかな} & {\gtfamily 漢字} & {\gtfamily\UTF{20B9F}\UTF{20158}} & {\gtfamily\CID{13803}\CID{20075}} \\
+gt/bx & {\gtfamily\bfseries ひらかな} & {\gtfamily\bfseries 漢字} & {\gtfamily\bfseries\UTF{20B9F}\UTF{20158}} & {\gtfamily\bfseries\CID{13803}\CID{20075}} \\
+mg/m & {\mgfamily ひらかな} & {\mgfamily 漢字} & {\mgfamily\UTF{20B9F}\UTF{20158}} & {\mgfamily\CID{13803}\CID{20075}} \\
+\end{tabular}
+\fi
+\vspace{\baselineskip}
+
+日本:\UTF{20509}\UTF{241FE} 簡体字:\UTFC{20509}\UTFC{241FE} 多言語:\UTFM{20509}\UTFM{241FE}
+
+日本:\UTF{20b9f}\UTF{26402} 繁體字:\UTFT{20b9f}\UTFT{26402} 多言語:\UTFM{20b9f}\UTFM{26402}
+
+簡体字:\UTFC{20087}\UTFC{200cc} 繁體字:\UTFT{20087}\UTFT{200cc} 多言語:\UTFM{20087}\UTFM{200cc}
+
+\vspace{\baselineskip}
+
+\ifuptexmode
+ \kchar"20B9Fる。
+ 𠮟る。
+\fi
+\ajVar{叱}る。
+叱る。
+
+\ifuptexmode
+ らいおん\kchar"20158。
+ らいおん𠅘。
+\fi
+らいおん\ajVar{亭}。
+らいおん亭。
+
+\ifuptexmode
+ \kchar"20BB7野家。
+ 𠮷野家。
+\fi
+\ajVar{吉}野家。
+吉野家。
+
+\ifuptexmode
+ 銀\kchar"2B776アスター。
+ 銀𫝶アスター。
+\fi
+銀\ajVar{座}アスター。
+銀座アスター。
+
+\makeatletter
+\ifx\withhyperref\@undefined
+\else
+
+\section{見出しに\texorpdfstring{\bs}{\134}UTF, \texorpdfstring{\bs}{\134}UTFC, \texorpdfstring{\bs}{\134}UTFMなど}
+\subsection{日本:\UTF{9aa8}\UTF{6D77} 簡体字:\UTFC{9aa8}\UTFC{6D77} 繁體字:\UTFT{9AA8}\UTFT{6d77} 朝鮮:\UTFK{9AA8}\UTFK{6d77}}
+日本:\UTF{9aa8}\UTF{6D77} 簡体字:\UTFC{9aa8}\UTFC{6D77} 繁體字:\UTFT{9AA8}\UTFT{6d77} 朝鮮:\UTFK{9AA8}\UTFK{6d77}
+
+\subsection{ハングル:\UTFK{c548}\UTFK{b155}\UTFK{d558}\UTFK{C138}\UTFK{C694}}
+ハングル:\UTFK{c548}\UTFK{b155}\UTFK{d558}\UTFK{C138}\UTFK{C694}
+
+\subsection{日本:\UTF{20509}\UTF{241FE} 簡体字:\UTFC{20509}\UTFC{241FE} 多言語:\UTFM{20509}\UTFM{241FE}}
+日本:\UTF{20509}\UTF{241FE} 簡体字:\UTFC{20509}\UTFC{241FE} 多言語:\UTFM{20509}\UTFM{241FE}
+
+\subsection{日本:\UTF{20509}\UTF{241FE} 簡体字:\UTFC{20509}\UTFC{241FE} 多言語:\UTFM{20509}\UTFM{241FE}}
+日本:\UTF{20509}\UTF{241FE} 簡体字:\UTFC{20509}\UTFC{241FE} 多言語:\UTFM{20509}\UTFM{241FE}
+
+\subsection{日本:\UTF{20b9f}\UTF{26402} 繁體字:\UTFT{20b9f}\UTFT{26402} 多言語:\UTFM{20b9f}\UTFM{26402}}
+日本:\UTF{20b9f}\UTF{26402} 繁體字:\UTFT{20b9f}\UTFT{26402} 多言語:\UTFM{20b9f}\UTFM{26402}
+
+\subsection{簡体字:\UTFC{20087}\UTFC{200cc} 繁體字:\UTFT{20087}\UTFT{200cc} 多言語:\UTFM{20087}\UTFM{200cc}}
+簡体字:\UTFC{20087}\UTFC{200cc} 繁體字:\UTFT{20087}\UTFT{200cc} 多言語:\UTFM{20087}\UTFM{200cc}
+\fi
+\makeatother
+
+\clearpage
+[mc/m]
+
+\ifuptexmode
+ \input{sp_jp_text}
+\fi
+\input{sp_jp_utf}
+
+{\bfseries%
+[mc/bx]
+
+\ifuptexmode
+ \input{sp_jp_text}
+\fi
+\input{sp_jp_utf}
+
+}
+
+{\gtfamily
+[gt/m]
+
+\ifuptexmode
+ \input{sp_jp_text}
+\fi
+\input{sp_jp_utf}
+
+{\bfseries%
+[gt/bx]
+
+\ifuptexmode
+ \input{sp_jp_text}
+\fi
+\input{sp_jp_utf}
+
+}}
+
+{\mgfamily
+[mg/m]
+
+\ifuptexmode
+ \input{sp_jp_text}
+\fi
+\input{sp_jp_utf}
+
+}
+
+\clearpage
+[mc/m]
+
+\input{sp_cns_utf}
+
+\input{sp_gb_utf}
+
+%\end{document}
+
+{\bfseries%
+[mc/bx]
+
+\input{sp_cns_utf}
+
+\input{sp_gb_utf}
+
+}
+
+\end{document}
+
+
+{\gtfamily
+[gt/m]
+
+\input{sp_cns_utf}
+
+\input{sp_gb_utf}
+
+{\bfseries%
+[gt/bx]
+
+\input{sp_cns_utf}
+
+\input{sp_gb_utf}
+
+}}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotftest-utf8.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotftest-utf8.tex
new file mode 100644
index 00000000000..45f57f83902
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotftest-utf8.tex
@@ -0,0 +1,300 @@
+% -*- coding: utf-8 -*-
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000 \uptexmodetrue\fi
+
+\makeatletter
+
+\def\@opt@{multi}
+\def\@default{default}
+\def\@jarticle{jarticle}
+\def\@tarticle{tarticle}
+\def\@utarticle{utarticle}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\class\@undefined
+ \ifuptexmode
+ \def\class{ujarticle}
+ \else
+ \def\class{jarticle}
+ \fi
+\fi
+
+\def\baseshift{-.12zh}
+\ifx\class\@tarticle\def\baseshift{-.5zh}\fi
+\ifx\class\@utarticle\def\baseshift{-.5zh}\fi
+
+\ifuptexmode
+ \edef\@opt@{uplatex,\@opt@}
+\fi
+\documentclass[a4paper,titlepage, draft]{\class}
+%\documentclass[a4paper,titlepage, draft,landscape]{\class}
+
+\usepackage[\@opt@]{otf}
+
+%
+% furikana.sty があれば読み込む
+\newread\@istheresuchafile
+\openin\@istheresuchafile furikana.sty
+\ifeof\@istheresuchafile\relax
+\else\closein\@istheresuchafile\relax
+\usepackage{furikana}% found
+\fi
+
+\makeatother
+
+\usepackage{redeffont}
+
+
+\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+\ajCIDVarDef{り}{12746}
+\ajCIDVarDef{高}{8705}
+\ajUTFVarDef{鴎}{9DD7}
+\pagestyle{empty}
+\makeatletter
+\ifx\rubyfamily\@undefined\let\rubyfamily=\relax\fi
+\ifx\mgfamily\@undefined\let\mgfamily=\relax\fi
+\makeatother
+\begin{document}
+\section{見出し}
+
+クラス:\texttt{\class}\\
+オプション:\texttt{\option}
+
+\vspace{\baselineskip}
+\begin{tabular}{l||ccccc}
+フォント & 仮名 & 漢字 & UTF & CID & ルビ\\
+\hline
+mc/m & ひらかな & 漢字 & \UTF{9DD7} & \CID{8705} & {\rubyfamily 振りかな}\\
+mc/bx & {\bfseries ひらかな} & {\bfseries 漢字} & {\bfseries\UTF{9DD7}} & {\bfseries\CID{8705}} & {\bfseries\rubyfamily 振りかな}\\
+gt/m & {\gtfamily ひらかな} & {\gtfamily 漢字} & {\gtfamily\UTF{9DD7}} & {\gtfamily\CID{8705}} & {\gtfamily\rubyfamily 振りかな}\\
+gt/bx & {\gtfamily\bfseries ひらかな} & {\gtfamily\bfseries 漢字} & {\gtfamily\bfseries\UTF{9DD7}} & {\gtfamily\bfseries\CID{8705}} & {\gtfamily\bfseries\rubyfamily 振りかな}\\
+mg/m & {\mgfamily ひらかな} & {\mgfamily 漢字} & {\mgfamily\UTF{9DD7}} & {\mgfamily\CID{8705}} & {\mgfamily\rubyfamily 振りかな}\\
+\end{tabular}
+\vspace{\baselineskip}
+
+日本:\UTF{9aa8} 簡体字:\UTFC{9aa8} 繁體字:\UTFT{9aa8} 朝鮮:\UTFK{9aa8}
+
+日本:\UTF{6d77} 簡体字:\UTFC{6d77} 繁體字:\UTFT{6d77} 朝鮮:\UTFK{6d77}
+
+% with furikana.sty
+\makeatletter
+\ifx\kana\@undefined
+\else
+\kana{漢字}{振りかな}{\bfseries \kana{漢字}{振りかな}}%
+{\gtfamily\kana{漢字}{振りかな}\bfseries \kana{漢字}{振りかな}}
+{\mgfamily\kana{漢字}{振りかな}}
+
+\kana{\UTF{9DD7}}{かな}\kana{鴎}{かな}
+
+\Kana[3]{\UTFK{c548},\UTFK{b155},\UTFK{d558},\UTFK{c138},\UTFK{c694}}{アン,ニョン,ハ,セ,ヨ}
+\fi
+\makeatother
+
+\vspace{\baselineskip}
+
+アイウエオ\raisebox\baseshift{\frame{ア}\frame{イ}\frame{ウ}\frame{エ}\frame{オ}}
+
+アイウエオ\raisebox\baseshift{\frame{ア}\frame{イ}\frame{ウ}\frame{エ}\frame{オ}}
+
+% \UTF{}はまだ半角片仮名に対応していない。
+UTF:\UTF{FF71}\UTF{FF72}\UTF{FF73}\UTF{FF74}\UTF{FF75}%
+\raisebox\baseshift{\frame{\UTF{FF71}}\frame{\UTF{FF72}}\frame{\UTF{FF73}}\frame{\UTF{FF74}}\frame{\UTF{FF75}}}
+
+UTF:%
+\UTF{FF61}\UTF{FF62}\UTF{FF63}\UTF{FF64}\UTF{FF65}\UTF{FF66}\UTF{FF67}\UTF{FF68}\UTF{FF69}\UTF{FF6A}\UTF{FF6B}\UTF{FF6C}\UTF{FF6D}\UTF{FF6E}\UTF{FF6F},%
+\UTF{FF70}\UTF{FF71}\UTF{FF72}\UTF{FF73}\UTF{FF74}\UTF{FF75}\UTF{FF76}\UTF{FF77}\UTF{FF78}\UTF{FF79}\UTF{FF7A}\UTF{FF7B}\UTF{FF7C}\UTF{FF7D}\UTF{FF7E}\UTF{FF7F},%
+\UTF{FF80}\UTF{FF81}\UTF{FF82}\UTF{FF83}\UTF{FF84}\UTF{FF85}\UTF{FF86}\UTF{FF87}\UTF{FF88}\UTF{FF89}\UTF{FF8A}\UTF{FF8B}\UTF{FF8C}\UTF{FF8D}\UTF{FF8E}\UTF{FF8F},%
+\UTF{FF90}\UTF{FF91}\UTF{FF92}\UTF{FF93}\UTF{FF94}\UTF{FF95}\UTF{FF96}\UTF{FF97}\UTF{FF98}\UTF{FF99}\UTF{FF9A}\UTF{FF9B}\UTF{FF9C}\UTF{FF9D}\UTF{FF9E}\UTF{FF9F}
+
+\clearpage
+[mc/m]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+{\bfseries%
+[mc/bx]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+}
+
+{\gtfamily
+[gt/m]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+{\bfseries%
+[gt/bx]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+}}
+
+{\mgfamily
+[mg/m]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+}
+
+{\rubyfamily%
+[ruby/m]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+
+\fbox{\hbox{\tate\Huge ㇰ}}
+
+\fbox{\hbox{\yoko\Huge ㇰ}}
+
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+{\bfseries%
+[ruby/bx]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+}}
+
+{\gtfamily\rubyfamily%
+[rubyg/m]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+{\gtfamily\rubyfamily\bfseries%
+[rubyg/bx]
+
+\fbox{\hbox{\tate\Huge ぁ}}
+
+\fbox{\hbox{\yoko\Huge ぁ}}
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+}}
+
+{\mgfamily\rubyfamily%
+[rubymg/m]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+}
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotftest.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotftest.tex
new file mode 100644
index 00000000000..afe549dd0e1
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/uotftest.tex
@@ -0,0 +1,191 @@
+\makeatletter
+
+\def\@opt@{multi}
+\def\@default{default}
+\def\@jarticle{jarticle}
+\def\@tarticle{tarticle}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\class\@undefined
+ \def\class{jarticle}
+\fi
+\ifx\class\@jarticle
+\else
+ \ifx\class\@tarticle
+ \else
+ \edef\@opt@{uplatex,\@opt@}
+ \fi
+\fi
+
+\documentclass[a4paper,titlepage, draft]{\class}
+%\documentclass[a4paper,titlepage, draft,landscape]{\class}
+
+\usepackage[\@opt@]{otf}
+
+%
+% furikana.sty $B$,$"$l$PFI$_9~$`(B
+\newread\@istheresuchafile
+\openin\@istheresuchafile furikana.sty
+\ifeof\@istheresuchafile\relax
+\else\closein\@istheresuchafile\relax
+\usepackage{furikana}% found
+\fi
+
+\makeatother
+
+\usepackage{redeffont}
+
+
+\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+\ajCIDVarDef{$B$j(B}{12746}
+\ajCIDVarDef{$B9b(B}{8705}
+\ajUTFVarDef{$B2*(B}{9DD7}
+\pagestyle{empty}
+\makeatletter
+\ifx\rubyfamily\@undefined\let\rubyfamily=\relax\fi
+\ifx\mgfamily\@undefined\let\mgfamily=\relax\fi
+\makeatother
+\begin{document}
+\section{$B8+=P$7(B}
+
+$B%/%i%9!'(B\texttt{\class}\\
+$B%*%W%7%g%s!'(B\texttt{\option}
+
+\vspace{\baselineskip}
+\begin{tabular}{l||ccccc}
+$B%U%)%s%H(B & $B2>L>(B & $B4A;z(B & UTF & CID & $B%k%S(B\\
+\hline
+mc/m & $B$R$i$+$J(B & $B4A;z(B & \UTF{9DD7} & \CID{8705} & {\rubyfamily $B?6$j$+$J(B}\\
+mc/bx & {\bfseries $B$R$i$+$J(B} & {\bfseries $B4A;z(B} & {\bfseries\UTF{9DD7}} & {\bfseries\CID{8705}} & {\bfseries\rubyfamily $B?6$j$+$J(B}\\
+gt/m & {\gtfamily $B$R$i$+$J(B} & {\gtfamily $B4A;z(B} & {\gtfamily\UTF{9DD7}} & {\gtfamily\CID{8705}} & {\gtfamily\rubyfamily $B?6$j$+$J(B}\\
+gt/bx & {\gtfamily\bfseries $B$R$i$+$J(B} & {\gtfamily\bfseries $B4A;z(B} & {\gtfamily\bfseries\UTF{9DD7}} & {\gtfamily\bfseries\CID{8705}} & {\gtfamily\bfseries\rubyfamily $B?6$j$+$J(B}\\
+mg/m & {\mgfamily $B$R$i$+$J(B} & {\mgfamily $B4A;z(B} & {\mgfamily\UTF{9DD7}} & {\mgfamily\CID{8705}} & {\mgfamily\rubyfamily $B?6$j$+$J(B}\\
+\end{tabular}
+\vspace{\baselineskip}
+
+$BF|K\!'(B\UTF{9aa8}$B!!4JBN;z!'(B\UTFC{9aa8}$B!!HKqs;z!'(B\UTFT{9aa8}$B!!D+A/!'(B\UTFK{9aa8}
+
+$BF|K\!'(B\UTF{6d77}$B!!4JBN;z!'(B\UTFC{6d77}$B!!HKqs;z!'(B\UTFT{6d77}$B!!D+A/!'(B\UTFK{6d77}
+
+% with furikana.sty
+\makeatletter
+\ifx\kana\@undefined
+\else
+\kana{$B4A;z(B}{$B?6$j$+$J(B}{\bfseries \kana{$B4A;z(B}{$B?6$j$+$J(B}}%
+{\gtfamily\kana{$B4A;z(B}{$B?6$j$+$J(B}\bfseries \kana{$B4A;z(B}{$B?6$j$+$J(B}}
+{\mgfamily\kana{$B4A;z(B}{$B?6$j$+$J(B}}
+
+\kana{\UTF{9DD7}}{$B$+$J(B}\kana{$B2*(B}{$B$+$J(B}
+
+\Kana[3]{\UTFK{c548},\UTFK{b155},\UTFK{d558},\UTFK{c138},\UTFK{c694}}{$B%"%s(B,$B%K%g%s(B,$B%O(B,$B%;(B,$B%h(B}
+\fi
+\makeatother
+
+
+\clearpage
+[mc/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+
+{\bfseries%
+[mc/bx]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}
+
+{\gtfamily
+[gt/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+
+{\bfseries%
+[gt/bx]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}}
+
+{\mgfamily
+[mg/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}
+
+{\rubyfamily%
+[ruby/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+
+{\bfseries%
+[ruby/bx]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}}
+
+{\gtfamily\rubyfamily%
+[rubyg/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+
+{\gtfamily\rubyfamily\bfseries%
+[rubyg/bx]
+
+\fbox{\hbox{\tate\Huge $B$!(B}}
+
+\fbox{\hbox{\yoko\Huge $B$!(B}}
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}}
+
+{\mgfamily\rubyfamily%
+[rubymg/m]
+
+$B$!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B
+$B$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s!3!4!5!6!<(B
+
+$B%!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O(B
+$B%P%Q%R%S%T%U%V%W%X%Y%Z%[%\%]%^%_%`%a%b%c%d%e%f%g%h%i%j%k%l%m%n%o%p%q%r%s%t%u%v(B
+}
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upbrsgtest.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upbrsgtest.tex
new file mode 100644
index 00000000000..e901822def7
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upbrsgtest.tex
@@ -0,0 +1,293 @@
+% -*- coding: utf-8 -*-
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000 \uptexmodetrue\fi
+
+\makeatletter
+
+\def\@opt@{deluxe}
+\def\@default{default}
+\def\@br@{br}
+
+\ifuptexmode
+ \edef\@opt@{uplatex,\@opt@}
+\fi
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\burasage\@br@
+ \edef\@opt@{\@opt@,burasage}
+ \def\burasage{yes}
+\else
+ \def\burasage{no}
+\fi
+
+\ifx\class\@undefined
+ \ifuptexmode
+ \def\class{utbook}
+ \else
+ \def\class{tbook}
+ \fi
+\fi
+
+\documentclass[twocolumn]{\class}
+\usepackage[\@opt@]{otf}
+
+\makeatother
+
+\textwidth 13zw
+\columnsep 3zw
+\columnseprule 1pt
+\linewidth 5zw
+\parindent 0zw
+\pagestyle{empty}
+%\parskip \baselineskip
+\begin{document}
+class: \texttt{\class}\\
+option: \texttt{\option}\\
+burasage: \texttt{\burasage}
+
+□□□□◆□□□□◆□□□□◆□□□□◆,
+□□□□◆□□□□◆□□□□◆□□□□◆.
+
+□□,□□,□□□□◆,□□,□□.
+
+□□,□□,□□□□◆,□□□□.
+
+□□□□◆,□□.□□□□□□◆.
+
+□□□□◆。」「□□◆
+
+\newpage
+
+\textgt{タイプ別の、組み合わせ。}
+
+□ああ□
+
+□あ(□
+
+□あ)□
+
+□あ・□
+
+□あ。□
+
+□あ―□
+
+□あ?□
+
+□あ、□
+
+□(あ□
+
+□((□
+
+□()□
+
+□(・□
+
+□(。□
+
+□(―□
+
+□(?□
+
+□(、□
+
+□)あ□
+
+□)(□
+
+□))□
+
+□)・□
+
+□)。□
+
+□)―□
+
+□)?□
+
+□)、□
+
+□・あ□
+
+□・(□
+
+□・)□
+
+□・・□
+
+□・。□
+
+□・―□
+
+□・?□
+
+□・、□
+
+□。あ□
+
+□。(□
+
+□。)□
+
+□。・□
+
+□。。□
+
+□。―□
+
+□。?□
+
+□。、□
+
+□―あ□
+
+□―(□
+
+□―)□
+
+□―・□
+
+□―。□
+
+□――□
+
+□―?□
+
+□―、□
+
+□?あ□
+
+□?(□
+
+□?)□
+
+□?・□
+
+□?。□
+
+□?―□
+
+□??□
+
+□?、□
+
+□、あ□
+
+□、(□
+
+□、)□
+
+□、・□
+
+□、。□
+
+□、―□
+
+□、?□
+
+□、、□
+
+\newpage
+{\bfseries%
+[mc/bx]
+
+□□□□◆□□□□◆□□□□◆□□□□◆,
+□□□□◆□□□□◆□□□□◆□□□□◆.
+
+□□,□□,□□□□◆,□□,□□.
+
+□□,□□,□□□□◆,□□□□.
+
+□□□□◆,□□.□□□□□□◆.
+
+□□□□◆。」「□□◆
+}
+
+\if0
+{\ltseries%
+[mc/l]
+
+□□□□◆□□□□◆□□□□◆□□□□◆,
+□□□□◆□□□□◆□□□□◆□□□□◆.
+
+□□,□□,□□□□◆,□□,□□.
+
+□□,□□,□□□□◆,□□□□.
+
+□□□□◆,□□.□□□□□□◆.
+
+□□□□◆。」「□□◆
+}
+\fi
+
+{\gtfamily
+[gt/m]
+
+□□□□◆□□□□◆□□□□◆□□□□◆,
+□□□□◆□□□□◆□□□□◆□□□□◆.
+
+□□,□□,□□□□◆,□□,□□.
+
+□□,□□,□□□□◆,□□□□.
+
+□□□□◆,□□.□□□□□□◆.
+
+□□□□◆。」「□□◆
+
+{\bfseries%
+[gt/bx]
+
+□□□□◆□□□□◆□□□□◆□□□□◆,
+□□□□◆□□□□◆□□□□◆□□□□◆.
+
+□□,□□,□□□□◆,□□,□□.
+
+□□,□□,□□□□◆,□□□□.
+
+□□□□◆,□□.□□□□□□◆.
+
+□□□□◆。」「□□◆
+}
+
+\if0
+{\ebseries%
+[gt/eb]
+
+□□□□◆□□□□◆□□□□◆□□□□◆,
+□□□□◆□□□□◆□□□□◆□□□□◆.
+
+□□,□□,□□□□◆,□□,□□.
+
+□□,□□,□□□□◆,□□□□.
+
+□□□□◆,□□.□□□□□□◆.
+
+□□□□◆。」「□□◆
+}
+\fi
+}
+
+{\mgfamily
+[mg/m]
+
+□□□□◆□□□□◆□□□□◆□□□□◆,
+□□□□◆□□□□◆□□□□◆□□□□◆.
+
+□□,□□,□□□□◆,□□,□□.
+
+□□,□□,□□□□◆,□□□□.
+
+□□□□◆,□□.□□□□□□◆.
+
+□□□□◆。」「□□◆
+}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upjis2004.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upjis2004.tex
new file mode 100644
index 00000000000..65a235f946d
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upjis2004.tex
@@ -0,0 +1,158 @@
+% -*- coding: utf-8 -*-
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000 \uptexmodetrue\fi
+
+\makeatletter
+
+\def\@opt@{deluxe}
+\def\@default{default}
+\def\@br@{br}
+\def\@newjis@{04}
+
+\ifuptexmode
+ \edef\@opt@{uplatex,\@opt@}
+\fi
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\burasage\@br@
+ \edef\@opt@{\@opt@,burasage}
+ \def\burasage{yes}
+\else
+ \def\burasage{no}
+\fi
+
+\ifx\jisvar\@newjis@
+ \edef\@opt@{\@opt@,jis2004}
+ \def\jisvar{2004}
+\else
+ \def\jisvar{conventional}
+\fi
+
+\ifx\class\@undefined
+ \ifuptexmode
+ \def\class{ujarticle}
+ \else
+ \def\class{jarticle}
+ \fi
+\fi
+
+\documentclass[a4paper,titlepage,draft]{\class}
+%\documentclass[a4paper,titlepage,draft,landscape]{\class}
+
+\usepackage[\@opt@]{otf}
+
+\makeatother
+
+\usepackage{redeffont}
+\parindent 0zw
+\pagestyle{empty}
+%\parskip \baselineskip
+\makeatletter
+\ifx\rubyfamily\@undefined\let\rubyfamily=\relax\fi
+\ifx\mgfamily\@undefined\let\mgfamily=\relax\fi
+\makeatother
+
+\def\testglyph{%
+逢芦飴溢茨鰯淫迂厩噂餌襖迦牙廻恢晦蟹葛鞄
+釜翰翫徽祇汲灸笈卿饗僅喰櫛屑粂祁隙倦捲牽
+鍵諺巷梗膏鵠甑叉榊薩鯖錆鮫餐杓灼酋楯薯藷
+哨鞘杖蝕訊逗摺撰煎煽穿箭詮噌遡揃遜腿蛸辿
+樽歎註瀦捗槌鎚辻挺鄭擢溺兎堵屠賭瀞遁謎灘
+楢禰牌這秤駁箸叛挽誹樋稗逼謬豹廟瀕斧蔽瞥
+蔑篇娩鞭庖蓬鱒迄儲餅籾爺鑓愈猷漣煉簾榔冤
+叟咬嘲囀徘扁棘橙狡甕甦疼祟竈筵篝腱艘芒虔
+蜃蠅訝靄靱騙鴉
+\ifuptexmode
+ 俱剝吞噓姸屛幷瘦繫摯懲蘒譿悞煒驊夆暵屢
+\fi
+}
+\def\testutf{%
+\UTF{9022}\UTF{82A6}\UTF{98F4}\UTF{6EA2}\UTF{8328}\UTF{9C2F}\UTF{6DEB}\UTF{8FC2}\UTF{53A9}\UTF{5642}%
+\UTF{990C}\UTF{8956}\UTF{8FE6}\UTF{7259}\UTF{5EFB}\UTF{6062}\UTF{6666}\UTF{87F9}\UTF{845B}\UTF{9784}%
+\UTF{91DC}\UTF{7FF0}\UTF{7FEB}\UTF{5FBD}\UTF{7947}\UTF{6C72}\UTF{7078}\UTF{7B08}\UTF{537F}\UTF{9957}%
+\UTF{50C5}\UTF{55B0}\UTF{6ADB}\UTF{5C51}\UTF{7C82}\UTF{7941}\UTF{9699}\UTF{5026}\UTF{6372}\UTF{727D}%
+\UTF{9375}\UTF{8AFA}\UTF{5DF7}\UTF{6897}\UTF{818F}\UTF{9D60}\UTF{7511}\UTF{53C9}\UTF{698A}\UTF{85A9}%
+\UTF{9BD6}\UTF{9306}\UTF{9BAB}\UTF{9910}\UTF{6753}\UTF{707C}\UTF{914B}\UTF{696F}\UTF{85AF}\UTF{85F7}%
+\UTF{54E8}\UTF{9798}\UTF{6756}\UTF{8755}\UTF{8A0A}\UTF{9017}\UTF{647A}\UTF{64B0}\UTF{714E}\UTF{717D}%
+\UTF{7A7F}\UTF{7BAD}\UTF{8A6E}\UTF{564C}\UTF{9061}\UTF{63C3}\UTF{905C}\UTF{817F}\UTF{86F8}\UTF{8FBF}%
+\UTF{6A3D}\UTF{6B4E}\UTF{8A3B}\UTF{7026}\UTF{6357}\UTF{69CC}\UTF{939A}\UTF{8FBB}\UTF{633A}\UTF{912D}%
+\UTF{64E2}\UTF{6EBA}\UTF{514E}\UTF{5835}\UTF{5C60}\UTF{8CED}\UTF{701E}\UTF{9041}\UTF{8B0E}\UTF{7058}%
+\UTF{6962}\UTF{79B0}\UTF{724C}\UTF{9019}\UTF{79E4}\UTF{99C1}\UTF{7BB8}\UTF{53DB}\UTF{633D}\UTF{8AB9}%
+\UTF{6A0B}\UTF{7A17}\UTF{903C}\UTF{8B2C}\UTF{8C79}\UTF{5EDF}\UTF{7015}\UTF{65A7}\UTF{853D}\UTF{77A5}%
+\UTF{8511}\UTF{7BC7}\UTF{5A29}\UTF{97AD}\UTF{5E96}\UTF{84EC}\UTF{9C52}\UTF{8FC4}\UTF{5132}\UTF{9905}%
+\UTF{7C7E}\UTF{723A}\UTF{9453}\UTF{6108}\UTF{7337}\UTF{6F23}\UTF{7149}\UTF{7C3E}\UTF{6994}\UTF{51A4}%
+\UTF{53DF}\UTF{54AC}\UTF{5632}\UTF{56C0}\UTF{5F98}\UTF{6241}\UTF{68D8}\UTF{6A59}\UTF{72E1}\UTF{7515}%
+\UTF{7526}\UTF{75BC}\UTF{795F}\UTF{7AC8}\UTF{7B75}\UTF{7BDD}\UTF{8171}\UTF{8258}\UTF{8292}\UTF{8654}%
+\UTF{8703}\UTF{8805}\UTF{8A1D}\UTF{9744}\UTF{9771}\UTF{9A19}\UTF{9D09}%
+\UTF{4FF1}\UTF{525D}\UTF{541E}\UTF{5653}\UTF{59F8}\UTF{5C5B}\UTF{5E77}\UTF{7626}\UTF{7E6B}\UTF{646F}%
+\UTF{FA40}\UTF{FA20}\UTF{8B7F}\UTF{609E}\UTF{7152}\UTF{9A4A}\UTF{5906}\UTF{66B5}\UTF{5C62}}
+
+\begin{document}
+class: \texttt{\class}\\
+option: \texttt{\option}\\
+burasage: \texttt{\burasage}\\
+jis version: \texttt{\jisvar}\\
+
+[mc/m]
+
+\testglyph
+
+\testutf
+
+{\bfseries%
+[mc/bx]
+
+\testglyph
+
+\testutf
+}
+
+{\gtfamily
+[gt/m]
+
+\testglyph
+
+\testutf
+
+{\bfseries%
+[gt/bx]
+
+\testglyph
+
+\testutf
+}}
+
+{\mgfamily
+[mg/m]
+
+\testglyph
+
+\testutf
+}
+
+%%% extra font
+{\ltseries%
+[mc/lt]
+
+\testglyph
+
+\testutf
+}
+
+{\gtfamily
+{\ebseries%
+[gt/eb]
+
+\testglyph
+
+\testutf
+}}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upkanatest1.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upkanatest1.tex
new file mode 100644
index 00000000000..087bcbcece4
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upkanatest1.tex
@@ -0,0 +1,103 @@
+% -*- coding: utf-8 -*-
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000 \uptexmodetrue\fi
+
+\makeatletter
+
+\def\@opt@{deluxe}
+\ifx\class\@undefined
+ \ifuptexmode
+ \def\class{ujarticle}
+ \else
+ \def\class{jarticle}
+ \fi
+\fi
+
+\ifuptexmode
+ \edef\@opt@{uplatex,\@opt@}
+\fi
+\documentclass[a4paper,titlepage, draft]{\class}
+\usepackage[\@opt@]{otf}
+
+\makeatother
+
+\pagestyle{empty}
+%\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+\textwidth=115mm
+\textheight=210mm
+\begin{document}
+
+クラス:\texttt{\class}
+
+\vspace{\baselineskip}
+\huge
+\kanjiskip 0pt plus 1sp minus 1sp
+\xkanjiskip 0.25zw plus 1sp minus 1sp
+{\propshape
+\noindent ヽヾゝゞーぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+
+\bfseries
+\noindent ヽヾゝゞーぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+}
+
+{\gtfamily\mdseries\propshape
+\noindent ヽヾゝゞーぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+
+\bfseries\propshape
+\noindent ヽヾゝゞーぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+}
+
+{\mgfamily\propshape
+\noindent ヽヾゝゞーぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ}
+
+{\gtfamily\ebseries
+\noindent ヽヾゝゞーぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+}
+
+\ifuptexmode
+otfbeta-uptex (japanese-otf-uptex) Ver.0.18でProportional仮名を、
+Ver.0.21で半角片仮名を拡張しました。
+
+\long\def\testA{〃〆ヿゟゔゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿヷヸヹヺ
+𨳝櫛𥡴𨻶杓巽屠兔冕冤𡨚𤏐爨🄀
+🄐🄑🄒🄓🄔🄕🄖🄗🄘🄙🄚🄛🄜🄝🄞🄟🄠🄡🄢🄣
+🄤🄥🄦🄧🄨🄩🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝
+🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩🄰🄱🄲🄳🄴🄵🄶🄷
+🄸🄹🄺🄻🄼🄽🄾🄿🅀🅁🅂🅃🅄🅅🅆🅇🅈🅉🈂🈷
+🅰🅱🅲🅳🅴🅵🅶🅷🅸🅹🅺🅻🅼🅽🅾🅿🆀🆁🆂🆃
+🆄🆅🆆🆇🆈🆉眞𠤎𦥑𫟘沿芽槪割𦈢𠮷𩵋卿𫞎憲
+𠩤浩𫝆𫝷滋𠮟勺爵周将𠀋城𩙿真𠆢𫝑成𧾷𣳾炭
+𥫗彫潮𡈽冬𤴔姬𫞉諭輸𥙿𦚰𠘨𠂊𠦄卉寃拔𦦙𣏌
+杞𪧦𫞽絣𠔿𦉪𠂰𨦇𨸗𫠚𤋮桒𣲾𠘑嶲你𣘺𣏾𢘉
+。「」、・ヲァィゥェォャュョッ
+ーアイウエオカキクケコサシスセソ
+タチツテトナニヌネノハヒフヘホマ
+ミムメモヤユヨラリルレロワン゙゚
+}
+
+{\propshape
+\noindent\testA
+
+\bfseries
+\noindent\testA
+}
+
+{\gtfamily\mdseries\propshape
+\noindent\testA
+
+\bfseries\propshape
+\noindent\testA
+}
+
+{\mgfamily\propshape
+\noindent\testA
+}
+
+{\gtfamily\ebseries
+\noindent\testA
+}
+\fi
+
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upkanatest2.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upkanatest2.tex
new file mode 100644
index 00000000000..a0b9bfcb6e8
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/upkanatest2.tex
@@ -0,0 +1,75 @@
+% -*- coding: utf-8 -*-
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000 \uptexmodetrue\fi
+
+\makeatletter
+
+\def\@opt@{deluxe}
+\ifx\class\@undefined
+ \ifuptexmode
+ \def\class{ujarticle}
+ \else
+ \def\class{jarticle}
+ \fi
+\fi
+
+\ifuptexmode
+ \edef\@opt@{uplatex,\@opt@}
+\fi
+\documentclass[a4paper,draft,twocolumn]{\class}
+\usepackage[\@opt@]{otf}
+
+\makeatother
+\pagestyle{empty}
+%\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+\parindent=0zw
+\textwidth=25zw
+\textheight=200mm
+\columnsep=1zw
+\makeatletter
+\long\def\test{ひらかな「ひらかな」ひらかな「ひら」「かな」\par
+漢字漢字「漢字漢字」漢字漢字「漢字」「漢字」\par
+ひらかな「ひらかな」漢字漢字「漢字」ひらかな\par
+次は“引用符”の‘テスト’です,ね.\par
+行末の区点は全角ドリに。なります。
+□□□□□□□□□□□□
+□□□□、□□□、□□□。\par
+行末の読点は半角ドリに、なります。\par
+□□□□□□□□□□□□
+□□□□、□□□、□□□、□□□。□□□。\par
+疑問符の後に空白は入るでしょうか?入った!オッケイです.\par
+\hbox to 2.5zw{漢:字}
+\setbox1=\hbox{あ}
+\dimen1=\wd1 \advance\dimen1 by .5zw
+\advance\dimen1 by \wd1
+\hbox to \dimen1{あ:あ}
+\dimen1=\wd1 \advance\dimen1 by 1.75zw
+\hbox to \dimen1{漢:あ}
+%\hbox to \dimen1{漢\hfil あ}
+\hbox to 7zw{漢字「漢字」漢字}
+\setbox1=\hbox{ひら}
+\dimen1=\wd1 \multiply\dimen1 by 3
+\advance\dimen1 by 1zw
+\hbox to \dimen1{ひら「ひら」ひら}
+}
+\makeatother
+\begin{document}
+
+クラス:\texttt{\class}
+
+\vspace{\baselineskip}
+%\kanjiskip 0pt plus 1sp minus 1sp
+\begingroup
+\propshape
+{\bfseries プロポーショナル組の例}
+
+\test
+\endgroup
+\newpage
+\phantom{クラス}
+
+\vspace{\baselineskip}
+{\bfseries べた組みの例}
+
+\test
+\end{document}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/utfmacro-cjk.tex b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/utfmacro-cjk.tex
new file mode 100644
index 00000000000..0a48aec4a8b
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/utfmacro-cjk.tex
@@ -0,0 +1,344 @@
+% -*- coding: utf-8 -*-
+\newif\ifuptexmode\uptexmodefalse
+\ifnum\jis"2121="3000 \uptexmodetrue\fi
+
+\makeatletter
+
+\def\@opt@{multi}
+\def\@default{default}
+\def\@jarticle{jarticle}
+\def\@tarticle{tarticle}
+\def\@utarticle{utarticle}
+\def\@landscape@{}
+
+\ifx\option\@undefined
+ \def\option{default}
+\fi
+\ifx\option\@default
+\else
+ \edef\@opt@{\option,\@opt@}
+\fi
+
+\ifx\class\@undefined
+ \ifuptexmode
+ \def\class{ujarticle}
+ \else
+ \def\class{jarticle}
+ \fi
+\fi
+
+\def\baseshift{-.12zh}
+\ifx\class\@tarticle\def\baseshift{-.5zh}\def\@landscape@{,landscape}\fi
+\ifx\class\@utarticle\def\baseshift{-.5zh}\def\@landscape@{,landscape}\fi
+
+\ifuptexmode
+ \edef\@opt@{uplatex,\@opt@}
+\fi
+%\documentclass[a4paper,titlepage,draft]{\class}
+%\documentclass[a4paper,titlepage,draft,landscape]{\class}
+\documentclass[a4paper,titlepage,draft\@landscape@]{\class}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[\@opt@]{otf}
+
+\newif\ifdeluxemode\deluxemodefalse
+\if@deluxe\deluxemodetrue\fi
+
+\makeatother
+
+
+\textheight250mm
+\topmargin-15mm
+\begin{document}
+\parindent0mm
+クラス:\texttt{\class}\\
+オプション:\texttt{\option}
+
+\section{\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} こんにちは Einenschönen Tag}
+
+\begin{tabular}{cccc}
+日本 & 簡体字 & 繁體字 & 朝鮮\\\hline
+\UTF{9aa8}\UTF{6d77}\UTF{76f4}\UTF{8ff0} &
+\UTFC{9aa8}\UTFC{6d77}\UTFC{76f4}\UTFC{8ff0} &
+\UTFT{9aa8}\UTFT{6d77}\UTFT{76f4}\UTFT{8ff0} &
+\UTFK{9aa8}\UTFK{6d77}\UTFK{76f4}\UTFK{8ff0}
+\end{tabular}
+
+% Adobe-Japan, Adobe-GB, Adobe-CNS, Adobe-KoreaでU+007F..00FFかつfullwidthとなっているもの。
+\begin{tabular}{rl}
+J &
+\UTF{00a7}\UTF{00a8}\UTF{00b0}\UTF{00b1}\UTF{00b4}\UTF{00b6}\UTF{00d7}\UTF{00f7}\\
+C &
+\UTFC{00a4}\UTFC{00a7}\UTFC{00a8}\UTFC{00b0}\UTFC{00b1}\UTFC{00b7}\UTFC{00d7}\UTFC{00e0}\UTFC{00e1}\UTFC{00e8}\UTFC{00e9}\UTFC{00ea}\UTFC{00ec}\UTFC{00ed}\UTFC{00f2}\UTFC{00f3}\UTFC{00f7}\UTFC{00f9}\UTFC{00fa}\UTFC{00fc}\\
+T &
+\UTFT{00a5}\UTFT{00a7}\UTFT{00a8}\UTFT{00ac}\UTFT{00af}\UTFT{00b0}\UTFT{00b1}\UTFT{00b7}\UTFT{00c0}\UTFT{00c1}\UTFT{00c8}\UTFT{00c9}\UTFT{00ca}\UTFT{00d2}\UTFT{00d3}\UTFT{00d7}\UTFT{00e0}\UTFT{00e1}\UTFT{00e8}\UTFT{00e9}\UTFT{00ea}\UTFT{00ec}\UTFT{00ed}\UTFT{00f2}\UTFT{00f3}\UTFT{00f7}\UTFT{00f8}\UTFT{00f9}\UTFT{00fa}\UTFT{00fc}\\
+K &
+\UTFK{00a1}\UTFK{00a4}\UTFK{00a7}\UTFK{00a8}\UTFK{00aa}\UTFK{00ab}\UTFK{00b0}\UTFK{00b1}\UTFK{00b4}\UTFK{00b6}\UTFK{00b7}\UTFK{00b8}\UTFK{00b9}\UTFK{00ba}\UTFK{00bb}\UTFK{00bc}\UTFK{00bd}\UTFK{00be}\UTFK{00bf}\UTFK{00c6}\UTFK{00d0}\UTFK{00d7}\UTFK{00d8}\UTFK{00de}\UTFK{00df}\UTFK{00e6}\UTFK{00f0}\UTFK{00f7}\UTFK{00f8}\UTFK{00fe}
+\end{tabular}
+
+\subsection{\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} こんにちは Einenschönen Tag}
+
+\ifdeluxemode
+{\mcfamily\ltseries
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+\fi% \ifdeluxemode
+{\mcfamily
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+{\mcfamily\bfseries
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+{\gtfamily
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+{\gtfamily\bfseries
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+\ifdeluxemode
+{\gtfamily\ebseries
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+{\mgfamily
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+\fi% \ifdeluxemode
+
+\subsubsection{\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} こんにちは Einenschönen Tag}
+
+{\footnotesize
+\ifdeluxemode
+{\mcfamily\ltseries
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+\fi% \ifdeluxemode
+{\mcfamily
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+{\mcfamily\bfseries
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+{\gtfamily
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+{\gtfamily\bfseries
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+\ifdeluxemode
+{\gtfamily\ebseries
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+{\mgfamily
+\UTFC{4F60}\UTFC{597D} \UTFT{60A8}\UTFT{597D} \UTFK{C548}\UTFK{B155} %你好 您好 안녕
+こんにちは Einenschönen Tag\\
+}%
+\fi% \ifdeluxemode
+}
+
+\section{penalty}
+\edef\bs{$\backslash$\kern0em}
+
+\fbox{\parbox{4.7zw}{君の名は。}}~UTF8
+
+\fbox{\parbox{4.7zw}{君の名は\char\kuten"0103}}~\bs char\bs kuten
+
+\fbox{\parbox{4.7zw}{君の名は\UTF{3002}}}~\bs UTF\{\}
+
+\ifuptexmode
+\fbox{\parbox{4.7zw}{君の名は\kchar"3002}}~\bs kchar
+\fi
+
+
+\fbox{\parbox{4.7zw}{君の名は.}}~UTF8
+
+\fbox{\parbox{4.7zw}{君の名は\char\kuten"0105}}~\bs char\bs kuten
+
+\fbox{\parbox{4.7zw}{君の名は\UTF{FF0E}}}~\bs UTF\{\}
+
+\ifuptexmode
+\fbox{\parbox{4.7zw}{君の名は\kchar"FF0E}}~\bs kchar
+\fi
+
+
+\clearpage
+[mc/m]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+日本:\UTF{9aa8}\UTF{6d77}\UTF{76f4}\UTF{8ff0}~~簡体字:\UTFC{9aa8}\UTFC{6d77}\UTFC{76f4}\UTFC{8ff0}~~繁體字:\UTFT{9aa8}\UTFT{6d77}\UTFT{76f4}\UTFT{8ff0}~~朝鮮:\UTFK{9aa8}\UTFK{6d77}\UTFK{76f4}\UTFK{8ff0}\\
+\UTFC{4F60}\UTFC{597D}~~%你好
+\UTFT{4F60}\UTFT{597D}~~%你好
+\UTFK{C548}\UTFK{B155}%안녕
+
+{\bfseries%
+[mc/bx]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+日本:\UTF{9aa8}\UTF{6d77}\UTF{76f4}\UTF{8ff0}~~簡体字:\UTFC{9aa8}\UTFC{6d77}\UTFC{76f4}\UTFC{8ff0}~~繁體字:\UTFT{9aa8}\UTFT{6d77}\UTFT{76f4}\UTFT{8ff0}~~朝鮮:\UTFK{9aa8}\UTFK{6d77}\UTFK{76f4}\UTFK{8ff0}\\
+\UTFC{4F60}\UTFC{597D}~~%你好
+\UTFT{4F60}\UTFT{597D}~~%你好
+\UTFK{C548}\UTFK{B155}%안녕
+}
+
+
+\ifdeluxemode
+{\ltseries%
+[mc/l]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+日本:\UTF{9aa8}\UTF{6d77}\UTF{76f4}\UTF{8ff0}~~簡体字:\UTFC{9aa8}\UTFC{6d77}\UTFC{76f4}\UTFC{8ff0}~~繁體字:\UTFT{9aa8}\UTFT{6d77}\UTFT{76f4}\UTFT{8ff0}~~朝鮮:\UTFK{9aa8}\UTFK{6d77}\UTFK{76f4}\UTFK{8ff0}\\
+\UTFC{4F60}\UTFC{597D}~~%你好
+\UTFT{4F60}\UTFT{597D}~~%你好
+\UTFK{C548}\UTFK{B155}%안녕
+}
+\fi% \ifdeluxemode
+
+{\gtfamily
+[gt/m]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+日本:\UTF{9aa8}\UTF{6d77}\UTF{76f4}\UTF{8ff0}~~簡体字:\UTFC{9aa8}\UTFC{6d77}\UTFC{76f4}\UTFC{8ff0}~~繁體字:\UTFT{9aa8}\UTFT{6d77}\UTFT{76f4}\UTFT{8ff0}~~朝鮮:\UTFK{9aa8}\UTFK{6d77}\UTFK{76f4}\UTFK{8ff0}\\
+\UTFC{4F60}\UTFC{597D}~~%你好
+\UTFT{4F60}\UTFT{597D}~~%你好
+\UTFK{C548}\UTFK{B155}%안녕
+}
+
+{\gtfamily\bfseries%
+[gt/bx]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+日本:\UTF{9aa8}\UTF{6d77}\UTF{76f4}\UTF{8ff0}~~簡体字:\UTFC{9aa8}\UTFC{6d77}\UTFC{76f4}\UTFC{8ff0}~~繁體字:\UTFT{9aa8}\UTFT{6d77}\UTFT{76f4}\UTFT{8ff0}~~朝鮮:\UTFK{9aa8}\UTFK{6d77}\UTFK{76f4}\UTFK{8ff0}\\
+\UTFC{4F60}\UTFC{597D}~~%你好
+\UTFT{4F60}\UTFT{597D}~~%你好
+\UTFK{C548}\UTFK{B155}%안녕
+}
+
+\ifdeluxemode
+{\gtfamily\ebseries%
+[gt/eb]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+日本:\UTF{9aa8}\UTF{6d77}\UTF{76f4}\UTF{8ff0}~~簡体字:\UTFC{9aa8}\UTFC{6d77}\UTFC{76f4}\UTFC{8ff0}~~繁體字:\UTFT{9aa8}\UTFT{6d77}\UTFT{76f4}\UTFT{8ff0}~~朝鮮:\UTFK{9aa8}\UTFK{6d77}\UTFK{76f4}\UTFK{8ff0}\\
+\UTFC{4F60}\UTFC{597D}~~%你好
+\UTFT{4F60}\UTFT{597D}~~%你好
+\UTFK{C548}\UTFK{B155}%안녕
+}
+
+{\mgfamily
+[mg/m]
+
+ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのは
+ばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんヽヾゝゞー
+\ifuptexmode
+ゔゕゖ
+\fi
+
+ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハ
+バパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
+\ifuptexmode
+ヷヸヹヺㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ
+\fi
+
+“回”、‘回’。“回”,‘回’.
+
+日本:\UTF{9aa8}\UTF{6d77}\UTF{76f4}\UTF{8ff0}~~簡体字:\UTFC{9aa8}\UTFC{6d77}\UTFC{76f4}\UTFC{8ff0}~~繁體字:\UTFT{9aa8}\UTFT{6d77}\UTFT{76f4}\UTFT{8ff0}~~朝鮮:\UTFK{9aa8}\UTFK{6d77}\UTFK{76f4}\UTFK{8ff0}\\
+\UTFC{4F60}\UTFC{597D}~~%你好
+\UTFT{4F60}\UTFT{597D}~~%你好
+\UTFK{C548}\UTFK{B155}%안녕
+}
+\fi% \ifdeluxemode
+
+
+\end{document}
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/utfmacro-haranoaji.map b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/utfmacro-haranoaji.map
new file mode 100644
index 00000000000..732b35cf5a5
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/doc/test/uplatex/utfmacro-haranoaji.map
@@ -0,0 +1,220 @@
+hminr-h H HaranoAjiMincho-Regular.otf
+hminb-h H HaranoAjiMincho-Bold.otf
+hminl-h H HaranoAjiMincho-Light.otf
+hgothr-h H HaranoAjiGothic-Regular.otf
+hgothb-h H HaranoAjiGothic-Medium.otf
+hgotheb-h H HaranoAjiGothic-Bold.otf
+hmgothr-h H HaranoAjiGothic-Heavy.otf
+hminr-v V HaranoAjiMincho-Regular.otf
+hminb-v V HaranoAjiMincho-Bold.otf
+hminl-v V HaranoAjiMincho-Light.otf
+hgothr-v V HaranoAjiGothic-Regular.otf
+hgothb-v V HaranoAjiGothic-Medium.otf
+hgotheb-v V HaranoAjiGothic-Bold.otf
+hmgothr-v V HaranoAjiGothic-Heavy.otf
+
+hminrn-h H HaranoAjiMincho-Regular.otf
+hminbn-h H HaranoAjiMincho-Bold.otf
+hminln-h H HaranoAjiMincho-Light.otf
+hgothrn-h H HaranoAjiGothic-Regular.otf
+hgothbn-h H HaranoAjiGothic-Medium.otf
+hgothebn-h H HaranoAjiGothic-Bold.otf
+hmgothrn-h H HaranoAjiGothic-Heavy.otf
+hminrn-v V HaranoAjiMincho-Regular.otf
+hminbn-v V HaranoAjiMincho-Bold.otf
+hminln-v V HaranoAjiMincho-Light.otf
+hgothrn-v V HaranoAjiGothic-Regular.otf
+hgothbn-v V HaranoAjiGothic-Medium.otf
+hgothebn-v V HaranoAjiGothic-Bold.otf
+hmgothrn-v V HaranoAjiGothic-Heavy.otf
+
+uphminr-h UniJISup-UTF16-H HaranoAjiMincho-Regular.otf
+uphminb-h UniJISup-UTF16-H HaranoAjiMincho-Bold.otf
+uphminl-h UniJISup-UTF16-H HaranoAjiMincho-Light.otf
+uphgothr-h UniJISup-UTF16-H HaranoAjiGothic-Regular.otf
+uphgothb-h UniJISup-UTF16-H HaranoAjiGothic-Medium.otf
+uphgotheb-h UniJISup-UTF16-H HaranoAjiGothic-Bold.otf
+uphmgothr-h UniJISup-UTF16-H HaranoAjiGothic-Heavy.otf
+uphminr-v UniJISup-UTF16-V HaranoAjiMincho-Regular.otf
+uphminb-v UniJISup-UTF16-V HaranoAjiMincho-Bold.otf
+uphminl-v UniJISup-UTF16-V HaranoAjiMincho-Light.otf
+uphgothr-v UniJISup-UTF16-V HaranoAjiGothic-Regular.otf
+uphgothb-v UniJISup-UTF16-V HaranoAjiGothic-Medium.otf
+uphgotheb-v UniJISup-UTF16-V HaranoAjiGothic-Bold.otf
+uphmgothr-v UniJISup-UTF16-V HaranoAjiGothic-Heavy.otf
+
+uphminrn-h UniJIS2004up-UTF16-H HaranoAjiMincho-Regular.otf
+uphminbn-h UniJIS2004up-UTF16-H HaranoAjiMincho-Bold.otf
+uphminln-h UniJIS2004up-UTF16-H HaranoAjiMincho-Light.otf
+uphgothrn-h UniJIS2004up-UTF16-H HaranoAjiGothic-Regular.otf
+uphgothbn-h UniJIS2004up-UTF16-H HaranoAjiGothic-Medium.otf
+uphgothebn-h UniJIS2004up-UTF16-H HaranoAjiGothic-Bold.otf
+uphmgothrn-h UniJIS2004up-UTF16-H HaranoAjiGothic-Heavy.otf
+uphminrn-v UniJIS2004up-UTF16-V HaranoAjiMincho-Regular.otf
+uphminbn-v UniJIS2004up-UTF16-V HaranoAjiMincho-Bold.otf
+uphminln-v UniJIS2004up-UTF16-V HaranoAjiMincho-Light.otf
+uphgothrn-v UniJIS2004up-UTF16-V HaranoAjiGothic-Regular.otf
+uphgothbn-v UniJIS2004up-UTF16-V HaranoAjiGothic-Medium.otf
+uphgothebn-v UniJIS2004up-UTF16-V HaranoAjiGothic-Bold.otf
+uphmgothrn-v UniJIS2004up-UTF16-V HaranoAjiGothic-Heavy.otf
+
+otf-ujmr-h UniJISup-UTF16-H HaranoAjiMincho-Regular.otf
+otf-ujmb-h UniJISup-UTF16-H HaranoAjiMincho-Bold.otf
+otf-ujml-h UniJISup-UTF16-H HaranoAjiMincho-Light.otf
+otf-ujgr-h UniJISup-UTF16-H HaranoAjiGothic-Regular.otf
+otf-ujgb-h UniJISup-UTF16-H HaranoAjiGothic-Medium.otf
+otf-ujge-h UniJISup-UTF16-H HaranoAjiGothic-Bold.otf
+otf-ujmgr-h UniJISup-UTF16-H HaranoAjiGothic-Heavy.otf
+
+otf-ujmrn-h UniJIS2004up-UTF16-H HaranoAjiMincho-Regular.otf
+otf-ujmbn-h UniJIS2004up-UTF16-H HaranoAjiMincho-Bold.otf
+otf-ujmln-h UniJIS2004up-UTF16-H HaranoAjiMincho-Light.otf
+otf-ujgrn-h UniJIS2004up-UTF16-H HaranoAjiGothic-Regular.otf
+otf-ujgbn-h UniJIS2004up-UTF16-H HaranoAjiGothic-Medium.otf
+otf-ujgen-h UniJIS2004up-UTF16-H HaranoAjiGothic-Bold.otf
+otf-ujmgrn-h UniJIS2004up-UTF16-H HaranoAjiGothic-Heavy.otf
+
+otf-ucmr-h UniGB-UTF16-H HaranoAjiMinchoCN-Regular.otf
+otf-ucmb-h UniGB-UTF16-H HaranoAjiMinchoCN-Bold.otf
+otf-ucml-h UniGB-UTF16-H HaranoAjiMinchoCN-Light.otf
+otf-ucgr-h UniGB-UTF16-H HaranoAjiGothicCN-Regular.otf
+otf-ucgb-h UniGB-UTF16-H HaranoAjiGothicCN-Medium.otf
+otf-ucge-h UniGB-UTF16-H HaranoAjiGothicCN-Bold.otf
+otf-ucmgr-h UniGB-UTF16-H HaranoAjiGothicCN-Heavy.otf
+
+otf-utmr-h UniCNS-UTF16-H HaranoAjiMinchoTW-Regular.otf
+otf-utmb-h UniCNS-UTF16-H HaranoAjiMinchoTW-Bold.otf
+otf-utml-h UniCNS-UTF16-H HaranoAjiMinchoTW-Light.otf
+otf-utgr-h UniCNS-UTF16-H HaranoAjiGothicTW-Regular.otf
+otf-utgb-h UniCNS-UTF16-H HaranoAjiGothicTW-Medium.otf
+otf-utge-h UniCNS-UTF16-H HaranoAjiGothicTW-Bold.otf
+otf-utmgr-h UniCNS-UTF16-H HaranoAjiGothicTW-Heavy.otf
+
+otf-ukmr-h UniKS-UTF16-H HaranoAjiMinchoK1-Regular.otf
+otf-ukmb-h UniKS-UTF16-H HaranoAjiMinchoK1-Bold.otf
+otf-ukml-h UniKS-UTF16-H HaranoAjiMinchoK1-Light.otf
+otf-ukgr-h UniKS-UTF16-H HaranoAjiGothicK1-Regular.otf
+otf-ukgb-h UniKS-UTF16-H HaranoAjiGothicK1-Medium.otf
+otf-ukge-h UniKS-UTF16-H HaranoAjiGothicK1-Bold.otf
+otf-ukmgr-h UniKS-UTF16-H HaranoAjiGothicK1-Heavy.otf
+
+otf-ujmr-v UniJISup-UTF16-V HaranoAjiMincho-Regular.otf
+otf-ujmb-v UniJISup-UTF16-V HaranoAjiMincho-Bold.otf
+otf-ujml-v UniJISup-UTF16-V HaranoAjiMincho-Light.otf
+otf-ujgr-v UniJISup-UTF16-V HaranoAjiGothic-Regular.otf
+otf-ujgb-v UniJISup-UTF16-V HaranoAjiGothic-Medium.otf
+otf-ujge-v UniJISup-UTF16-V HaranoAjiGothic-Bold.otf
+otf-ujmgr-v UniJISup-UTF16-V HaranoAjiGothic-Heavy.otf
+
+otf-ujmrn-v UniJIS2004up-UTF16-V HaranoAjiMincho-Regular.otf
+otf-ujmbn-v UniJIS2004up-UTF16-V HaranoAjiMincho-Bold.otf
+otf-ujmln-v UniJIS2004up-UTF16-V HaranoAjiMincho-Light.otf
+otf-ujgrn-v UniJIS2004up-UTF16-V HaranoAjiGothic-Regular.otf
+otf-ujgbn-v UniJIS2004up-UTF16-V HaranoAjiGothic-Medium.otf
+otf-ujgen-v UniJIS2004up-UTF16-V HaranoAjiGothic-Bold.otf
+otf-ujmgrn-v UniJIS2004up-UTF16-V HaranoAjiGothic-Heavy.otf
+
+otf-ucmr-v UniGB-UTF16-V HaranoAjiMinchoCN-Regular.otf
+otf-ucmb-v UniGB-UTF16-V HaranoAjiMinchoCN-Bold.otf
+otf-ucml-v UniGB-UTF16-V HaranoAjiMinchoCN-Light.otf
+otf-ucgr-v UniGB-UTF16-V HaranoAjiGothicCN-Regular.otf
+otf-ucgb-v UniGB-UTF16-V HaranoAjiGothicCN-Medium.otf
+otf-ucge-v UniGB-UTF16-V HaranoAjiGothicCN-Bold.otf
+otf-ucmgr-v UniGB-UTF16-V HaranoAjiGothicCN-Heavy.otf
+
+otf-utmr-v UniCNS-UTF16-V HaranoAjiMinchoTW-Regular.otf
+otf-utmb-v UniCNS-UTF16-V HaranoAjiMinchoTW-Bold.otf
+otf-utml-v UniCNS-UTF16-V HaranoAjiMinchoTW-Light.otf
+otf-utgr-v UniCNS-UTF16-V HaranoAjiGothicTW-Regular.otf
+otf-utgb-v UniCNS-UTF16-V HaranoAjiGothicTW-Medium.otf
+otf-utge-v UniCNS-UTF16-V HaranoAjiGothicTW-Bold.otf
+otf-utmgr-v UniCNS-UTF16-V HaranoAjiGothicTW-Heavy.otf
+
+otf-ukmr-v UniKS-UTF16-V HaranoAjiMinchoK1-Regular.otf
+otf-ukmb-v UniKS-UTF16-V HaranoAjiMinchoK1-Bold.otf
+otf-ukml-v UniKS-UTF16-V HaranoAjiMinchoK1-Light.otf
+otf-ukgr-v UniKS-UTF16-V HaranoAjiGothicK1-Regular.otf
+otf-ukgb-v UniKS-UTF16-V HaranoAjiGothicK1-Medium.otf
+otf-ukge-v UniKS-UTF16-V HaranoAjiGothicK1-Bold.otf
+otf-ukmgr-v UniKS-UTF16-V HaranoAjiGothicK1-Heavy.otf
+
+otf-cjmr-h Identity-H HaranoAjiMincho-Regular.otf
+otf-cjmb-h Identity-H HaranoAjiMincho-Bold.otf
+otf-cjml-h Identity-H HaranoAjiMincho-Light.otf
+otf-cjgr-h Identity-H HaranoAjiGothic-Regular.otf
+otf-cjgb-h Identity-H HaranoAjiGothic-Medium.otf
+otf-cjge-h Identity-H HaranoAjiGothic-Bold.otf
+otf-cjmgr-h Identity-H HaranoAjiGothic-Heavy.otf
+
+otf-ccmr-h Identity-H HaranoAjiMinchoCN-Regular.otf
+otf-ccgr-h Identity-H HaranoAjiGothicCN-Regular.otf
+
+otf-ctmr-h Identity-H HaranoAjiMinchoTW-Regular.otf
+otf-ctgr-h Identity-H HaranoAjiGothicTW-Regular.otf
+
+otf-ckmr-h Identity-H HaranoAjiMinchoK1-Regular.otf
+otf-ckgr-h Identity-H HaranoAjiGothicK1-Regular.otf
+
+otf-cjmr-v Identity-V HaranoAjiMincho-Regular.otf
+otf-cjmb-v Identity-V HaranoAjiMincho-Bold.otf
+otf-cjml-v Identity-V HaranoAjiMincho-Light.otf
+otf-cjgr-v Identity-V HaranoAjiGothic-Regular.otf
+otf-cjgb-v Identity-V HaranoAjiGothic-Medium.otf
+otf-cjge-v Identity-V HaranoAjiGothic-Bold.otf
+otf-cjmgr-v Identity-V HaranoAjiGothic-Heavy.otf
+
+otf-ccmr-v Identity-V HaranoAjiMinchoCN-Regular.otf
+otf-ccgr-v Identity-V HaranoAjiGothicCN-Regular.otf
+
+otf-ctmr-v Identity-V HaranoAjiMinchoTW-Regular.otf
+otf-ctgr-v Identity-V HaranoAjiGothicTW-Regular.otf
+
+otf-ckmr-v Identity-V HaranoAjiMinchoK1-Regular.otf
+otf-ckgr-v Identity-V HaranoAjiGothicK1-Regular.otf
+
+
+upaschminr-h UniGB-UTF16-H HaranoAjiMinchoCN-Regular.otf
+upaschminb-h UniGB-UTF16-H HaranoAjiMinchoCN-Bold.otf
+upaschminl-h UniGB-UTF16-H HaranoAjiMinchoCN-Light.otf
+upaschgothr-h UniGB-UTF16-H HaranoAjiGothicCN-Regular.otf
+upaschgothb-h UniGB-UTF16-H HaranoAjiGothicCN-Medium.otf
+upaschgotheb-h UniGB-UTF16-H HaranoAjiGothicCN-Bold.otf
+upaschmgothr-h UniGB-UTF16-H HaranoAjiGothicCN-Heavy.otf
+upaschminr-v UniGB-UTF16-V HaranoAjiMinchoCN-Regular.otf
+upaschminb-v UniGB-UTF16-V HaranoAjiMinchoCN-Bold.otf
+upaschminl-v UniGB-UTF16-V HaranoAjiMinchoCN-Light.otf
+upaschgothr-v UniGB-UTF16-V HaranoAjiGothicCN-Regular.otf
+upaschgothb-v UniGB-UTF16-V HaranoAjiGothicCN-Medium.otf
+upaschgotheb-v UniGB-UTF16-V HaranoAjiGothicCN-Bold.otf
+upaschmgothr-v UniGB-UTF16-V HaranoAjiGothicCN-Heavy.otf
+
+upatchminr-h UniCNS-UTF16-H HaranoAjiMinchoTW-Regular.otf
+upatchminb-h UniCNS-UTF16-H HaranoAjiMinchoTW-Bold.otf
+upatchminl-h UniCNS-UTF16-H HaranoAjiMinchoTW-Light.otf
+upatchgothr-h UniCNS-UTF16-H HaranoAjiGothicTW-Regular.otf
+upatchgothb-h UniCNS-UTF16-H HaranoAjiGothicTW-Medium.otf
+upatchgotheb-h UniCNS-UTF16-H HaranoAjiGothicTW-Bold.otf
+upatchmgothr-h UniCNS-UTF16-H HaranoAjiGothicTW-Heavy.otf
+upatchminr-v UniCNS-UTF16-V HaranoAjiMinchoTW-Regular.otf
+upatchminb-v UniCNS-UTF16-V HaranoAjiMinchoTW-Bold.otf
+upatchminl-v UniCNS-UTF16-V HaranoAjiMinchoTW-Light.otf
+upatchgothr-v UniCNS-UTF16-V HaranoAjiGothicTW-Regular.otf
+upatchgothb-v UniCNS-UTF16-V HaranoAjiGothicTW-Medium.otf
+upatchgotheb-v UniCNS-UTF16-V HaranoAjiGothicTW-Bold.otf
+upatchmgothr-v UniCNS-UTF16-V HaranoAjiGothicTW-Heavy.otf
+
+upakorminr-h UniKS-UTF16-H HaranoAjiMinchoK1-Regular.otf
+upakorminb-h UniKS-UTF16-H HaranoAjiMinchoK1-Bold.otf
+upakorminl-h UniKS-UTF16-H HaranoAjiMinchoK1-Light.otf
+upakorgothr-h UniKS-UTF16-H HaranoAjiGothicK1-Regular.otf
+upakorgothb-h UniKS-UTF16-H HaranoAjiGothicK1-Medium.otf
+upakorgotheb-h UniKS-UTF16-H HaranoAjiGothicK1-Bold.otf
+upakormgothr-h UniKS-UTF16-H HaranoAjiGothicK1-Heavy.otf
+upakorminr-v UniKS-UTF16-V HaranoAjiMinchoK1-Regular.otf
+upakorminb-v UniKS-UTF16-V HaranoAjiMinchoK1-Bold.otf
+upakorminl-v UniKS-UTF16-V HaranoAjiMinchoK1-Light.otf
+upakorgothr-v UniKS-UTF16-V HaranoAjiGothicK1-Regular.otf
+upakorgothb-v UniKS-UTF16-V HaranoAjiGothicK1-Medium.otf
+upakorgotheb-v UniKS-UTF16-V HaranoAjiGothicK1-Bold.otf
+upakormgothr-v UniKS-UTF16-V HaranoAjiGothicK1-Heavy.otf
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base-h.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base-h.pl
new file mode 100644
index 00000000000..5a47ee0760d
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base-h.pl
@@ -0,0 +1,155 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (GLUE O 6 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 6 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (GLUE O 6 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ $B!F(B $B!H(B $B!J(B $B!L(B $B!N(B $B!P(B $B!R(B $B!T(B $B!V(B $B!X(B $B!Z(B
+ )
+(CHARSINTYPE O 2
+ $B!"(B $B!$(B $B!G(B $B!I(B $B!K(B $B!M(B $B!O(B $B!Q(B $B!S(B $B!U(B $B!W(B $B!Y(B $B![(B
+ )
+(CHARSINTYPE O 3
+ $B!&(B $B!'(B $B!((B
+ )
+(CHARSINTYPE O 4
+ $B!#(B $B!%(B
+ )
+(CHARSINTYPE O 5
+ $B!=(B $B!D(B $B!E(B
+ )
+(CHARSINTYPE O 6
+ $B!)(B $B!*(B
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (GLUE O 6 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 6 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (GLUE O 6 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base-v.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base-v.pl
new file mode 100644
index 00000000000..5d9ce14dc39
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base-v.pl
@@ -0,0 +1,150 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(DIRECTION TATE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ $B!F(B $B!H(B $B!J(B $B!L(B $B!N(B $B!P(B $B!R(B $B!T(B $B!V(B $B!X(B $B!Z(B
+ )
+(CHARSINTYPE O 2
+ $B!"(B $B!$(B $B!G(B $B!I(B $B!K(B $B!M(B $B!O(B $B!Q(B $B!S(B $B!U(B $B!W(B $B!Y(B $B![(B
+ )
+(CHARSINTYPE O 3
+ $B!&(B $B!'(B $B!((B
+ )
+(CHARSINTYPE O 4
+ $B!#(B $B!%(B
+ )
+(CHARSINTYPE O 5
+ $B!=(B $B!D(B $B!E(B
+ )
+(CHARSINTYPE O 6
+ $B!)(B $B!*(B
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base0-h.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base0-h.pl
new file mode 100644
index 00000000000..6362d410281
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base0-h.pl
@@ -0,0 +1,30 @@
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(CHARSINTYPE O 1
+ $B3W(B $B3X(B $B3Y(B $B3Z(B $B3[(B $B3\(B $B3](B $B3^(B $B3_(B $B3`(B $B3a(B $B3b(B $B3c(B $B3d(B $B3e(B $B3f(B $B3g(B $B3h(B $B3i(B $B3j(B $B3k(B $B3l(B $B3m(B $B3n(B $B3o(B $B3p(B $B3q(B $B3r(B $B3s(B $B3t(B $B3u(B $B3v(B $B3w(B $B3x(B $B3y(B $B3z(B $B3{(B $B3|(B $B3}(B $B3~(B $B4!(B $B4"(B $B4#(B $B4$(B $B4%(B $B4&(B $B4'(B $B4((B $B4)(B $B4*(B $B4+(B $B4,(B $B4-(B $B4.(B $B4/(B $B40(B $B41(B $B42(B $B43(B $B44(B $B45(B $B46(B $B47(B $B48(B $B49(B $B4:(B $B4;(B $B4<(B $B4=(B $B4>(B $B4?(B $B4@(B $B4A(B $B4B(B $B4C(B $B4D(B $B4E(B $B4F(B $B4G(B $B4H(B $B4I(B $B4J(B $B4K(B $B4L(B $B4M(B $B4N(B $B4O(B $B4P(B $B4Q(B $B4R(B $B4S(B $B4T(B $B4U(B $B4V(B $B4W(B $B4X(B $B4Y(B $B4Z(B $B4[(B $B4\(B $B4](B $B4^(B $B4_(B $B4`(B $B4a(B $B4b(B $B4c(B $B4d(B $B4e(B $B4f(B $B4g(B $B4h(B $B4i(B $B4j(B $B4k(B $B4l(B $B4m(B $B4n(B $B4o(B $B4p(B $B4q(B $B4r(B $B4s(B $B4t(B $B4u(B $B4v(B $B4w(B $B4x(B $B4y(B $B4z(B $B4{(B $B4|(B $B4}(B $B4~(B $B5!(B $B5"(B $B5#(B $B5$(B $B5%(B $B5&(B $B5'(B $B5((B $B5)(B $B5*(B $B5+(B $B5,(B $B5-(B $B5.(B $B5/(B $B50(B $B51(B $B52(B $B53(B $B54(B $B55(B $B56(B $B57(B $B58(B $B59(B $B5:(B $B5;(B $B5<(B $B5=(B $B5>(B $B5?(B $B5@(B $B5A(B $B5B(B $B5C(B $B5D(B $B5E(B $B5F(B $B5G(B $B5H(B $B5I(B $B5J(B $B5K(B $B5L(B $B5M(B $B5N(B $B5O(B $B5P(B $B5Q(B $B5R(B $B5S(B $B5T(B $B5U(B $B5V(B $B5W(B $B5X(B $B5Y(B $B5Z(B $B5[(B $B5\(B $B5](B $B5^(B $B5_(B $B5`(B $B5a(B $B5b(B $B5c(B $B5d(B $B5e(B $B5f(B $B5g(B $B5h(B $B5i(B $B5j(B $B5k(B $B5l(B $B5m(B $B5n(B $B5o(B $B5p(B $B5q(B $B5r(B $B5s(B $B5t(B $B5u(B $B5v(B $B5w(B $B5x(B $B5y(B $B5z(B $B5{(B $B5|(B $B5}(B $B5~(B $B6!(B $B6"(B $B6#(B $B6$(B $B6%(B $B6&(B $B6'(B $B6((B $B6)(B $B6*(B $B6+(B $B6,(B $B6-(B $B6.(B $B6/(B $B60(B $B61(B $B62(B $B63(B $B64(B $B65(B $B66(B $B67(B $B68(B $B69(B $B6:(B $B6;(B $B6<(B $B6=(B $B6>(B $B6?(B $B6@(B $B6A(B $B6B(B $B6C(B $B6D(B $B6E(B $B6F(B $B6G(B $B6H(B $B6I(B $B6J(B $B6K(B $B6L(B $B6M(B $B6N(B $B6O(B $B6P(B $B6Q(B $B6R(B $B6S(B $B6T(B $B6U(B $B6V(B $B6W(B $B6X(B $B6Y(B $B6Z(B $B6[(B $B6\(B $B6](B $B6^(B $B6_(B $B6`(B $B6a(B $B6b(B $B6c(B $B6d(B $B6e(B $B6f(B $B6g(B $B6h(B $B6i(B $B6j(B $B6k(B $B6l(B $B6m(B $B6n(B $B6o(B $B6p(B $B6q(B $B6r(B $B6s(B $B6t(B $B6u(B $B6v(B $B6w(B $B6x(B $B6y(B $B6z(B $B6{(B $B6|(B $B6}(B $B6~(B $B7!(B $B7"(B $B7#(B $B7$(B $B7%(B $B7&(B $B7'(B $B7((B $B7)(B $B7*(B $B7+(B $B7,(B $B7-(B $B7.(B $B7/(B $B70(B $B71(B $B72(B $B73(B $B74(B $B75(B $B76(B $B77(B $B78(B $B79(B $B7:(B $B7;(B $B7<(B $B7=(B $B7>(B $B7?(B $B7@(B $B7A(B $B7B(B $B7C(B $B7D(B $B7E(B $B7F(B $B7G(B $B7H(B $B7I(B $B7J(B $B7K(B $B7L(B $B7M(B $B7N(B $B7O(B $B7P(B $B7Q(B $B7R(B $B7S(B $B7T(B $B7U(B $B7V(B $B7W(B $B7X(B $B7Y(B $B7Z(B $B7[(B $B7\(B $B7](B $B7^(B $B7_(B $B7`(B $B7a(B $B7b(B $B7c(B $B7d(B $B7e(B $B7f(B $B7g(B $B7h(B $B7i(B $B7j(B $B7k(B $B7l(B $B7m(B $B7n(B $B7o(B $B7p(B $B7q(B $B7r(B $B7s(B $B7t(B $B7u(B $B7v(B $B7w(B $B7x(B $B7y(B $B7z(B $B7{(B $B7|(B $B7}(B $B7~(B $B8!(B $B8"(B $B8#(B $B8$(B $B8%(B $B8&(B $B8'(B $B8((B $B8)(B $B8*(B $B8+(B $B8,(B $B8-(B $B8.(B $B8/(B $B80(B $B81(B $B82(B $B83(B $B84(B $B85(B $B86(B $B87(B $B88(B $B89(B $B8:(B $B8;(B $B8<(B $B8=(B $B8>(B $B8?(B $B8@(B $B8A(B $B8B(B $B8C(B $B8D(B $B8E(B $B8F(B $B8G(B $B8H(B $B8I(B $B8J(B $B8K(B $B8L(B $B8M(B $B8N(B $B8O(B $B8P(B $B8Q(B $B8R(B $B8S(B $B8T(B $B8U(B $B8V(B $B8W(B $B8X(B $B8Y(B $B8Z(B $B8[(B $B8\(B $B8](B $B8^(B $B8_(B $B8`(B $B8a(B $B8b(B $B8c(B $B8d(B $B8e(B $B8f(B $B8g(B $B8h(B $B8i(B $B8j(B $B8k(B $B8l(B $B8m(B $B8n(B $B8o(B $B8p(B $B8q(B $B8r(B $B8s(B $B8t(B $B8u(B $B8v(B $B8w(B $B8x(B $B8y(B $B8z(B $B8{(B $B8|(B $B8}(B $B8~(B $B9!(B $B9"(B $B9#(B $B9$(B $B9%(B $B9&(B $B9'(B $B9((B $B9)(B $B9*(B $B9+(B $B9,(B $B9-(B $B9.(B $B9/(B $B90(B $B91(B $B92(B $B93(B $B94(B $B95(B $B96(B $B97(B $B98(B $B99(B $B9:(B $B9;(B $B9<(B $B9=(B $B9>(B $B9?(B $B9@(B $B9A(B $B9B(B $B9C(B $B9D(B $B9E(B $B9F(B $B9G(B $B9H(B $B9I(B $B9J(B $B9K(B $B9L(B $B9M(B $B9N(B $B9O(B $B9P(B $B9Q(B $B9R(B $B9S(B $B9T(B $B9U(B $B9V(B $B9W(B $B9X(B $B9Y(B $B9Z(B $B9[(B $B9\(B $B9](B $B9^(B $B9_(B $B9`(B $B9a(B $B9b(B $B9c(B $B9d(B $B9e(B $B9f(B $B9g(B $B9h(B
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base2-h.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base2-h.pl
new file mode 100644
index 00000000000..e5352fe7c56
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base2-h.pl
@@ -0,0 +1,47 @@
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(CHARSINTYPE O 1
+ $B8>(B $B8?(B $BlO(B $BlP(B $BlQ(B $BlR(B $BlS(B $BlT(B $BlU(B $BlV(B $BlW(B $BlX(B $BlY(B $BlZ(B $Bl[(B $Bl\(B $Bl](B $Bl^(B $Bl_(B $Bl`(B $Bla(B $Blb(B $Blc(B $Bld(B $Ble(B $Blf(B $Blg(B
+ )
+(CHARSINTYPE O 2
+ $BH:(B $BH;(B $BH<(B $BH=(B $BH>(B $BH?(B $BH@(B $BHA(B $BHB(B $BHC(B $BHD(B $BHE(B $BHF(B $BHG(B $BHH(B $BHI(B $BHJ(B $BHK(B $BHL(B $BHM(B
+ )
+(CHARSINTYPE O 3
+ $BHN(B $BHO(B $BHP(B $BHQ(B $BHR(B $BHS(B $BHT(B $BHU(B $BHV(B $BHW(B $BHX(B $BHY(B $BHZ(B $BH[(B $BH\(B $BH](B $BH^(B $BH_(B $BH`(B $BHa(B $BHb(B
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 2
+ (CHARWD R 0.25)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 3
+ (CHARWD R 0.333333)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+ \ No newline at end of file
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base2-v.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base2-v.pl
new file mode 100644
index 00000000000..46b9b974c9d
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base2-v.pl
@@ -0,0 +1,31 @@
+(DIRECTION TATE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(CHARSINTYPE O 1
+ $B;f(B $B;g(B $B;h(B $B;i(B $B;j(B $B;k(B $B;l(B $B;m(B $B;n(B $B;o(B $B;p(B $B;q(B $B;r(B $B;s(B $B;t(B $B;u(B $B;v(B $B;w(B $B;x(B $B;y(B $B;z(B $B;{(B $B;|(B $B;}(B $B;~(B $B<!(B $B<"(B $B<#(B $B<$(B $B<%(B $B<&(B $B<'(B $B<((B $B<)(B $B<*(B $B<+(B $B<,(B $B<-(B $B<.(B $B</(B $B<0(B $B<1(B $B<2(B $B<3(B $B<4(B $B<5(B $B<6(B $B<7(B $B<8(B $B<9(B $B<:(B $B<;(B $B<<(B $B<=(B $B<>(B $B<?(B $B<@(B $B<A(B $B<B(B $B<C(B $B<D(B $B<E(B $B<F(B $B<G(B $B<H(B $B<I(B $B<J(B $B<K(B $B<L(B $B<M(B $B<N(B $B<O(B $B<P(B $B<Q(B $B<R(B $B<S(B $B<T(B $B<U(B $B<V(B $B<W(B $B<X(B $B<Y(B $B<Z(B $B<[(B $B<\(B $B<](B $B<^(B $B<_(B $B<`(B $B<a(B $B<b(B $B<c(B $B<d(B $B<e(B $B<f(B $B<g(B $B<h(B $B<i(B $B<j(B $B<k(B $B<l(B $B<m(B $B<n(B $B<o(B $B<p(B $B<q(B $B<r(B $B<s(B $B<t(B $B<u(B $B<v(B $B<w(B $B<x(B $B<y(B $B<z(B $B<{(B $B<|(B $B<}(B $B<~(B $B=!(B $B="(B $B=#(B $B=$(B $B=%(B $B=&(B $B='(B $B=((B $B=)(B $B=*(B $B=+(B $B=,(B $B=-(B $B=.(B $B=/(B $B=0(B $B=1(B $B=2(B $B=3(B $B=4(B $B=5(B $B=6(B $B=7(B $B=8(B $B=9(B $B=:(B $B=;(B $B=<(B $B==(B $B=>(B $B=?(B $B=@(B $B=A(B $B=B(B $B=C(B $B=D(B $B=E(B $B=F(B $B=G(B $B=H(B $B=I(B $B=J(B $B=K(B $B=L(B $B=M(B $B=N(B $B=O(B $B=P(B $B=Q(B $B=R(B $B=S(B $B=T(B $B=U(B $B=V(B $B=W(B $B=X(B $B=Y(B $B=Z(B $B=[(B $B=\(B $B=](B $B=^(B $B=_(B $B=`(B $B=a(B $B=b(B $B=c(B $B=d(B $B=e(B $B=f(B $B=g(B $B=h(B $B=i(B $B=j(B $B=k(B $B=l(B $B=m(B $B=n(B $B=o(B $B=p(B $B=q(B $B=r(B $B=s(B $B=t(B $B=u(B $B=v(B $B=w(B $B=x(B $B=y(B $B=z(B $B={(B $B=|(B $B=}(B $B=~(B $B>!(B $B>"(B $B>#(B $B>$(B $B>%(B $B>&(B $B>'(B $B>((B $B>)(B $B>*(B $B>+(B $B>,(B $B>-(B $B>.(B $B>/(B $B>0(B $B>1(B $B>2(B $B>3(B $B>4(B $B>5(B $B>6(B $B>7(B $B>8(B $B>9(B $B>:(B $B>;(B $B><(B $B>=(B $B>>(B $B>?(B $B>@(B $B>A(B $B>B(B $B>C(B $B>D(B $B>E(B $B>F(B $B>G(B $B>H(B $B>I(B $B>J(B $B>K(B $B>L(B $B>M(B $B>N(B $B>O(B $B>P(B $B>Q(B $B>R(B $B>S(B $B>T(B $B>U(B $B>V(B $B>W(B $B>X(B $B>Y(B $B>Z(B $B>[(B $B>\(B $B>](B $B>^(B $B>_(B $B>`(B $B>a(B $B>b(B $B>c(B $B>d(B $B>e(B $B>f(B $B>g(B $B>h(B $B>i(B $B>j(B $B>k(B $B>l(B $B>m(B $B>n(B $B>o(B $B>p(B $B>q(B $B>r(B $B>s(B $B>t(B $B>u(B $B>v(B $B>w(B $B>x(B $B>y(B $B>z(B $B>{(B $B>|(B $B>}(B $B>~(B $B?!(B $B?"(B $B?#(B $B?$(B $B?%(B $B?&(B $B?'(B $B?((B $B?)(B $B?*(B $B?+(B $B?,(B $B?-(B $B?.(B $B?/(B $B?0(B $B?1(B $B?2(B $B?3(B $B?4(B $B?5(B $B?6(B $B?7(B $B?8(B $B?9(B $B?:(B $B?;(B $B?<(B $B?=(B $B?>(B $B??(B $B?@(B $B?A(B $B?B(B $B?C(B $B?D(B $B?E(B $B?F(B $B?G(B $B?H(B $B?I(B $B?J(B $B?K(B $B?L(B $B?M(B $B?N(B $B?O(B $B?P(B $B?Q(B $B?R(B $B?S(B $B?T(B $B?U(B $B?V(B $B?W(B $B?X(B $B?Y(B $B?Z(B $B?[(B $B?\(B $B?](B $B?^(B $B?_(B $B?`(B $B?a(B $B?b(B $B?c(B $B?d(B $B?e(B $B?f(B $B?g(B $B?h(B $B?i(B $B?j(B $B?k(B $B?l(B $B?m(B $B?n(B $B?o(B $B?p(B $B?q(B $B?r(B $B?s(B $B?t(B $B?u(B $B?v(B $B?w(B $B?x(B $B?y(B $B?z(B $B?{(B $B?|(B $B?}(B $B?~(B $B@!(B $B@"(B $B@#(B $B@$(B $B@%(B $B@&(B $B@'(B $B@((B $B@)(B $B@*(B $B@+(B $B@,(B $B@-(B $B@.(B $B@/(B $B@0(B $B@1(B $B@2(B $B@3(B $B@4(B $B@5(B $B@6(B $B@7(B $B@8(B $B@9(B $B@:(B $B@;(B $B@<(B $B@=(B $B@>(B $B@?(B $B@@(B $B@A(B $B@B(B $B@C(B $B@D(B $B@E(B $B@F(B $B@G(B $B@H(B $B@I(B $B@J(B $B@K(B $B@L(B $B@M(B $B@N(B $B@O(B $B@P(B $B@Q(B $B@R(B $B@S(B $B@T(B $B@U(B $B@V(B $B@W(B $B@X(B $B@Y(B $B@Z(B $B@[(B $B@\(B $B@](B $B@^(B $B@_(B $B@`(B $B@a(B $B@b(B $B@c(B $B@d(B $B@e(B $B@f(B $B@g(B $B@h(B $B@i(B $B@j(B $B@k(B $B@l(B $B@m(B $B@n(B $B@o(B $B@p(B $B@q(B $B@r(B $B@s(B $B@t(B $B@u(B $B@v(B $B@w(B $B@x(B $B@y(B $B@z(B $B@{(B $B@|(B $B@}(B $B@~(B $BA!(B $BA"(B $BA#(B $BA$(B $BA%(B $BA&(B $BA'(B $BA((B $BA)(B $BA*(B $BA+(B $BA,(B $BA-(B $BA.(B $BA/(B $BA0(B $BA1(B $BA2(B $BA3(B $BA4(B $BA5(B $BA6(B $BA7(B $BA8(B $BA9(B $BA:(B $BA;(B $BA<(B $BA=(B $BA>(B $BA?(B $BA@(B $BAA(B $BAB(B $BAC(B $BAD(B $BAE(B $BAF(B $BAG(B $BAH(B $BAI(B $BAJ(B $BAK(B $BAL(B $BAM(B $BAN(B $BAO(B $BAP(B $BAQ(B $BAR(B $BAS(B $BAT(B $BAU(B $BAV(B $BAW(B $BAX(B $BAY(B $BAZ(B $BA[(B $BA\(B $BA](B $BA^(B $BA_(B $BA`(B $BAa(B $BAb(B $BAc(B $BAd(B $BAe(B $BAf(B $BAg(B $BAh(B $BAi(B $BAj(B $BAk(B $BAl(B $BAm(B $BAn(B $BAo(B $BAp(B $BAq(B $BAr(B $BAs(B $BAt(B $BAu(B $BAv(B $BAw(B $BAx(B $BAy(B $BAz(B $BA{(B $BA|(B $BA}(B $BA~(B $BB!(B $BB"(B $BB#(B $BB$(B $BB%(B $BB&(B $BB'(B $BB((B $BB)(B $BB*(B $BB+(B $BB,(B $BB-(B $BB.(B $BB/(B $BB0(B $BB1(B $BB2(B $BB3(B $BB4(B $BB5(B $BB6(B $BB7(B $BB8(B $BB9(B $BO9(B $BO:(B $BO;(B $BO<(B $BO=(B $BO>(B $BO?(B $BO@(B $BOA(B $BOB(B $BOC(B
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base3-v.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base3-v.pl
new file mode 100644
index 00000000000..3f79fbf01d5
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/base3-v.pl
@@ -0,0 +1,47 @@
+(DIRECTION TATE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(CHARSINTYPE O 1
+ $B?_(B $B?`(B $B?a(B $B?b(B $B?c(B $B?d(B $B?e(B $B?f(B $B?g(B $B?h(B $B?i(B $B?j(B $B?k(B $B?l(B $B?m(B $B?n(B $B?o(B $B?p(B $B?q(B $B?r(B $B?s(B $B?t(B $B?u(B $B?v(B $B?w(B $B?x(B $B?y(B $B?z(B $B?{(B $B?|(B $B?}(B $B?~(B $B@!(B $B@"(B $B@#(B $B@$(B $B@%(B $B@&(B $B@'(B $B@((B $B@)(B $B@*(B $B@+(B $B@,(B $B@-(B $B@.(B $B@/(B $B@0(B $B@1(B
+ )
+(CHARSINTYPE O 2
+ $B?6(B $B?7(B $B?8(B $B?9(B $B?:(B $B?;(B $B?<(B $B?=(B $B?>(B $B??(B $B?@(B $B?A(B $B?B(B $B?C(B $B?D(B $B?E(B $B?F(B $B?G(B $B?H(B $B?I(B
+ )
+(CHARSINTYPE O 3
+ $B?J(B $B?K(B $B?L(B $B?M(B $B?N(B $B?O(B $B?P(B $B?Q(B $B?R(B $B?S(B $B?T(B $B?U(B $B?V(B $B?W(B $B?X(B $B?Y(B $B?Z(B $B?[(B $B?\(B $B?](B $B?^(B
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 2
+ (CHARWD R 0.25)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 3
+ (CHARWD R 0.333333)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/brsg-h.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/brsg-h.pl
new file mode 100644
index 00000000000..bddf82c58c0
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/brsg-h.pl
@@ -0,0 +1,137 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (GLUE O 6 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 6 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 1.0 R 0.0 R 0.0)
+ (GLUE O 1 R 1.0 R 0.0 R 0.0)
+ (GLUE O 2 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 1.25 R 0.0 R 0.75)
+ (GLUE O 4 R 1.0 R 0.0 R 0.5)
+ (GLUE O 5 R 1.0 R 0.0 R 0.0)
+ (GLUE O 6 R 1.0 R 0.0 R 0.0)
+ (GLUE O 7 R 1.0 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 7)
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 1.0 R 0.0 R 0.5)
+ (GLUE O 2 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 1.25 R 0.0 R 0.75)
+ (GLUE O 4 R 1.0 R 0.0 R 0.5)
+ (GLUE O 5 R 1.0 R 0.0 R 0.5)
+ (GLUE O 6 R 1.0 R 0.0 R 0.5)
+ (GLUE O 7 R 1.0 R 0.0 R 0.5)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ $B!F(B $B!H(B $B!J(B $B!L(B $B!N(B $B!P(B $B!R(B $B!T(B $B!V(B $B!X(B $B!Z(B
+ )
+(CHARSINTYPE O 2
+ $B!G(B $B!I(B $B!K(B $B!M(B $B!O(B $B!Q(B $B!S(B $B!U(B $B!W(B $B!Y(B $B![(B
+ )
+(CHARSINTYPE O 3
+ $B!&(B $B!'(B $B!((B
+ )
+(CHARSINTYPE O 4
+ $B!#(B $B!%(B
+ )
+(CHARSINTYPE O 5
+ $B!=(B $B!D(B $B!E(B
+ )
+(CHARSINTYPE O 6
+ $B!)(B $B!*(B
+ )
+(CHARSINTYPE O 7
+ $B!"(B $B!$(B
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 4
+ (CHARWD R 0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 7
+ (CHARWD R 0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/brsg-v.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/brsg-v.pl
new file mode 100644
index 00000000000..a92ac79362e
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/brsg-v.pl
@@ -0,0 +1,136 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(DIRECTION TATE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 1.0 R 0.0 R 0.0)
+ (GLUE O 1 R 1.0 R 0.0 R 0.0)
+ (GLUE O 2 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 1.25 R 0.0 R 0.75)
+ (GLUE O 4 R 1.0 R 0.0 R 0.5)
+ (GLUE O 5 R 1.0 R 0.0 R 0.0)
+ (GLUE O 6 R 1.0 R 0.0 R 0.0)
+ (GLUE O 7 R 1.0 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 7)
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 1.0 R 0.0 R 0.5)
+ (GLUE O 2 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 1.25 R 0.0 R 0.75)
+ (GLUE O 4 R 1.0 R 0.0 R 0.5)
+ (GLUE O 5 R 1.0 R 0.0 R 0.5)
+ (GLUE O 6 R 1.0 R 0.0 R 0.5)
+ (GLUE O 7 R 1.0 R 0.0 R 0.5)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ $B!F(B $B!H(B $B!J(B $B!L(B $B!N(B $B!P(B $B!R(B $B!T(B $B!V(B $B!X(B $B!Z(B
+ )
+(CHARSINTYPE O 2
+ $B!G(B $B!I(B $B!K(B $B!M(B $B!O(B $B!Q(B $B!S(B $B!U(B $B!W(B $B!Y(B $B![(B
+ )
+(CHARSINTYPE O 3
+ $B!&(B $B!'(B $B!((B
+ )
+(CHARSINTYPE O 4
+ $B!#(B $B!%(B
+ )
+(CHARSINTYPE O 5
+ $B!=(B $B!D(B $B!E(B
+ )
+(CHARSINTYPE O 6
+ $B!)(B $B!*(B
+ )
+(CHARSINTYPE O 7
+ $B!"(B $B!$(B
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 4
+ (CHARWD R 0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 7
+ (CHARWD R 0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmkor-slim.cnf b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmkor-slim.cnf
new file mode 100644
index 00000000000..d4b6fdc34e7
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmkor-slim.cnf
@@ -0,0 +1,11 @@
+% makejvf settings for upnmkor* in japanese-otf-uptex
+% based on Blocks-14.0.0.txt (Date: 2021-01-22, 23:29:00 GMT [KW])
+
+CHARSET %
++ 0080..00FF,% Latin-1 Supplement
++ 2000..206F,% General Punctuation
++ 2300..23FF,% Miscellaneous Technical
++ 3000..303F,% CJK Symbols and Punctuation
+%+ 4E00..9FFF,% CJK Unified Ideographs
+%+ AC00..D7AF,% Hangul Syllables
++ FF00..FFEF,% Halfwidth and Fullwidth Forms
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmkor.cnf b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmkor.cnf
new file mode 100644
index 00000000000..dc747b460d8
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmkor.cnf
@@ -0,0 +1,38 @@
+% makejvf settings for upnmkor* in japanese-otf-uptex
+% based on Blocks-14.0.0.txt (Date: 2021-01-22, 23:29:00 GMT [KW])
+% and Adobe-Korea1-2/cid2code.txt (Version 01/31/2012)
+
+CHARSET %
++ 0000..007F,% Basic Latin
++ 0080..00FF,% Latin-1 Supplement
++ 0100..017F,% Latin Extended-A
++ 02B0..02FF,% Spacing Modifier Letters
++ 0370..03FF,% Greek and Coptic
++ 0400..04FF,% Cyrillic
++ 1100..11FF,% Hangul Jamo
++ 2000..206F,% General Punctuation
++ 2070..209F,% Superscripts and Subscripts
++ 20A0..20CF,% Currency Symbols
++ 2100..214F,% Letterlike Symbols
++ 2150..218F,% Number Forms
++ 2190..21FF,% Arrows
++ 2200..22FF,% Mathematical Operators
++ 2300..23FF,% Miscellaneous Technical
++ 2460..24FF,% Enclosed Alphanumerics
++ 2500..257F,% Box Drawing
++ 2580..259F,% Block Elements
++ 25A0..25FF,% Geometric Shapes
++ 2600..26FF,% Miscellaneous Symbols
++ 2700..27BF,% Dingbats
++ 2F00..2FDF,% Kangxi Radicals
++ 3000..303F,% CJK Symbols and Punctuation
++ 3040..309F,% Hiragana
++ 30A0..30FF,% Katakana
++ 3130..318F,% Hangul Compatibility Jamo
++ 3200..32FF,% Enclosed CJK Letters and Months
++ 3300..33FF,% CJK Compatibility
++ 4E00..9FFF,% CJK Unified Ideographs
++ AC00..D7AF,% Hangul Syllables
++ E000..F8FF,% Private Use Area
++ F900..FAFF,% CJK Compatibility Ideographs
++ FF00..FFEF,% Halfwidth and Fullwidth Forms
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmsch-slim.cnf b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmsch-slim.cnf
new file mode 100644
index 00000000000..afa0f8ed60d
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmsch-slim.cnf
@@ -0,0 +1,11 @@
+% makejvf settings for upnmtch* in japanese-otf-uptex
+% based on Blocks-14.0.0.txt (Date: 2021-01-22, 23:29:00 GMT [KW])
+
+CHARSET %
++ 0080..00FF,% Latin-1 Supplement
++ 2000..206F,% General Punctuation
++ 2300..23FF,% Miscellaneous Technical
++ 3000..303F,% CJK Symbols and Punctuation
+%+ 4E00..9FFF,% CJK Unified Ideographs
++ FE50..FE6F,% Small Form Variants
++ FF00..FFEF,% Halfwidth and Fullwidth Forms
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmsch.cnf b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmsch.cnf
new file mode 100644
index 00000000000..96d02b25496
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmsch.cnf
@@ -0,0 +1,46 @@
+% makejvf settings for upnmtch* in japanese-otf-uptex
+% based on Blocks-14.0.0.txt (Date: 2021-01-22, 23:29:00 GMT [KW])
+% and Adobe-GB1-5/cid2code.txt (Version 12/05/2017)
+
+CHARSET %
++ 0000..007F,% Basic Latin
++ 0080..00FF,% Latin-1 Supplement
++ 0100..017F,% Latin Extended-A
++ 0180..024F,% Latin Extended-B
++ 0250..02AF,% IPA Extensions
++ 02B0..02FF,% Spacing Modifier Letters
++ 0370..03FF,% Greek and Coptic
++ 0400..04FF,% Cyrillic
++ 1E00..1EFF,% Latin Extended Additional
++ 2000..206F,% General Punctuation
++ 20A0..20CF,% Currency Symbols
++ 2100..214F,% Letterlike Symbols
++ 2150..218F,% Number Forms
++ 2190..21FF,% Arrows
++ 2200..22FF,% Mathematical Operators
++ 2300..23FF,% Miscellaneous Technical
++ 2460..24FF,% Enclosed Alphanumerics
++ 2500..257F,% Box Drawing
++ 2580..259F,% Block Elements
++ 25A0..25FF,% Geometric Shapes
++ 2600..26FF,% Miscellaneous Symbols
++ 2E80..2EFF,% CJK Radicals Supplement
++ 2F00..2FDF,% Kangxi Radicals
++ 2FF0..2FFF,% Ideographic Description Characters
++ 3000..303F,% CJK Symbols and Punctuation
++ 3040..309F,% Hiragana
++ 30A0..30FF,% Katakana
++ 3100..312F,% Bopomofo
++ 31A0..31BF,% Bopomofo Extended
++ 3200..32FF,% Enclosed CJK Letters and Months
++ 3300..33FF,% CJK Compatibility
++ 3400..4DBF,% CJK Unified Ideographs Extension A
++ 4E00..9FFF,% CJK Unified Ideographs
++ A000..A48F,% Yi Syllables
++ A490..A4CF,% Yi Radicals
++ E000..F8FF,% Private Use Area
++ F900..FAFF,% CJK Compatibility Ideographs
++ FE10..FE1F,% Vertical Forms
++ FE30..FE4F,% CJK Compatibility Forms
++ FE50..FE6F,% Small Form Variants
++ FF00..FFEF,% Halfwidth and Fullwidth Forms
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmtch-slim.cnf b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmtch-slim.cnf
new file mode 100644
index 00000000000..afa0f8ed60d
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmtch-slim.cnf
@@ -0,0 +1,11 @@
+% makejvf settings for upnmtch* in japanese-otf-uptex
+% based on Blocks-14.0.0.txt (Date: 2021-01-22, 23:29:00 GMT [KW])
+
+CHARSET %
++ 0080..00FF,% Latin-1 Supplement
++ 2000..206F,% General Punctuation
++ 2300..23FF,% Miscellaneous Technical
++ 3000..303F,% CJK Symbols and Punctuation
+%+ 4E00..9FFF,% CJK Unified Ideographs
++ FE50..FE6F,% Small Form Variants
++ FF00..FFEF,% Halfwidth and Fullwidth Forms
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmtch.cnf b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmtch.cnf
new file mode 100644
index 00000000000..f2e900aec65
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/mjvf-upnmtch.cnf
@@ -0,0 +1,46 @@
+% makejvf settings for upnmtch* in japanese-otf-uptex
+% based on Blocks-14.0.0.txt (Date: 2021-01-22, 23:29:00 GMT [KW])
+% and Adobe-CNS1-7/cid2code.txt (Version 10/24/2017)
+
+CHARSET %
++ 0000..007F,% Basic Latin
++ 0080..00FF,% Latin-1 Supplement
++ 0100..017F,% Latin Extended-A
++ 0180..024F,% Latin Extended-B
++ 0250..02AF,% IPA Extensions
++ 02B0..02FF,% Spacing Modifier Letters
++ 0300..036F,% Combining Diacritical Marks
++ 0370..03FF,% Greek and Coptic
++ 0400..04FF,% Cyrillic
++ 1E00..1EFF,% Latin Extended Additional
++ 2000..206F,% General Punctuation
++ 20A0..20CF,% Currency Symbols
++ 2100..214F,% Letterlike Symbols
++ 2150..218F,% Number Forms
++ 2190..21FF,% Arrows
++ 2200..22FF,% Mathematical Operators
++ 2300..23FF,% Miscellaneous Technical
++ 2400..243F,% Control Pictures
++ 2460..24FF,% Enclosed Alphanumerics
++ 2500..257F,% Box Drawing
++ 2580..259F,% Block Elements
++ 25A0..25FF,% Geometric Shapes
++ 2600..26FF,% Miscellaneous Symbols
++ 2700..27BF,% Dingbats
++ 2E80..2EFF,% CJK Radicals Supplement
++ 2F00..2FDF,% Kangxi Radicals
++ 3000..303F,% CJK Symbols and Punctuation
++ 3040..309F,% Hiragana
++ 30A0..30FF,% Katakana
++ 3100..312F,% Bopomofo
++ 31C0..31EF,% CJK Strokes
++ 3200..32FF,% Enclosed CJK Letters and Months
++ 3300..33FF,% CJK Compatibility
++ 3400..4DBF,% CJK Unified Ideographs Extension A
++ 4E00..9FFF,% CJK Unified Ideographs
++ E000..F8FF,% Private Use Area
++ F900..FAFF,% CJK Compatibility Ideographs
++ FE10..FE1F,% Vertical Forms
++ FE30..FE4F,% CJK Compatibility Forms
++ FE50..FE6F,% Small Form Variants
++ FF00..FFEF,% Halfwidth and Fullwidth Forms
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-h.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-h.pl
new file mode 100644
index 00000000000..b0db092336d
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-h.pl
@@ -0,0 +1,192 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (GLUE O 6 R 0.5 R 0.0 R 0.5)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 6 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (GLUE O 6 R 0.5 R 0.0 R 0.0)
+ (GLUE O 7 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 7)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016 U301D U00AB
+ U2329 U301A
+ )
+(CHARSINTYPE O 2
+ 、 , ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017 U301F U00BB
+ U232A U301B U301E
+ )
+(CHARSINTYPE O 3
+ ・ : ;
+ U00B7
+ )
+(CHARSINTYPE O 4
+ 。 .
+ )
+(CHARSINTYPE O 5
+ — ― … ‥
+ )
+(CHARSINTYPE O 6
+ ? !
+ U203C U2047 U2048 U2049
+ )
+(CHARSINTYPE O 7
+ UFF61 UFF62 UFF63 UFF64 UFF65 UFF66 UFF67
+ UFF68 UFF69 UFF6A UFF6B UFF6C UFF6D UFF6E UFF6F
+ UFF70 UFF71 UFF72 UFF73 UFF74 UFF75 UFF76 UFF77
+ UFF78 UFF79 UFF7A UFF7B UFF7C UFF7D UFF7E UFF7F
+ UFF80 UFF81 UFF82 UFF83 UFF84 UFF85 UFF86 UFF87
+ UFF88 UFF89 UFF8A UFF8B UFF8C UFF8D UFF8E UFF8F
+ UFF90 UFF91 UFF92 UFF93 UFF94 UFF95 UFF96 UFF97
+ UFF98 UFF99 UFF9A UFF9B UFF9C UFF9D UFF9E UFF9F
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (GLUE O 6 R 0.5 R 0.0 R 0.5)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 6 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (GLUE O 6 R 0.5 R 0.0 R 0.0)
+ (GLUE O 7 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 7
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-kor-h.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-kor-h.pl
new file mode 100644
index 00000000000..d6509223549
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-kor-h.pl
@@ -0,0 +1,136 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(FAMILY UPNMKOR KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016
+ U2329 U301A
+ )
+(CHARSINTYPE O 2
+ 、 , ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017
+ U232A U301B
+ )
+(CHARSINTYPE O 3
+ ・ : ;
+ U00B7
+ )
+(CHARSINTYPE O 4
+ 。 .
+ )
+(CHARSINTYPE O 5
+ — ― … ‥
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-kor-v.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-kor-v.pl
new file mode 100644
index 00000000000..72d9a094451
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-kor-v.pl
@@ -0,0 +1,137 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(DIRECTION TATE)
+(FAMILY UPNMKOR KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016
+ U2329 U301A
+ )
+(CHARSINTYPE O 2
+ 、 , ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017
+ U232A U301B
+ )
+(CHARSINTYPE O 3
+ ・ : ;
+ U00B7
+ )
+(CHARSINTYPE O 4
+ 。 .
+ )
+(CHARSINTYPE O 5
+ — ― … ‥
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-sch-h.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-sch-h.pl
new file mode 100644
index 00000000000..9146897f2d2
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-sch-h.pl
@@ -0,0 +1,136 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(FAMILY UPNMSCH KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016 U301D
+ U2329 U301A
+ )
+(CHARSINTYPE O 2
+ 、 , ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017 U301F
+ U232A U301B U301E
+ )
+(CHARSINTYPE O 3
+ ・
+ U00B7
+ )
+(CHARSINTYPE O 4
+ 。 . ? !
+ )
+(CHARSINTYPE O 5
+ — ― … ‥
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-sch-v.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-sch-v.pl
new file mode 100644
index 00000000000..ddad12f298e
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-sch-v.pl
@@ -0,0 +1,137 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(DIRECTION TATE)
+(FAMILY UPNMSCH KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016 U301D
+ U2329 U301A
+ )
+(CHARSINTYPE O 2
+ 、 , ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017 U301F
+ U232A U301B U301E
+ )
+(CHARSINTYPE O 3
+ ・ : ;
+ U00B7
+ )
+(CHARSINTYPE O 4
+ 。 .
+ )
+(CHARSINTYPE O 5
+ — ― … ‥
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-tch-h.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-tch-h.pl
new file mode 100644
index 00000000000..b866d4731c2
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-tch-h.pl
@@ -0,0 +1,116 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(FAMILY UPNMTCH KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 4 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 4 R 0.0)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016 U301D
+ U2329 U301A
+ UFE59 UFE5B UFE5D
+ )
+(CHARSINTYPE O 2
+ ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017 U301F
+ U232A U301B U301E
+ UFE5A UFE5C UFE5E
+ )
+(CHARSINTYPE O 3
+ 、 , 。 . ・ : ;
+ U00B7
+ )
+(CHARSINTYPE O 4
+ — ― … ‥
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 4 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 4 R 0.0)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-tch-v.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-tch-v.pl
new file mode 100644
index 00000000000..a1aa0d724a5
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-tch-v.pl
@@ -0,0 +1,117 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(DIRECTION TATE)
+(FAMILY UPNMTCH KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 4 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 4 R 0.0)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016 U301D
+ U2329 U301A
+ UFE59 UFE5B UFE5D
+ )
+(CHARSINTYPE O 2
+ ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017 U301F
+ U232A U301B U301E
+ UFE5A UFE5C UFE5E
+ )
+(CHARSINTYPE O 3
+ 、 , 。 . ・ : ;
+ U00B7
+ )
+(CHARSINTYPE O 4
+ — ― … ‥
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 4 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 4 R 0.0)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-v.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-v.pl
new file mode 100644
index 00000000000..48ef4396428
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubase-v.pl
@@ -0,0 +1,156 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(DIRECTION TATE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016 U301D U00AB
+ U2329 U301A
+ )
+(CHARSINTYPE O 2
+ 、 , ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017 U301F U00BB
+ U232A U301B U301E
+ )
+(CHARSINTYPE O 3
+ ・ : ;
+ U00B7
+ )
+(CHARSINTYPE O 4
+ 。 .
+ )
+(CHARSINTYPE O 5
+ — ― … ‥
+ )
+(CHARSINTYPE O 6
+ ? !
+ U203C U2047 U2048 U2049
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ )
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ )
+ )
+(TYPE O 4
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 0.5 R 0.0 R 0.0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 0.75 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.0)
+ )
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ )
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ (COMMENT
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ )
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubrsg-h.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubrsg-h.pl
new file mode 100644
index 00000000000..787bf0a3e51
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubrsg-h.pl
@@ -0,0 +1,167 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (GLUE O 6 R 0.5 R 0.0 R 0.5)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 6 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.25 R 0.0 R 0.25)
+ (GLUE D 8 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 1.0 R 0.0 R 0.0)
+ (GLUE O 1 R 1.0 R 0.0 R 0.0)
+ (GLUE O 2 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 1.25 R 0.0 R 0.75)
+ (GLUE O 4 R 1.0 R 0.0 R 0.5)
+ (GLUE O 5 R 1.0 R 0.0 R 0.0)
+ (GLUE O 6 R 1.0 R 0.0 R 0.0)
+ (GLUE O 7 R 0.5 R 0.0 R 0.0)
+ (GLUE D 8 R 1.0 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 7)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL D 8)
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 1.0 R 0.0 R 0.5)
+ (GLUE O 2 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 1.25 R 0.0 R 0.75)
+ (GLUE O 4 R 1.0 R 0.0 R 0.5)
+ (GLUE O 5 R 1.0 R 0.0 R 0.5)
+ (GLUE O 6 R 1.0 R 0.0 R 0.5)
+ (GLUE O 7 R 0.5 R 0.0 R 0.0)
+ (GLUE D 8 R 1.0 R 0.0 R 0.5)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016 U301D U00AB
+ U2329 U301A
+ )
+(CHARSINTYPE O 2
+ ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017 U301F U00BB
+ U232A U301B U301E
+ )
+(CHARSINTYPE O 3
+ ・ : ;
+ U00B7
+ )
+(CHARSINTYPE O 4
+ 。 .
+ )
+(CHARSINTYPE O 5
+ — ― … ‥
+ )
+(CHARSINTYPE O 6
+ ? !
+ U203C U2047 U2048 U2049
+ )
+(CHARSINTYPE O 7
+ UFF61 UFF62 UFF63 UFF64 UFF65 UFF66 UFF67
+ UFF68 UFF69 UFF6A UFF6B UFF6C UFF6D UFF6E UFF6F
+ UFF70 UFF71 UFF72 UFF73 UFF74 UFF75 UFF76 UFF77
+ UFF78 UFF79 UFF7A UFF7B UFF7C UFF7D UFF7E UFF7F
+ UFF80 UFF81 UFF82 UFF83 UFF84 UFF85 UFF86 UFF87
+ UFF88 UFF89 UFF8A UFF8B UFF8C UFF8D UFF8E UFF8F
+ UFF90 UFF91 UFF92 UFF93 UFF94 UFF95 UFF96 UFF97
+ UFF98 UFF99 UFF9A UFF9B UFF9C UFF9D UFF9E UFF9F
+ )
+(CHARSINTYPE D 8
+ 、 ,
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 4
+ (CHARWD R 0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE O 7
+ (CHARWD R 0.5)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
+(TYPE D 8
+ (CHARWD R 0)
+ (CHARHT R 0.88)
+ (CHARDP R 0.12)
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubrsg-v.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubrsg-v.pl
new file mode 100644
index 00000000000..7a5afbf9e35
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/basepl/ubrsg-v.pl
@@ -0,0 +1,142 @@
+(COMMENT THIS IS A KANJI FORMAT FILE)
+(DIRECTION TATE)
+(FAMILY OTF KANJI)
+(FACE F MRR)
+(CODINGSCHEME TEX KANJI TEXT)
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 0)
+(SEVENBITSAFEFLAG TRUE)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.0)
+ (STRETCH R 0.1)
+ (SHRINK R 0.0)
+ (XHEIGHT R 1.0)
+ (QUAD R 1.0)
+ (EXTRASPACE R 0.25)
+ (EXTRASTRETCH R 0.2)
+ (EXTRASHRINK R 0.125)
+ )
+(GLUEKERN
+ (LABEL O 0)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 1)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 2)
+ (GLUE O 0 R 0.5 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.5 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 3)
+ (GLUE O 0 R 0.25 R 0.0 R 0.25)
+ (GLUE O 1 R 0.25 R 0.0 R 0.25)
+ (GLUE O 2 R 0.25 R 0.0 R 0.25)
+ (GLUE O 3 R 0.5 R 0.0 R 0.25)
+ (GLUE O 4 R 0.25 R 0.0 R 0.25)
+ (GLUE O 5 R 0.25 R 0.0 R 0.25)
+ (GLUE O 7 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 4)
+ (GLUE O 0 R 1.0 R 0.0 R 0.0)
+ (GLUE O 1 R 1.0 R 0.0 R 0.0)
+ (GLUE O 2 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 1.25 R 0.0 R 0.75)
+ (GLUE O 4 R 1.0 R 0.0 R 0.5)
+ (GLUE O 5 R 1.0 R 0.0 R 0.0)
+ (GLUE O 6 R 1.0 R 0.0 R 0.0)
+ (GLUE O 7 R 1.0 R 0.0 R 0.5)
+ (STOP)
+ (LABEL O 5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (KRN O 5 R 0.0)
+ (STOP)
+ (LABEL O 6)
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 0.5 R 0.0 R 0.5)
+ (GLUE O 3 R 0.25 R 0.0 R 0.25)
+ (STOP)
+ (LABEL O 7)
+ (GLUE O 0 R 1.0 R 0.0 R 0.5)
+ (GLUE O 1 R 1.0 R 0.0 R 0.5)
+ (GLUE O 2 R 0.5 R 0.0 R 0.0)
+ (GLUE O 3 R 1.25 R 0.0 R 0.75)
+ (GLUE O 4 R 1.0 R 0.0 R 0.5)
+ (GLUE O 5 R 1.0 R 0.0 R 0.5)
+ (GLUE O 6 R 1.0 R 0.0 R 0.5)
+ (GLUE O 7 R 1.0 R 0.0 R 0.5)
+ (STOP)
+ )
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ UFF5F U3018 U3016 U301D U00AB
+ U2329 U301A
+ )
+(CHARSINTYPE O 2
+ ’ ” ) 〕 ] } 〉 》 」 』 】
+ UFF60 U3019 U3017 U301F U00BB
+ U232A U301B U301E
+ )
+(CHARSINTYPE O 3
+ ・ : ;
+ U00B7
+ )
+(CHARSINTYPE O 4
+ 。 .
+ )
+(CHARSINTYPE O 5
+ — ― … ‥
+ )
+(CHARSINTYPE O 6
+ ? !
+ U203C U2047 U2048 U2049
+ )
+(CHARSINTYPE O 7
+ 、 ,
+ )
+(TYPE O 0
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 1
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 2
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 3
+ (CHARWD R 0.5)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 4
+ (CHARWD R 0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 5
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 6
+ (CHARWD R 1.0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
+(TYPE O 7
+ (CHARWD R 0)
+ (CHARHT R 0.5)
+ (CHARDP R 0.5)
+ )
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/makeotf b/Master/texmf-dist/doc/fonts/japanese-otf/src/makeotf
new file mode 100755
index 00000000000..7b134c9fd46
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/makeotf
@@ -0,0 +1,342 @@
+#!/bin/sh
+echo "making tfm ..."
+perl script/mktfm.pl
+ppltotf basepl/base-h.pl tfm/nmlminr-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlminr-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlgothr-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlgothr-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlminb-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlminb-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlgothb-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlgothb-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlmgothr-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlmgothr-v.tfm
+ppltotf basepl/base-h.pl tfm/expminr-h.tfm
+ppltotf basepl/base-v.pl tfm/expminr-v.tfm
+ppltotf basepl/base-h.pl tfm/expgothr-h.tfm
+ppltotf basepl/base-v.pl tfm/expgothr-v.tfm
+ppltotf basepl/base-h.pl tfm/expminb-h.tfm
+ppltotf basepl/base-v.pl tfm/expminb-v.tfm
+ppltotf basepl/base-h.pl tfm/expgothb-h.tfm
+ppltotf basepl/base-v.pl tfm/expgothb-v.tfm
+ppltotf basepl/base-h.pl tfm/expmgothr-h.tfm
+ppltotf basepl/base-v.pl tfm/expmgothr-v.tfm
+ppltotf basepl/base-v.pl tfm/rubyminr-v.tfm
+ppltotf basepl/base-h.pl tfm/rubyminr-h.tfm
+ppltotf basepl/base-h.pl tfm/rubygothr-h.tfm
+ppltotf basepl/base-v.pl tfm/rubygothr-v.tfm
+ppltotf basepl/base-v.pl tfm/rubyminb-v.tfm
+ppltotf basepl/base-h.pl tfm/rubyminb-h.tfm
+ppltotf basepl/base-h.pl tfm/rubygothb-h.tfm
+ppltotf basepl/base-v.pl tfm/rubygothb-v.tfm
+ppltotf basepl/base-h.pl tfm/rubymgothr-h.tfm
+ppltotf basepl/base-v.pl tfm/rubymgothr-v.tfm
+ppltotf basepl/base0-h.pl tfm/cidjmr0-h.tfm
+ppltotf basepl/base2-h.pl tfm/cidjmr2-h.tfm
+ppltotf basepl/base2-v.pl tfm/cidjmr2-v.tfm
+ppltotf basepl/base3-v.pl tfm/cidjmr3-v.tfm
+ppltotf basepl/base0-h.pl tfm/cidjgr0-h.tfm
+ppltotf basepl/base2-h.pl tfm/cidjgr2-h.tfm
+ppltotf basepl/base2-v.pl tfm/cidjgr2-v.tfm
+ppltotf basepl/base3-v.pl tfm/cidjgr3-v.tfm
+ppltotf basepl/base0-h.pl tfm/cidjmb0-h.tfm
+ppltotf basepl/base2-h.pl tfm/cidjmb2-h.tfm
+ppltotf basepl/base2-v.pl tfm/cidjmb2-v.tfm
+ppltotf basepl/base3-v.pl tfm/cidjmb3-v.tfm
+ppltotf basepl/base0-h.pl tfm/cidjgb0-h.tfm
+ppltotf basepl/base2-h.pl tfm/cidjgb2-h.tfm
+ppltotf basepl/base2-v.pl tfm/cidjgb2-v.tfm
+ppltotf basepl/base3-v.pl tfm/cidjgb3-v.tfm
+ppltotf basepl/base0-h.pl tfm/cidjmgr0-h.tfm
+ppltotf basepl/base2-h.pl tfm/cidjmgr2-h.tfm
+ppltotf basepl/base2-v.pl tfm/cidjmgr2-v.tfm
+ppltotf basepl/base3-v.pl tfm/cidjmgr3-v.tfm
+#for extra fonts
+ppltotf basepl/base-h.pl tfm/nmlgotheb-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlgotheb-v.tfm
+ppltotf basepl/base-h.pl tfm/expgotheb-h.tfm
+ppltotf basepl/base-v.pl tfm/expgotheb-v.tfm
+ppltotf basepl/base-v.pl tfm/rubygotheb-v.tfm
+ppltotf basepl/base-h.pl tfm/rubygotheb-h.tfm
+ppltotf basepl/base0-h.pl tfm/cidjge0-h.tfm
+ppltotf basepl/base2-h.pl tfm/cidjge2-h.tfm
+ppltotf basepl/base2-v.pl tfm/cidjge2-v.tfm
+ppltotf basepl/base3-v.pl tfm/cidjge3-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlminl-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlminl-v.tfm
+ppltotf basepl/base-h.pl tfm/expminl-h.tfm
+ppltotf basepl/base-v.pl tfm/expminl-v.tfm
+ppltotf basepl/base-v.pl tfm/rubyminl-v.tfm
+ppltotf basepl/base-h.pl tfm/rubyminl-h.tfm
+ppltotf basepl/base0-h.pl tfm/cidjml0-h.tfm
+ppltotf basepl/base2-h.pl tfm/cidjml2-h.tfm
+ppltotf basepl/base2-v.pl tfm/cidjml2-v.tfm
+ppltotf basepl/base3-v.pl tfm/cidjml3-v.tfm
+echo "making vf (wait a while)..."
+perl script/mkutfvf.pl
+echo "vf for utf finished. making vf for cid..."
+perl script/mkcidvf.pl
+perl script/mkmlcidvf.pl
+echo "vf for cid finished. making vf for alt. utf..."
+perl script/mkaltutfvf.pl
+./mkjvf nmlminr-h hminr-h
+./mkjvf -cm -cp nmlminr-v hminr-v
+./mkjvf nmlgothr-h hgothr-h
+./mkjvf -cm -cp nmlgothr-v hgothr-v
+./mkjvf nmlminb-h hminb-h
+./mkjvf -cm -cp nmlminb-v hminb-v
+./mkjvf nmlgothb-h hgothb-h
+./mkjvf -cm -cp nmlgothb-v hgothb-v
+./mkjvf nmlmgothr-h hmgothr-h
+./mkjvf -cm -cp nmlmgothr-v hmgothr-v
+#extra fonts
+./mkjvf nmlgotheb-h hgotheb-h
+./mkjvf -cm -cp nmlgotheb-v hgotheb-v
+./mkjvf nmlminl-h hminl-h
+./mkjvf -cm -cp nmlminl-v hminl-v
+echo "making alt. kana ..."
+./mkjvf -expert expminr-h hminr-h cidjminr
+./mkjvf -cm -cp -expert expminr-v hminr-v cidjminr
+./mkjvf -expert expgothr-h hgothr-h cidjgothr
+./mkjvf -cm -cp -expert expgothr-v hgothr-v cidjgothr
+./mkjvf -expert expminb-h hminb-h cidjminb
+./mkjvf -cm -cp -expert expminb-v hminb-v cidjminb
+./mkjvf -expert expgothb-h hgothb-h cidjgothb
+./mkjvf -cm -cp -expert expgothb-v hgothb-v cidjgothb
+./mkjvf -expert expmgothr-h hmgothr-h cidjmgothr
+./mkjvf -cm -cp -expert expmgothr-v hmgothr-v cidjmgothr
+./mkjvf -ruby rubyminr-h hminr-h cidjminr
+./mkjvf -cm -cp -ruby rubyminr-v hminr-v cidjminr
+./mkjvf -ruby rubygothr-h hgothr-h cidjgothr
+./mkjvf -cm -cp -ruby rubygothr-v hgothr-v cidjgothr
+./mkjvf -ruby rubyminb-h hminb-h cidjminb
+./mkjvf -cm -cp -ruby rubyminb-v hminb-v cidjminb
+./mkjvf -ruby rubygothb-h hgothb-h cidjgothb
+./mkjvf -cm -cp -ruby rubygothb-v hgothb-v cidjgothb
+./mkjvf -ruby rubymgothr-h hmgothr-h cidjmgothr
+./mkjvf -cm -cp -ruby rubymgothr-v hmgothr-v cidjmgothr
+./mkjvf -expert expminl-h hminl-h cidjminl
+./mkjvf -cm -cp -expert expminl-v hminl-v cidjminl
+./mkjvf -ruby rubyminl-h hminl-h cidjminl
+./mkjvf -cm -cp -ruby rubyminl-v hminl-v cidjminl
+./mkjvf -expert expgotheb-h hgotheb-h cidjgotheb
+./mkjvf -cm -cp -expert expgotheb-v hgotheb-v cidjgotheb
+./mkjvf -ruby rubygotheb-h hgotheb-h cidjgotheb
+./mkjvf -cm -cp -ruby rubygotheb-v hgotheb-v cidjgotheb
+echo "making proportional kana tfm/vf"
+perl script/mkpkana.pl
+ppltotf -kanji=euc pl/phiraminw6-h.pl tfm/phiraminw6-h.tfm
+ppltotf -kanji=euc pl/phirakakuw3-h.pl tfm/phirakakuw3-h.tfm
+ppltotf -kanji=euc pl/phiraminw3-h.pl tfm/phiraminw3-h.tfm
+ppltotf -kanji=euc pl/phiramaruw4-h.pl tfm/phiramaruw4-h.tfm
+ppltotf -kanji=euc pl/phirakakuw6-h.pl tfm/phirakakuw6-h.tfm
+ovp2ovf ovp/phirakakuw3-h.ovp vf/phirakakuw3-h.vf vf/phirakakuw3-h.ofm
+ovp2ovf ovp/phiraminw6-h.ovp vf/phiraminw6-h.vf vf/phiraminw6-h.ofm
+ovp2ovf ovp/phiraminw3-h.ovp vf/phiraminw3-h.vf vf/phiraminw3-h.ofm
+ovp2ovf ovp/phirakakuw6-h.ovp vf/phirakakuw6-h.vf vf/phirakakuw6-h.ofm
+ovp2ovf ovp/phiramaruw4-h.ovp vf/phiramaruw4-h.vf vf/phiramaruw4-h.ofm
+perl script/mkvpkana.pl
+ppltotf -kanji=euc pl/phiraminw6-v.pl tfm/phiraminw6-v.tfm
+ppltotf -kanji=euc pl/phirakakuw3-v.pl tfm/phirakakuw3-v.tfm
+ppltotf -kanji=euc pl/phiraminw3-v.pl tfm/phiraminw3-v.tfm
+ppltotf -kanji=euc pl/phiramaruw4-v.pl tfm/phiramaruw4-v.tfm
+ppltotf -kanji=euc pl/phirakakuw6-v.pl tfm/phirakakuw6-v.tfm
+ovp2ovf ovp/phirakakuw3-v.ovp vf/phirakakuw3-v.vf vf/phirakakuw3-v.ofm
+ovp2ovf ovp/phiraminw6-v.ovp vf/phiraminw6-v.vf vf/phiraminw6-v.ofm
+ovp2ovf ovp/phiraminw3-v.ovp vf/phiraminw3-v.vf vf/phiraminw3-v.ofm
+ovp2ovf ovp/phirakakuw6-v.ovp vf/phirakakuw6-v.vf vf/phirakakuw6-v.ofm
+ovp2ovf ovp/phiramaruw4-v.ovp vf/phiramaruw4-v.vf vf/phiramaruw4-v.ofm
+cp hminr-h.tfm tfm/hiramin-w3-h.tfm
+cp hminr-h.tfm tfm/hiramin-w6-h.tfm
+cp hminr-h.tfm tfm/hirakaku-w3-h.tfm
+cp hminr-h.tfm tfm/hirakaku-w6-h.tfm
+cp hminr-h.tfm tfm/hiramaru-w4-h.tfm
+cp hminr-v.tfm tfm/hiramin-w3-v.tfm
+cp hminr-v.tfm tfm/hiramin-w6-v.tfm
+cp hminr-v.tfm tfm/hirakaku-w3-v.tfm
+cp hminr-v.tfm tfm/hirakaku-w6-v.tfm
+cp hminr-v.tfm tfm/hiramaru-w4-v.tfm
+echo "making ofm file for dvipdfmx in CVS"
+perl script/mkcidofm.pl
+perl script/mkpropofm.pl
+#burasage
+echo "making tfm/vf for burasage ..."
+ppltotf basepl/brsg-h.pl tfm/brsgnmlminr-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlminr-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlgothr-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlgothr-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlminb-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlminb-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlgothb-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlgothb-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlmgothr-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlmgothr-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpminr-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpminr-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpgothr-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpgothr-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpminb-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpminb-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpgothb-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpgothb-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpmgothr-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpmgothr-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlgotheb-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlgotheb-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpgotheb-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpgotheb-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlminl-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlminl-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpminl-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpminl-v.tfm
+./mkjvf -sage brsgnmlminr-h hminr-h
+./mkjvf -sage -cm -cp brsgnmlminr-v hminr-v
+./mkjvf -sage brsgnmlgothr-h hgothr-h
+./mkjvf -sage -cm -cp brsgnmlgothr-v hgothr-v
+./mkjvf -sage brsgnmlminb-h hminb-h
+./mkjvf -sage -cm -cp brsgnmlminb-v hminb-v
+./mkjvf -sage brsgnmlgothb-h hgothb-h
+./mkjvf -sage -cm -cp brsgnmlgothb-v hgothb-v
+./mkjvf -sage brsgnmlmgothr-h hmgothr-h
+./mkjvf -sage -cm -cp brsgnmlmgothr-v hmgothr-v
+./mkjvf -sage brsgnmlgotheb-h hgotheb-h
+./mkjvf -sage -cm -cp brsgnmlgotheb-v hgotheb-v
+./mkjvf -sage brsgnmlminl-h hminl-h
+./mkjvf -sage -cm -cp brsgnmlminl-v hminl-v
+./mkjvf -sage -expert brsgexpminr-h hminr-h cidjminr
+./mkjvf -sage -cm -cp -expert brsgexpminr-v hminr-v cidjminr
+./mkjvf -sage -expert brsgexpgothr-h hgothr-h cidjgothr
+./mkjvf -sage -cm -cp -expert brsgexpgothr-v hgothr-v cidjgothr
+./mkjvf -sage -expert brsgexpminb-h hminb-h cidjminb
+./mkjvf -sage -cm -cp -expert brsgexpminb-v hminb-v cidjminb
+./mkjvf -sage -expert brsgexpgothb-h hgothb-h cidjgothb
+./mkjvf -sage -cm -cp -expert brsgexpgothb-v hgothb-v cidjgothb
+./mkjvf -sage -expert brsgexpmgothr-h hmgothr-h cidjmgothr
+./mkjvf -sage -cm -cp -expert brsgexpmgothr-v hmgothr-v cidjmgothr
+./mkjvf -sage -expert brsgexpgotheb-h hgotheb-h cidjgotheb
+./mkjvf -sage -cm -cp -expert brsgexpgotheb-v hgotheb-v cidjgotheb
+./mkjvf -sage -expert brsgexpminl-h hminl-h cidjminl
+./mkjvf -sage -cm -cp -expert brsgexpminl-v hminl-v cidjminl
+echo "making tfm/vf for UTF jp04 (wait a while)..."
+perl script/mkjp04tfmvf.pl
+echo "making tfm for jp04 ..."
+ppltotf basepl/base-h.pl tfm/nmlminrn-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlminrn-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlgothrn-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlgothrn-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlminbn-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlminbn-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlgothbn-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlgothbn-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlmgothrn-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlmgothrn-v.tfm
+ppltotf basepl/base-h.pl tfm/expminrn-h.tfm
+ppltotf basepl/base-v.pl tfm/expminrn-v.tfm
+ppltotf basepl/base-h.pl tfm/expgothrn-h.tfm
+ppltotf basepl/base-v.pl tfm/expgothrn-v.tfm
+ppltotf basepl/base-h.pl tfm/expminbn-h.tfm
+ppltotf basepl/base-v.pl tfm/expminbn-v.tfm
+ppltotf basepl/base-h.pl tfm/expgothbn-h.tfm
+ppltotf basepl/base-v.pl tfm/expgothbn-v.tfm
+ppltotf basepl/base-h.pl tfm/expmgothrn-h.tfm
+ppltotf basepl/base-v.pl tfm/expmgothrn-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlminln-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlminln-v.tfm
+ppltotf basepl/base-h.pl tfm/expminln-h.tfm
+ppltotf basepl/base-v.pl tfm/expminln-v.tfm
+ppltotf basepl/base-h.pl tfm/nmlgothebn-h.tfm
+ppltotf basepl/base-v.pl tfm/nmlgothebn-v.tfm
+ppltotf basepl/base-h.pl tfm/expgothebn-h.tfm
+ppltotf basepl/base-v.pl tfm/expgothebn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlminrn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlminrn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlgothrn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlgothrn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlminbn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlminbn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlgothbn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlgothbn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlmgothrn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlmgothrn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpminrn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpminrn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpgothrn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpgothrn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpminbn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpminbn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpgothbn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpgothbn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpmgothrn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpmgothrn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlminln-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlminln-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpminln-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpminln-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgnmlgothebn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgnmlgothebn-v.tfm
+ppltotf basepl/brsg-h.pl tfm/brsgexpgothebn-h.tfm
+ppltotf basepl/brsg-v.pl tfm/brsgexpgothebn-v.tfm
+echo "making jvf for jp04 ..."
+./mkjvf -jp04 nmlminrn-h hminrn-h
+./mkjvf -jp04 -cm -cp nmlminrn-v hminrn-v
+./mkjvf -jp04 nmlgothrn-h hgothrn-h
+./mkjvf -jp04 -cm -cp nmlgothrn-v hgothrn-v
+./mkjvf -jp04 nmlminbn-h hminbn-h
+./mkjvf -jp04 -cm -cp nmlminbn-v hminbn-v
+./mkjvf -jp04 nmlgothbn-h hgothbn-h
+./mkjvf -jp04 -cm -cp nmlgothbn-v hgothbn-v
+./mkjvf -jp04 nmlmgothrn-h hmgothrn-h
+./mkjvf -jp04 -cm -cp nmlmgothrn-v hmgothrn-v
+./mkjvf -jp04 nmlminln-h hminln-h
+./mkjvf -jp04 -cm -cp nmlminln-v hminln-v
+./mkjvf -jp04 nmlgothebn-h hgothebn-h
+./mkjvf -jp04 -cm -cp nmlgothebn-v hgothebn-v
+./mkjvf -jp04 -expert expminrn-h hminrn-h cidjminr
+./mkjvf -jp04 -cm -cp -expert expminrn-v hminrn-v cidjminr
+./mkjvf -jp04 -expert expgothrn-h hgothrn-h cidjgothr
+./mkjvf -jp04 -cm -cp -expert expgothrn-v hgothrn-v cidjgothr
+./mkjvf -jp04 -expert expminbn-h hminbn-h cidjminb
+./mkjvf -jp04 -cm -cp -expert expminbn-v hminbn-v cidjminb
+./mkjvf -jp04 -expert expgothbn-h hgothbn-h cidjgothb
+./mkjvf -jp04 -cm -cp -expert expgothbn-v hgothbn-v cidjgothb
+./mkjvf -jp04 -expert expmgothrn-h hmgothrn-h cidjmgothr
+./mkjvf -jp04 -cm -cp -expert expmgothrn-v hmgothrn-v cidjmgothr
+./mkjvf -jp04 -expert expgothebn-h hgothebn-h cidjgotheb
+./mkjvf -jp04 -cm -cp -expert expgothebn-v hgothebn-v cidjgotheb
+./mkjvf -jp04 -expert expminln-h hminln-h cidjminl
+./mkjvf -jp04 -cm -cp -expert expminln-v hminln-v cidjminl
+./mkjvf -jp04 -sage brsgnmlminrn-h hminrn-h
+./mkjvf -jp04 -sage -cm -cp brsgnmlminrn-v hminrn-v
+./mkjvf -jp04 -sage brsgnmlgothrn-h hgothrn-h
+./mkjvf -jp04 -sage -cm -cp brsgnmlgothrn-v hgothrn-v
+./mkjvf -jp04 -sage brsgnmlminbn-h hminbn-h
+./mkjvf -jp04 -sage -cm -cp brsgnmlminbn-v hminbn-v
+./mkjvf -jp04 -sage brsgnmlgothbn-h hgothbn-h
+./mkjvf -jp04 -sage -cm -cp brsgnmlgothbn-v hgothbn-v
+./mkjvf -jp04 -sage brsgnmlmgothrn-h hmgothrn-h
+./mkjvf -jp04 -sage -cm -cp brsgnmlmgothrn-v hmgothrn-v
+./mkjvf -jp04 -sage brsgnmlgothebn-h hgothebn-h
+./mkjvf -jp04 -sage -cm -cp brsgnmlgothebn-v hgothebn-v
+./mkjvf -jp04 -sage brsgnmlminln-h hminln-h
+./mkjvf -jp04 -sage -cm -cp brsgnmlminln-v hminln-v
+./mkjvf -jp04 -sage -expert brsgexpminrn-h hminrn-h cidjminr
+./mkjvf -jp04 -sage -cm -cp -expert brsgexpminrn-v hminrn-v cidjminr
+./mkjvf -jp04 -sage -expert brsgexpgothrn-h hgothrn-h cidjgothr
+./mkjvf -jp04 -sage -cm -cp -expert brsgexpgothrn-v hgothrn-v cidjgothr
+./mkjvf -jp04 -sage -expert brsgexpminbn-h hminbn-h cidjminb
+./mkjvf -jp04 -sage -cm -cp -expert brsgexpminbn-v hminbn-v cidjminb
+./mkjvf -jp04 -sage -expert brsgexpgothbn-h hgothbn-h cidjgothb
+./mkjvf -jp04 -sage -cm -cp -expert brsgexpgothbn-v hgothbn-v cidjgothb
+./mkjvf -jp04 -sage -expert brsgexpmgothrn-h hmgothrn-h cidjmgothr
+./mkjvf -jp04 -sage -cm -cp -expert brsgexpmgothrn-v hmgothrn-v cidjmgothr
+./mkjvf -jp04 -sage -expert brsgexpgothebn-h hgothebn-h cidjgotheb
+./mkjvf -jp04 -sage -cm -cp -expert brsgexpgothebn-v hgothebn-v cidjgotheb
+./mkjvf -jp04 -sage -expert brsgexpminln-h hminln-h cidjminl
+./mkjvf -jp04 -sage -cm -cp -expert brsgexpminln-v hminln-v cidjminl
+echo "finishing ..."
+mv *.vf vf/
+mv *.tfm tfm/
+rm vf/*.ofm
+rm -rf ovp
+rm -rf pl
+rm -rf opl
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/mkjvf b/Master/texmf-dist/doc/fonts/japanese-otf/src/mkjvf
new file mode 100755
index 00000000000..4dfbda6b106
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/mkjvf
@@ -0,0 +1,731 @@
+#!/usr/bin/perl
+###################
+### main part ###
+###################
+#initialize
+&initialize_constant;
+#processing arguments
+&proc_arg;
+#make ovp
+&font_header;
+&write_char;
+#make vf & tfm
+&make_vf;
+&make_tfm;
+
+##########################
+#### dfn of sub rtns ###
+##########################
+sub initialize_constant{
+ $unknown=0;
+ $burasage=0;
+ $jis2004=0;
+ $minute_option=0;
+ $alt_kana_true=0;
+ $ruby_hira_code=0x356F;
+ $ruby_kata_code=0x3751;
+ $exp_hira_code_h=0x6F63;
+ $exp_kata_code_h=0x313D;
+ $exp_hira_code_v=0x325a;
+ $exp_kata_code_v=0x3434;
+ $ruby_font_map=2;
+ $exp_font_map=2;
+ @yoko_tfm_binary=(0x00, 0x0B, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x14, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEB, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+ @tate_tfm_binary=(0x00, 0x09, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+ @minute_code=(0x216C, 0x216C, 0x216D, 0x216D);
+ @shift_minute_code=(0x818C, 0x818C, 0x818D, 0x818D);
+ @cid_minute_code=(0x6E3D, 0x6E3E, 0x6C44, 0x6C45);
+ @ruby_odori_h=(0x3559, 0x355a, 0x355b, 0x355c, 0x3933);
+ @ruby_odori_v=(0x3559, 0x355a, 0x355b, 0x355c, 0x3934);
+ @exp_odori_h=(0x313a, 0x313b, 0x6f61, 0x6f62, 0x313c);
+ @exp_odori_v=(0x3431, 0x3432, 0x3258, 0x3259, 0x3433);
+ %kaisei_jikei = (0x3029 => 8266, 0x3032 => 7961, 0x303B => 7634, 0x306E => 7635, 0x3071 => 7962, 0x3073 => 7636, 0x307C => 7637, 0x312A => 7638, 0x3139 => 20271, 0x313D => 7642, 0x3142 => 13650, 0x3228 => 7645, 0x3260 => 7647, 0x3267 => 7965, 0x3276 => 13673, 0x327A => 20269, 0x3322 => 7650, 0x336B => 7652, 0x3373 => 7653, 0x3378 => 20290, 0x344D => 7656, 0x3465 => 7657, 0x352B => 7658, 0x3540 => 7659, 0x3562 => 7966, 0x3564 => 20270, 0x3568 => 20263, 0x362A => 7661, 0x3642 => 7968, 0x364F => 7662, 0x3674 => 7664, 0x367B => 7665, 0x367D => 7666, 0x3729 => 20272, 0x3737 => 7668, 0x3764 => 20273, 0x3771 => 7674, 0x377E => 7676, 0x3830 => 20276, 0x3841 => 7678, 0x392B => 7679, 0x393C => 20279, 0x3974 => 7683, 0x3979 => 20284, 0x3A35 => 20281, 0x3A67 => 7686, 0x3B27 => 7688, 0x3B2A => 7689, 0x3B2C => 7690, 0x3B2D => 20280, 0x3B41 => 7970, 0x3C5D => 7695, 0x3C5E => 7696, 0x3D36 => 7698, 0x3D5D => 13460, 0x3D72 => 7701, 0x3D73 => 7702, 0x3E25 => 7703, 0x3E64 => 7708, 0x3E73 => 20282, 0x3F2A => 7709, 0x3F56 => 13860, 0x3F60 => 7711, 0x4022 => 7713, 0x4071 => 7716, 0x4079 => 7718, 0x407A => 7972, 0x407C => 7973, 0x407D => 7974, 0x4127 => 7720, 0x4139 => 7721, 0x414C => 7722, 0x4237 => 7975, 0x423D => 7726, 0x425C => 7728, 0x427D => 7733, 0x4329 => 7735, 0x432E => 7738, 0x4337 => 13915, 0x4370 => 7740, 0x4375 => 7741, 0x443D => 7743, 0x4448 => 7744, 0x444A => 7745, 0x4454 => 8267, 0x4472 => 20286, 0x4522 => 7748, 0x4527 => 7749, 0x452E => 7750, 0x4546 => 13949, 0x4548 => 7753, 0x454B => 7754, 0x4552 => 7756, 0x4654 => 7761, 0x465B => 20287, 0x4666 => 7766, 0x4667 => 7767, 0x466A => 7768, 0x4729 => 7769, 0x4757 => 7771, 0x4767 => 7772, 0x4769 => 7773, 0x477D => 20288, 0x4824 => 7775, 0x4840 => 7978, 0x4854 => 7778, 0x4870 => 13495, 0x4875 => 7780, 0x4923 => 7782, 0x492F => 7783, 0x4935 => 7785, 0x493F => 20222, 0x4940 => 7786, 0x494E => 7787, 0x4960 => 20289, 0x4A43 => 7789, 0x4A4D => 7790, 0x4A4E => 14013, 0x4A53 => 7979, 0x4A5A => 7791, 0x4A5C => 20291, 0x4A79 => 7792, 0x4B29 => 7794, 0x4B70 => 7796, 0x4B78 => 7980, 0x4C59 => 7798, 0x4C5F => 7799, 0x4C62 => 20293, 0x4C6C => 20294, 0x4C7A => 7801, 0x4C7C => 7802, 0x4D32 => 14074, 0x4E7A => 7809, 0x4E7B => 7810, 0x4E7C => 20265, 0x4F31 => 7812, 0x514D => 7817, 0x5257 => 14111, 0x527B => 20277, 0x535E => 7821, 0x5373 => 14116, 0x5751 => 13538, 0x5928 => 7991, 0x6044 => 20278, 0x6131 => 20267, 0x6134 => 20283, 0x6156 => 20175, 0x635E => 20285, 0x6427 => 20266, 0x6440 => 7997, 0x6727 => 20275, 0x675B => 14196, 0x676A => 20292, 0x694A => 20274, 0x6967 => 20296, 0x6A24 => 20295, 0x6B43 => 20268, 0x7057 => 13624, 0x7159 => 8003, 0x726D => 14272);
+}
+sub proc_arg {
+ if ($#ARGV == -1) {&print_help;}
+ GetOptions(\@ARGV, ['^-b', \$baseline_shift, 1], ['^-m', \$minute_option, 0], ['^-cm', \$cid_minute, 0], ['^-cp', \$comma_period, 0], ['^-SJIS', \$sjis, 0], ['^-scale', \$scale, 1], ['^-notfm', \$without_tfm, 1], ['^-expert', \$expert, 0], ['^-ruby', \$ruby, 0], ['^-sage', \$burasage, 0], ['^-jp04', \$jis2004, 0], ['^-omitfw', \$omitfw, 0], ['^-allku', \$all_ku, 0], ['^-h(e|el|elp)?', \$help, 0], ['^-(.+)', \$unknown, 0]);
+ if ($unknown == 1){
+ print "mkjvf: Unknown options!\n";
+ &print_help;
+ }
+ if ($help == 1){&print_help;}
+ if (($expert == 0) && ($ruby == 0)){
+ if ($#ARGV <= 0) {
+ print "mkjvf: Need two to three file arguments.\n";
+ &print_help;
+ }
+ } elsif (($expert != 0) && ($ruby != 0)){
+ print "mkjvf: You can't use \"-ruby\" and \"-expert\" at same time.\n";
+ &print_help;
+ } elsif (($scale != 0) && ($ruby != 0)){
+ print "mkjvf: You can't use \"-ruby\" and \"-scale\" at same time.\n";
+ &print_help;
+ } elsif (($jis2004 != 0) && ($ruby != 0)){
+ print "mkjvf: You can't use \"-ruby\" and \"-jp04\" at same time.\n";
+ &print_help;
+ } elsif (($jis2004 != 0) && ($sjis != 0)){
+ print "mkjvf: You can't use \"-sjis\" and \"-jp04\" at same time.\n";
+ &print_help;
+ } elsif (($omitfw != 0) && ($baseline_shift != 0)){
+ print "mkjvf: You can't use \"-b\" and \"-omitfw\" at same time.\n";
+ &print_help;
+ } elsif (($omitfw != 0) && ($all_ku != 0)){
+ print "mkjvf: You can't use \"-omitfw\" and \"-allku\" at same time.\n";
+ &print_help;
+ } else {
+ if ($#ARGV <= 1) {
+ print "mkjvf: Need three file arguments for this option.\n";
+ &print_help;
+ }
+ $alt_kana_true=1;
+ }
+ if ($scale < 0 || $scale >= 1){
+ print "mkjvf: Invalid Scale!!\n";
+ &print_help;
+ }
+ if ($scale == 0){$scale = 1;}
+ if ($sjis != 0){$max_ku=120;}else{$max_ku=94;}
+ if ($cid_minute != 0){$minute_option = 1;}
+ $tfm_name = shift(@ARGV);
+ $tfm_name =~ s/\.tfm//;
+ $kanji_font = shift(@ARGV);
+ $kanji_font =~ s/\.tfm//;
+ $kana_font = shift(@ARGV);
+ $kana_font =~ s/\.tfm//;
+ &get_metric;
+ $half_width= ($font_at / 2);
+ $quater_width= ($font_at / 4);
+ @minute_right=($font_at*0.1, $font_at*0.4, $font_at*0.1, $font_at*0.4);
+ @minute_down=(-$font_at*0.65, $font_at*0.65, -$font_at*0.6, $font_at*0.6);
+ #open output file
+ open(OVP,">$tfm_name.ovp") || die "Can't make \'$tfm_name.ovp\'!\n";
+ binmode(OVP);
+}
+sub font_header {
+ print OVP "(VTITLE )\n";
+ print OVP "(OFMLEVEL D 0)";
+ print OVP "(DESIGNSIZE R 10.000000)\n";
+ print OVP "(CHECKSUM O 0)\n";
+ print OVP "(MAPFONT D 1\n";
+ print OVP " (FONTNAME $kanji_font)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$font_at;
+ printf OVP " (FONTDSIZE R %f)\n",$design_size;
+ print OVP " )\n";
+ if ($ruby == 1){
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."3-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }elsif ($direction eq "t"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."3-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ } elsif ($expert == 1) {
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."2-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 3\n";
+ print OVP " (FONTNAME $face"."3-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }elsif ($direction eq "t"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."3-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ } else {
+ if ($kana_font ne ""){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $kana_font)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale*$font_at;
+ printf OVP " (FONTDSIZE R %f)\n",$design_size;
+ print OVP " )\n";
+ }
+ }
+ if (($cid_minute == 1) && ($jis2004 == 0)){
+ &get_face;
+ if ($direction eq "t"){
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."1-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 5\n";
+ print OVP " (FONTNAME $face"."2-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ }
+ if ($jis2004 == 1){
+ if($direction eq "y"){$temp_dir = "h"}elsif($direction eq "t"){$temp_dir = "v"}
+ &get_face;
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."1-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 5\n";
+ print OVP " (FONTNAME $face"."2-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 6\n";
+ print OVP " (FONTNAME $face"."3-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 7\n";
+ print OVP " (FONTNAME $face"."4-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 8\n";
+ print OVP " (FONTNAME $face"."5-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+}
+sub write_char {
+ for ($ku=1; $ku<=$max_ku; $ku++){
+ next if (!$all_ku && (($ku>=9&&$ku<=15) || $ku>=85));
+ for ($ten=1; $ten<=94; $ten++){
+ $jiscode=($ku+32)*256+($ten+32);
+ if($sjis == 1){
+ &get_shift_jiscode;
+ $char_code=$shift_jiscode;
+ }else{
+ $char_code=$jiscode;
+ }
+ if ($ruby==1){
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_ruby_hira_char;}
+ elsif($ku==5){&print_ruby_kata_char;}else{&print_char;}
+ }elsif ($expert==1){
+ if ($direction eq "y"){
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&exp_hira_h_char;}
+ elsif($ku==5){&exp_kata_h_char;}else{&print_char;}
+ }elsif ($direction eq "t"){
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&exp_hira_v_char;}
+ elsif($ku==5){&exp_kata_v_char;}else{&print_char;}
+ }
+ }else{
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_kana_char;}
+ elsif($ku==5){&print_kana_char;}else{&print_char;}
+ }
+ }
+ }
+}
+sub make_vf {
+ close(OVP);
+ system("ovp2ovf $tfm_name.ovp $tfm_name.vf $tfm_name.ofm");
+ unlink "$tfm_name.ovp";
+ unlink "$tfm_name.ofm";
+}
+sub make_tfm {
+ open(KANJITFM,">$kanji_font.tfm") || die "Can't make \'$kanji_font.tfm\'!\n";
+ binmode(KANJITFM);
+ if ($direction eq "y") {
+ foreach $binary(@yoko_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANJITFM "$_";
+ }
+ } elsif ($direction eq "t") {
+ foreach $binary(@tate_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANJITFM "$_";
+ }
+ } else {die "Unknown Direction!!\n";}
+ if ($ruby==0 && $expert==0){
+ if ($kana_font ne ""){
+ open(KANATFM,">$kana_font.tfm") || die "Can't make \'$kana_font.tfm\'!\n";
+ binmode(KANATFM);
+ if ($direction eq "y") {
+ foreach $binary(@yoko_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANATFM "$_";
+ }
+ } else {
+ foreach $binary(@tate_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANATFM "$_";
+ }
+ }
+ }
+ }
+}
+##############################
+#### dfn of sub sub rtns ###
+##############################
+sub print_help {
+ print "This is mkjvf version 1.0b21 (2010/3/25) by psitau, 2022/02/05 TeX JP org\n";
+ print "Usage: mkjvf [option] <TFMfile> <PSfontTFM> [<PSfontTFM>]\n";
+ print " -b <number> baseline shift\n";
+ print " -m translate quotation mark to minute\n";
+ print " -cm translate quotation mark to CID minute\n";
+ print " -cp translate comma & period to KuTohTen\n";
+ print " -notfm (h|v) don't read tfm\n";
+ print " -ruby use ruby glyph for kana (for utf package)\n";
+ print " -expert use alt. kana glyph for kana (for utf package)\n";
+ print " -burasage make the width of kutoh-ten zero for burasage\n";
+ print " -jp04 make a font mapped JIS X 0213:2004 glyphs\n";
+ print " -omitfw omit entries in vf for characters with default metric (tex-jp-org extention)\n";
+ print " -allku don't omit entries in vf for undefined Ku in JIS X 0208 (tex-jp-org extention)\n";
+ print " -SJIS make shift jis mapped vf (experimental)\n";
+ print " -scale <0--1> make kokana vf\n";
+ print " -help print this message\n";
+ exit;
+}
+sub GetOptions {
+ my ($argv,@options)=@_;
+ foreach (@options) {
+ my ($regex,$ref,$takesarg)=@{$_};
+ my @args=@{$argv};
+ @{$argv}=();
+ my $arg;
+ argloop:
+ while (($arg=shift @args) ne "") {
+ if ($arg=~/$regex/) {
+ my $val=1;
+ if ($takesarg) { $val=shift @args; }
+ if (ref($ref) eq 'CODE') { &$ref($val); }
+ else { ${$ref}=$val; last argloop;}
+ }
+ else {
+ push @{$argv},$arg;
+ if ($arg eq '--') { last argloop; }
+ }
+ }
+ push @{$argv},@args;
+ }
+}
+sub get_metric{
+ if ($without_tfm eq ""){
+ &read_tfm;
+ } elsif ($without_tfm eq "h") {
+ $direction="y";
+ $design_size=10;
+ $font_at = 0.962216;
+ if ($minute_option == 1){$minute_option = 0;}
+ if ($comma_period == 1){$comma_period = 0;}
+ } elsif ($without_tfm eq "v") {
+ $direction="t";
+ $design_size=10;
+ $font_at = 0.962216;
+ } else{
+ die "Unknown Direction!!\n";
+ }
+# print STDOUT "$design_size, $font_at\n";#debug
+}
+sub read_tfm{
+ $alt_tfm_name=`kpsewhich $tfm_name.tfm`;
+ chomp($alt_tfm_name);
+ open (TFM, "<$tfm_name.tfm") || open (TFM, "<tfm/$tfm_name.tfm") || open (TFM, "<$alt_tfm_name") || die "Can't read tfm file!!\n";
+ binmode(TFM);
+ my($jfm_id, $nt, $lf, $lh, $bc, $ec, $nw, $nh, $nd, $ni, $nl, $nk, $ng, $np);
+ my($data,$d_size,$data_length, @param);
+ #first 7 word
+ read(TFM, $_, 2);
+ $jfm_id = unpack('n', $_);
+# printf STDOUT "JFM ID= %d\n",$jfm_id;#debug
+ if ($jfm_id==0x0B) {
+ $direction="y";
+ if ($minute_option == 1){$minute_option = 0;}
+# print STDOUT "Direction is YOKO!!\n";#debug
+ }elsif ($jfm_id==0x09){
+ $direction="t";
+# print STDOUT "Direction is TATE!!\n";#debug
+ }else{
+ die "Unknown Direction!!\n";
+ }
+ read(TFM, $_, 26);
+ ($nt, $lf, $lh, $bc, $ec, $nw, $nh, $nd, $ni, $nl, $nk, $ng, $np)= unpack('nnnnnnnnnnnnn', $_);
+ #header
+ read(TFM, $_, (4*$lh));
+ ($data,$d_size)= unpack('NN',$_);
+ $d_size=$d_size/(1<<20);;
+ $data_length = ($nt+$ec-$bc+1+$nw+$nh+$nd+$ni+$nl+$nk+$ng)*4;
+ read(TFM, $_, $data_length);
+ read(TFM, $_, (4*$np));
+ @param=unpack('NNNNNNNNN',$_);
+ $zh = $param[4]/(1<<20);
+ $zw = $param[5]/(1<<20);
+ $design_size=$d_size;
+ $font_at=$zw;
+# printf STDOUT "Design Size: %f, zw: %f, zh: %f\n",$d_size, $zw, $zh;#debug
+}
+sub get_face{
+ if($kana_font eq "cidjminr"){
+ $face="cidjmr";
+ }elsif($kana_font eq "cidjgothr"){
+ $face="cidjgr";
+ }elsif($kana_font eq "cidjminb"){
+ $face="cidjmb";
+ }elsif($kana_font eq "cidjgothb"){
+ $face="cidjgb";
+ }elsif($kana_font eq "cidjgotheb"){
+ $face="cidjge";
+ }elsif($kana_font eq "cidjmgothr"){
+ $face="cidjmgr";
+ }elsif($kana_font eq "cidjminl"){
+ $face="cidjml";
+ }elsif($kana_font eq "cidmin"){
+ $face="cidm";
+ }elsif($kana_font eq "cidgoth"){
+ $face="cidg";
+ }elsif($kana_font eq ""){
+ if($kanji_font =~ /hminr/){
+ $face="cidjmr";
+ }elsif($kanji_font =~ /hgothr/){
+ $face="cidjgr";
+ }elsif($kanji_font =~ /hminb/){
+ $face="cidjmb";
+ }elsif($kanji_font =~ /hgothb/){
+ $face="cidjgb";
+ }elsif($kanji_font =~ /hgotheb/){
+ $face="cidjge";
+ }elsif($kanji_font =~ /hmgothr/){
+ $face="cidjmgr";
+ }elsif($kanji_font =~ /hminl/){
+ $face="cidjml";
+ }
+ }
+}
+sub baseline_shift{
+ if ($baseline_shift != 0){
+ $baseline_shift_amount=-($baseline_shift/1000)*$zh;
+ printf OVP " (MOVEUP R %f)\n",$baseline_shift_amount;
+ }
+}
+sub print_kigo_char{
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ if ($jiscode>=0x2146 && $jiscode<=0x215B){#Kakko
+ $width=$half_width;
+ } elsif ($jiscode>=0x2122 && $jiscode<=0x2128){#Kutouten
+ if (($burasage eq 1) && ($jiscode>=0x2122 && $jiscode<=0x2125)){#burasage
+ $width=0;
+ }else{
+ $width=$half_width;
+ }
+ } else{
+ $width=$font_at;
+ }
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ if ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){
+ if ($ruby==1){
+ print OVP " (SELECTFONT D 2)\n";
+ }elsif($expert==1){
+ if ($direction eq "y"){
+ if ($jiscode==0x2135 || $jiscode == 0x2136){
+ print OVP " (SELECTFONT D 2)\n";
+ }else{
+ print OVP " (SELECTFONT D 3)\n";
+ }
+ }else{
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ }elsif($kana_font ne ""){
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ }
+ if ($cid_minute == 1){#cid_minute
+ if ($jiscode == 0x2148 || $jiscode == 0x2149){#double quatation->double minute
+ print OVP " (SELECTFONT D 4)\n";
+ }elsif ($jiscode == 0x2146 || $jiscode == 0x2147){#single quatation->single minute
+ print OVP " (SELECTFONT D 5)\n";
+ }
+ }
+ &baseline_shift;
+ if ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#odoriji
+ &scaled_shift;
+ }
+ if (0x2126 <= $jiscode && $jiscode <= 0x2128){#colon, semicolon, nakaten
+ printf OVP " (MOVERIGHT R -%f)\n",$quater_width;}
+ if (0x214A <= $jiscode && $jiscode <= 0x215B && ($jiscode%2)==0){#Kakko
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ if (0x2146 <= $jiscode && $jiscode <=0x2149){#quatation
+ if ($minute_option == 1){#quatation -> minute
+ if ($cid_minute == 1){
+ if (($jiscode%2)==0){
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ $minute_char_code= shift(@cid_minute_code);
+ printf OVP " (SETCHAR H %X)\n", $minute_char_code;
+ }else{
+ $minute_right_shift= shift(@minute_right);
+ $minute_down_shift= shift(@minute_down);
+ printf OVP " (MOVERIGHT R %f)\n", $minute_right_shift;
+ printf OVP " (MOVEDOWN R %f)\n", $minute_down_shift;
+ if (($jiscode%2)==1){
+ print OVP " (SPECIAL ps: gsave currentpoint currentpoint translate 180 neg rotate neg exch neg exch translate)\n";
+ }
+ if ($sjis == 1){
+ $minute_char_code= shift(@shift_minute_code);
+ }else{
+ $minute_char_code= shift(@minute_code);
+ }
+ printf OVP " (SETCHAR H %X)\n", $minute_char_code;
+ if (($jiscode%2)==1){
+ print OVP " (SPECIAL ps: currentpoint grestore moveto)\n";
+ }
+ }
+ } else {
+ if (($jiscode%2)==0){
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ printf OVP " (SETCHAR H %X)\n", $char_code;
+ }
+ } elsif ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#odoriji
+ if ($ruby==1){
+ if ($direction eq "y"){
+ $odorijicode= shift(@ruby_odori_h);
+ }else{
+ $odorijicode= shift(@ruby_odori_v);
+ }
+ }elsif($expert==1){
+ if ($direction eq "y"){
+ $odorijicode= shift(@exp_odori_h);
+ }else{
+ $odorijicode= shift(@exp_odori_v);
+ }
+ }elsif ($sjis==1){
+ $odorijicode= $shift_jiscode;
+ }else{
+ $odorijicode= $jiscode;
+ }
+ printf OVP " (SETCHAR H %X)\n",$odorijicode;
+ } elsif (($jiscode== 0x2124 || $jiscode== 0x2125) && $comma_period == 1){
+ printf OVP " (SETCHAR H %X)\n",$char_code-2;
+ }else {
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ }
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_char{
+ $fontmap = 0;
+ if (($jis2004 == 1) && (0x3029 <= $jiscode && $jiscode <= 0x726D)){
+ if (exists $kaisei_jikei{$jiscode}){
+ $cid = $kaisei_jikei{$jiscode};
+ $fontmap = int($cid/4096)+3;
+ $upper = int(($cid%4096)/64)+16;
+ $lower = (($cid%4096)%64)+16;
+# printf STDOUT "%d, %d\n",$upper,$lower;
+ $char_code = $upper*256+$lower+0x2020;
+ }
+ }
+ if ($omitfw && $baseline_shift==0 && !$fontmap) {
+ return if ($jiscode==$char_code);
+ }
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n", $font_at;
+ print OVP " (MAP\n";
+ if ($fontmap) {
+ printf OVP " (SELECTFONT D %d)\n", $fontmap;
+ }
+ &baseline_shift;
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_kana_char{
+ if ($omitfw && $baseline_shift==0 && $scale==1 && $kana_font eq "") {
+ return if ($jiscode==$char_code);
+ }
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n", $font_at;
+ print OVP " (MAP\n";
+ if ($kana_font ne ""){
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_ruby_hira_char{
+ $ruby_hira_code_orig=$ruby_hira_code;
+ if ($direction eq "t"){&fix_ruby_hira_code;}
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n",$ruby_font_map;
+ &baseline_shift;
+ printf OVP " (SETCHAR H %X)\n", $ruby_hira_code;
+ print OVP " )\n";
+ print OVP " )\n";
+ $ruby_hira_code=$ruby_hira_code_orig;
+ $ruby_hira_code++;
+ if ($ruby_hira_code == 0x3570){$ruby_hira_code=0x3630;}
+ if ($ruby_hira_code == 0x3670){$ruby_hira_code=0x3730;}
+ if ($ruby_hira_code == 0x363A){$ruby_hira_code=0x363B;}
+ if ($ruby_hira_code == 0x3641){$ruby_hira_code=0x3642;}
+}
+sub print_ruby_kata_char{
+ $ruby_kata_code_orig=$ruby_kata_code;
+ if ($jiscode == 0x2575){$ruby_kata_code=0x375C;}
+ if ($jiscode == 0x2576){$ruby_kata_code=0x3763;}
+ if ($direction eq "t"){&fix_ruby_kata_code;}
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 2)\n";
+ &baseline_shift;
+ printf OVP " (SETCHAR H %X)\n", $ruby_kata_code;
+ print OVP " )\n";
+ print OVP " )\n";
+ $ruby_kata_code=$ruby_kata_code_orig;
+ $ruby_kata_code++;
+ if ($ruby_kata_code == 0x3770){$ruby_kata_code=0x3830;}
+ if ($ruby_kata_code == 0x375C){$ruby_kata_code=0x375D;}
+ if ($ruby_kata_code == 0x3763){$ruby_kata_code=0x3764;}
+}
+sub exp_hira_h_char{
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n", $exp_font_map;
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_hira_code_h;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_hira_code_h++;
+ if ($exp_hira_code_h == 0x6F70){$exp_hira_code_h=0x3030;$exp_font_map=3;}
+ if ($exp_hira_code_h == 0x3070){$exp_hira_code_h=0x3130;}
+ if ($exp_hira_code_h == 0x6f6d){$exp_hira_code_h++;}
+ if ($exp_hira_code_h == 0x3034){$exp_hira_code_h++;}
+ if ($exp_hira_code_h == 0x3037){$exp_hira_code_h++;}
+}
+sub exp_kata_h_char{
+ if ($jiscode == 0x2575){$exp_kata_code_h=0x3147;}
+ if ($jiscode == 0x2576){$exp_kata_code_h=0x314e;}
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 3)\n";
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_kata_code_h;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_kata_code_h++;
+ if ($exp_kata_code_h == 0x3170){$exp_kata_code_h=0x3230;}
+ if ($exp_kata_code_h == 0x3147){$exp_kata_code_h++;}
+ if ($exp_kata_code_h == 0x314e){$exp_kata_code_h++;}
+ if ($exp_kata_code_h == 0x3151){$exp_kata_code_h++;}
+}
+sub exp_hira_v_char{
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D 2)\n";
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_hira_code_v;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_hira_code_v++;
+ if ($exp_hira_code_v == 0x3270){$exp_hira_code_v=0x3330;}
+ if ($exp_hira_code_v == 0x3264){$exp_hira_code_v++;}
+ if ($exp_hira_code_v == 0x326b){$exp_hira_code_v++;}
+ if ($exp_hira_code_v == 0x326e){$exp_hira_code_v++;}
+}
+sub exp_kata_v_char{
+ if ($jiscode == 0x2575){$exp_kata_code_v=0x343e;}
+ if ($jiscode == 0x2576){$exp_kata_code_v=0x3445;}
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 2)\n";
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_kata_code_v;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_kata_code_v++;
+ if ($exp_kata_code_v == 0x3470){$exp_kata_code_v=0x3530;}
+ if ($exp_kata_code_v == 0x343e){$exp_kata_code_v++;}
+ if ($exp_kata_code_v == 0x3445){$exp_kata_code_v++;}
+ if ($exp_kata_code_v == 0x3448){$exp_kata_code_v++;}
+}
+sub fix_ruby_hira_code{
+ if ($jiscode == 0x2421){$ruby_hira_code=0x3745;}#a
+ if ($jiscode == 0x2423){$ruby_hira_code=0x3746;}#i
+ if ($jiscode == 0x2425){$ruby_hira_code=0x3747;}#u
+ if ($jiscode == 0x2427){$ruby_hira_code=0x3748;}#e
+ if ($jiscode == 0x2429){$ruby_hira_code=0x3749;}#o
+ if ($jiscode == 0x2443){$ruby_hira_code=0x374c;}#tsu
+ if ($jiscode == 0x2463){$ruby_hira_code=0x374d;}#ya
+ if ($jiscode == 0x2465){$ruby_hira_code=0x374e;}#yu
+ if ($jiscode == 0x2467){$ruby_hira_code=0x374f;}#yo
+ if ($jiscode == 0x246E){$ruby_hira_code=0x3750;}#wa
+}
+sub fix_ruby_kata_code{
+ if ($jiscode == 0x2521){$ruby_kata_code=0x3867;}#a
+ if ($jiscode == 0x2523){$ruby_kata_code=0x3868;}#i
+ if ($jiscode == 0x2525){$ruby_kata_code=0x3869;}#u
+ if ($jiscode == 0x2527){$ruby_kata_code=0x386a;}#e
+ if ($jiscode == 0x2529){$ruby_kata_code=0x386b;}#o
+ if ($jiscode == 0x2543){$ruby_kata_code=0x386e;}#tsu
+ if ($jiscode == 0x2563){$ruby_kata_code=0x386f;}#ya
+ if ($jiscode == 0x2565){$ruby_kata_code=0x3930;}#yu
+ if ($jiscode == 0x2567){$ruby_kata_code=0x3931;}#yo
+ if ($jiscode == 0x256E){$ruby_kata_code=0x3932;}#wa
+ if ($jiscode == 0x2575){$ruby_kata_code=0x386c;}#ka
+ if ($jiscode == 0x2576){$ruby_kata_code=0x386d;}#ke
+}
+sub get_shift_jiscode{
+ $c1=$ku+32;
+ $c2=$ten+32;
+ if ($c1 % 2) {
+ $c1 = (($c1 + 1) / 2) + 0x70;
+ $c2 = $c2 + 0x1f;
+ } else {
+ $c1 = ($c1 / 2) + 0x70;
+ $c2 = $c2 + 0x7d;
+ }
+ if ($c1 >= 0xa0) {$c1 = $c1 + 0x40;}
+ if ($c2 >= 0x7f) {$c2 = $c2 + 1;}
+ $shift_jiscode=$c1*256+$c2;
+}
+sub scaled_shift{
+ if ($scale != 1){
+ $scaled_shift_amount=(1-$scale)*$font_at/2;
+ printf OVP " (MOVERIGHT R %f)\n",$scaled_shift_amount;
+ if ($direction eq "y"){
+ $scaled_v_shift_amount=(1-$scale)*$font_at*0.38;
+ printf OVP " (MOVEUP R %f)\n",$scaled_v_shift_amount;
+ }
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/CheckDVICode.pm b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/CheckDVICode.pm
new file mode 100644
index 00000000000..3af7198b944
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/CheckDVICode.pm
@@ -0,0 +1,287 @@
+package CheckDVICode;
+
+use strict;
+use Exporter;
+our @ISA = qw(Exporter);
+our @EXPORT = qw(is_dvicode is_ucs_open is_ucs_kigo is_ucs_hira
+ is_ucs_kata is_ucs_hankana is_ucs_jpn_range);
+
+=head1 NAME
+
+CheckDVICode.pm
+
+=head1 NOTE
+
+This software is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+
+=cut
+
+our ($dvicode, $is_ucs);
+
+sub is_dvicode($){
+ my ($key)=@_;
+ my ($code)=($dvicode);
+
+ if (!$is_ucs) {
+ if ($key eq 'hira-a') { return ($code == 0x2421);}
+ if ($key eq 'hira-i') { return ($code == 0x2423);}
+ if ($key eq 'hira-u') { return ($code == 0x2425);}
+ if ($key eq 'hira-e') { return ($code == 0x2427);}
+ if ($key eq 'hira-o') { return ($code == 0x2429);}
+ if ($key eq 'hira-tsu') { return ($code == 0x2443);}
+ if ($key eq 'hira-ya') { return ($code == 0x2463);}
+ if ($key eq 'hira-yu') { return ($code == 0x2465);}
+ if ($key eq 'hira-yo') { return ($code == 0x2467);}
+ if ($key eq 'hira-wa') { return ($code == 0x246E);}
+ if ($key eq 'hira-Vu') { return 0; } # large JIS X 0213
+ if ($key eq 'hira-ka') { return 0; } # small JIS X 0213
+ if ($key eq 'hira-ke') { return 0; } # small JIS X 0213
+ if ($key eq 'kata-a') { return ($code == 0x2521);}
+ if ($key eq 'kata-i') { return ($code == 0x2523);}
+ if ($key eq 'kata-u') { return ($code == 0x2525);}
+ if ($key eq 'kata-e') { return ($code == 0x2527);}
+ if ($key eq 'kata-o') { return ($code == 0x2529);}
+ if ($key eq 'kata-tsu') { return ($code == 0x2543);}
+ if ($key eq 'kata-ya') { return ($code == 0x2563);}
+ if ($key eq 'kata-yu') { return ($code == 0x2565);}
+ if ($key eq 'kata-yo') { return ($code == 0x2567);}
+ if ($key eq 'kata-wa') { return ($code == 0x256E);}
+ if ($key eq 'kata-ka') { return ($code == 0x2575);}
+ if ($key eq 'kata-ke') { return ($code == 0x2576);}
+ if ($key eq 'kata-Va') { return 0; } # large JIS X 0213
+ if ($key eq 'kata-Vi') { return 0; } # : JIS X 0213
+ if ($key eq 'kata-Ve') { return 0; } # : JIS X 0213
+ if ($key eq 'kata-Vo') { return 0; } # large JIS X 0213
+ if ($key eq 'kata-ku') { return 0; } # small JIS X 0213
+ if ($key eq 'kata-mu') { return 0; } # small JIS X 0213
+ if ($key eq 'kata-ku..ro') { return 0; } # small JIS X 0213
+ if ($key eq 'comma') { return ($code == 0x2124);}
+ if ($key eq 'period') { return ($code == 0x2125);}
+ if ($key eq 'odoriji') { return
+ ((0x2133 <= $code && $code <= 0x2136) || $code == 0x213C);}
+ if ($key eq 'hira-odoriji') { return
+ ($code == 0x2135 || $code == 0x2136);}
+ if ($key eq 'kutouten') { return
+ ($code>=0x2122 && $code<=0x2128);}
+ if ($key eq 'burasage') { return
+ ($code>=0x2122 && $code<=0x2125);}
+ if ($key eq 'nakaten' ) { return ($code == 0x2126);}
+ if ($key eq 'colon' ) { return ($code == 0x2127);}
+ if ($key eq 'semicolon') { return ($code == 0x2128);}
+ if ($key eq 'quote') { return
+ ($code >= 0x2146 && $code <= 0x2149);}
+ if ($key eq 's-quote') { return
+ ($code == 0x2146 || $code == 0x2147);}
+ if ($key eq 'd-quote') { return
+ ($code == 0x2148 || $code == 0x2149);}
+ if ($key eq 'kakko') { return
+ (0x214A <= $code && $code <= 0x215B);}
+ if ($key eq 'open') { return ($code%2==0);}
+ if ($key eq 'close') { return ($code%2==1);}
+
+ die "illegal keyname ($key)\n";
+ } else { # ucs
+ if ($key eq 'hira-a') { return ($code == 0x3041);} # small
+ if ($key eq 'hira-i') { return ($code == 0x3043);} # :
+ if ($key eq 'hira-u') { return ($code == 0x3045);} # :
+ if ($key eq 'hira-e') { return ($code == 0x3047);} # :
+ if ($key eq 'hira-o') { return ($code == 0x3049);} # :
+ if ($key eq 'hira-tsu') { return ($code == 0x3063);} # :
+ if ($key eq 'hira-ya') { return ($code == 0x3083);} # :
+ if ($key eq 'hira-yu') { return ($code == 0x3085);} # :
+ if ($key eq 'hira-yo') { return ($code == 0x3087);} # :
+ if ($key eq 'hira-wa') { return ($code == 0x308E);} # small
+ if ($key eq 'hira-Vu') { return ($code == 0x3094);} # large JIS X 0213
+ if ($key eq 'hira-ka') { return ($code == 0x3095);} # small JIS X 0213
+ if ($key eq 'hira-ke') { return ($code == 0x3096);} # small JIS X 0213
+ if ($key eq 'kata-a') { return ($code == 0x30A1);} # small
+ if ($key eq 'kata-i') { return ($code == 0x30A3);} # :
+ if ($key eq 'kata-u') { return ($code == 0x30A5);} # :
+ if ($key eq 'kata-e') { return ($code == 0x30A7);} # :
+ if ($key eq 'kata-o') { return ($code == 0x30A9);} # :
+ if ($key eq 'kata-tsu') { return ($code == 0x30C3);} # :
+ if ($key eq 'kata-ya') { return ($code == 0x30E3);} # :
+ if ($key eq 'kata-yu') { return ($code == 0x30E5);} # :
+ if ($key eq 'kata-yo') { return ($code == 0x30E7);} # :
+ if ($key eq 'kata-wa') { return ($code == 0x30EE);} # :
+ if ($key eq 'kata-ka') { return ($code == 0x30F5);} # :
+ if ($key eq 'kata-ke') { return ($code == 0x30F6);} # small
+ if ($key eq 'kata-Va') { return ($code == 0x30F7);} # large JIS X 0213
+ if ($key eq 'kata-Vi') { return ($code == 0x30F8);} # : JIS X 0213
+ if ($key eq 'kata-Ve') { return ($code == 0x30F9);} # : JIS X 0213
+ if ($key eq 'kata-Vo') { return ($code == 0x30FA);} # large JIS X 0213
+ if ($key eq 'kata-ku') { return ($code == 0x31F0);} # small JIS X 0213
+ if ($key eq 'kata-mu') { return ($code == 0x31FA);} # small JIS X 0213
+ if ($key eq 'kata-ku..ro') { return
+ ($code >= 0x31F0 && $code <= 0x31FF);} # small JIS X 0213
+ if ($key eq 'comma') { return ($code == 0xFF0C);}
+ if ($key eq 'period') { return ($code == 0xFF0E);}
+ if ($key eq 'odoriji') { return
+ ($code == 0x30FD || $code == 0x30FE ||
+ $code == 0x309D || $code == 0x309E ||
+ $code == 0x30FC);}
+ if ($key eq 'hira-odoriji') { return
+ ($code == 0x309D || $code == 0x309E);}
+ if ($key eq 'kutouten') { return
+ ($code == 0x3001 || $code == 0x3002 ||
+ $code == 0xFF0C || $code == 0xFF0E ||
+ $code == 0x30FB || $code == 0x00B7 ||
+ $code == 0xFF1A || $code == 0xFF1B);}
+ if ($key eq 'burasage') { return
+ ($code == 0x3001 || $code == 0x3002 ||
+ $code == 0xFF0C || $code == 0xFF0E);}
+ if ($key eq 'nakaten' ) { return
+ ($code == 0x30FB || $code == 0x00B7);}
+ if ($key eq 'colon' ) { return ($code == 0xFF1A);}
+ if ($key eq 'semicolon') { return ($code == 0xFF1B);}
+ if ($key eq 'quote') { return
+ ($code == 0x2018 || $code == 0x2019 ||
+ $code == 0x201C || $code == 0x201D);}
+ if ($key eq 's-quote') { return
+ ($code == 0x2018 || $code == 0x2019);}
+ if ($key eq 'd-quote') { return
+ ($code == 0x201C || $code == 0x201D);}
+ if ($key eq 'kakko') { return
+ ((0x3008 <= $code && $code <= 0x3011) ||
+ $code == 0x3014 || $code == 0x3015 ||
+ $code == 0xFF08 || $code == 0xFF09 ||
+ $code == 0xFF3B || $code == 0xFF3D ||
+ $code == 0xFF5B || $code == 0xFF5D ||
+ $code == 0xFF5F || $code == 0xFF60 || # X0213 1-02-54,55
+ $code == 0x3018 || $code == 0x3019 || # X0213 1-02-56,57
+ $code == 0x3016 || $code == 0x3017 || # X0213 1-02-58,59
+ $code == 0x301D || $code == 0x301F || # X0213 1-13-64,65
+ $code == 0x00AB || $code == 0x00BB || # X0213 1-09-08,18
+ $code == 0x2329 || $code == 0x232A ||
+ $code == 0x301A || $code == 0x301B ||
+ $code == 0x301E
+ );}
+ if ($key eq 'open') { return &is_ucs_open; }
+ if ($key eq 'close') { return (!&is_ucs_open); }
+
+ # ucs only
+ if ($key eq 'hira-yori'){ return ($code == 0x309F);} # yori
+ if ($key eq 'kata-koto'){ return ($code == 0x30FF);} # koto
+
+ die "illegal keyname ($key)\n";
+ }
+}
+
+sub is_ucs_open{
+ if ($dvicode == 0x00AB || $dvicode == 0x2329
+ || $dvicode == 0x301D
+ || $dvicode == 0xFF3B || $dvicode == 0xFF5B
+ || $dvicode == 0xFF5F) { return 1;}
+ if ($dvicode == 0x00BB || $dvicode == 0x232A
+ || $dvicode == 0x301E || $dvicode == 0x301F
+ || $dvicode == 0xFF3D || $dvicode == 0xFF5D
+ || $dvicode == 0xFF60) { return 0;}
+ return ($dvicode%2==0);
+}
+
+sub is_ucs_kigo{
+ return 1 if ($dvicode==0x00AB || $dvicode==0x00BB);
+ return 1 if ($dvicode==0x00B7);
+ return 1 if ($dvicode>=0x2018 && $dvicode<=0x2019);
+ return 1 if ($dvicode>=0x201C && $dvicode<=0x201D);
+ return 1 if ($dvicode>=0x2329 && $dvicode<=0x232A);
+ return 1 if ($dvicode>=0x3001 && $dvicode<=0x301F);
+ return 1 if ($dvicode>=0x3097 && $dvicode<=0x309E);
+ return 1 if ($dvicode>=0x30FB && $dvicode<=0x30FE);
+ return 1 if ($dvicode>=0xFF08 && $dvicode<=0xFF60);
+
+ return 0;
+}
+
+sub is_ucs_hira{
+ return 1 if ($dvicode>=0x3041 && $dvicode<=0x3093);
+ return 1 if ($dvicode>=0x3094 && $dvicode<=0x3096); # Vu, small Ka, small Ke
+# return 1 if ($dvicode==0x309F); # Yori :: It is omitted because it is not included in "Tuned" in AJ1-6
+ return 0;
+}
+
+sub is_ucs_kata{
+ return 1 if ($dvicode>=0x30A1 && $dvicode<=0x30F6);
+ return 1 if ($dvicode>=0x30F7 && $dvicode<=0x30FA); # Va, Vi, Ve, Vo
+ return 1 if ($dvicode>=0x31F0 && $dvicode<=0x31FF); # small Ku, small Shi, ... , Small Re, Small Ro
+# return 1 if ($dvicode==0x30FF); # Koto :: It is omitted because it is not included in "Tuned" in AJ1-6
+ return 0;
+}
+
+sub is_ucs_hankana{
+ return 1 if ($dvicode>=0xFF61 && $dvicode<=0xFF9F);
+ return 0;
+}
+
+# Reference:
+# http://www.unicode.org/Public/UNIDATA/Blocks.txt
+# Blocks-12.0.0.txt
+# Date: 2018-07-30, 19:40:00 GMT [KW]
+sub is_ucs_jpn_range{
+ return 1 if ($dvicode<=0x04FF); # Cyrillic
+
+ return 0 if ($dvicode< 0x1E00);
+ return 1 if ($dvicode<=0x243F); # Control Pictures
+
+ return 0 if ($dvicode< 0x2460);
+ return 1 if ($dvicode<=0x27BF); # Dingbats
+
+ return 0 if ($dvicode< 0x2900);
+ return 1 if ($dvicode<=0x29FF); # Miscellaneous Mathematical Symbols-B
+
+ return 0 if ($dvicode< 0x2B00);
+ return 1 if ($dvicode<=0x2BFF); # Miscellaneous Symbols and Arrows
+
+ return 0 if ($dvicode< 0x2E80);
+ return 1 if ($dvicode<=0x2FDF); # Kangxi Radicals
+
+ return 0 if ($dvicode< 0x3000);
+ return 1 if ($dvicode<=0x30FF); # Katakana
+
+ return 0 if ($dvicode< 0x3190);
+ return 1 if ($dvicode<=0x319F); # Kanbun
+
+ return 0 if ($dvicode< 0x31F0);
+ return 1 if ($dvicode<=0x4DBF); # CJK Unified Ideographs Extension A
+
+ return 0 if ($dvicode< 0x4E00);
+ return 1 if ($dvicode<=0x9FFF); # CJK Unified Ideographs
+
+ return 0 if ($dvicode< 0xE000);
+ return 1 if ($dvicode<=0xFB4F); # Alphabetic Presentation Forms
+
+ return 0 if ($dvicode< 0xFE10);
+ return 1 if ($dvicode<=0xFE1F); # Vertical Forms
+
+ return 0 if ($dvicode< 0xFE30);
+ return 1 if ($dvicode<=0xFE4F); # CJK Compatibility Forms
+
+ return 0 if ($dvicode< 0xFF00);
+ return 1 if ($dvicode<=0xFFEF); # Halfwidth and Fullwidth Forms
+
+ return 0 if ($dvicode< 0x1B000);
+ return 1 if ($dvicode<=0x1B0FF); # Kana Supplement
+ return 1 if ($dvicode<=0x1B12F); # Kana Extended-A
+ return 1 if ($dvicode<=0x1B16F); # Small Kana Extension
+
+ return 0 if ($dvicode< 0x1F100);
+ return 1 if ($dvicode<=0x1F1FF); # Enclosed Alphanumeric Supplement
+ return 1 if ($dvicode<=0x1F2FF); # Enclosed Ideographic Supplement
+
+ return 0 if ($dvicode< 0x1F780);
+ return 1 if ($dvicode<=0x1F7FF); # Geometric Shapes Extended
+
+ return 0 if ($dvicode< 0x20000);
+ return 1 if ($dvicode<=0x2A6DF); # CJK Unified Ideographs Extension B
+ return 1 if ($dvicode<=0x2B73F); # CJK Unified Ideographs Extension C
+ return 1 if ($dvicode<=0x2B81F); # CJK Unified Ideographs Extension D
+ return 1 if ($dvicode<=0x2CEAF); # CJK Unified Ideographs Extension E
+ return 1 if ($dvicode<=0x2EBEF); # CJK Unified Ideographs Extension F
+
+ return 0 if ($dvicode< 0x2F800);
+ return 1 if ($dvicode<=0x2FA1F); # CJK Compatibility Ideographs Supplement
+
+ return 0;
+}
+
+1;
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/MakeSPList.pm b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/MakeSPList.pm
new file mode 100644
index 00000000000..8dc9ce0e3a8
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/MakeSPList.pm
@@ -0,0 +1,71 @@
+package MakeSPList;
+
+use strict;
+use Exporter;
+use File::Basename qw/dirname/;
+our @ISA = qw(Exporter);
+our @EXPORT = qw(make_sp_char_list);
+
+=head1 NAME
+
+MakeSPList.pm
+
+=head1 NOTE
+
+This software is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+
+=cut
+
+our ($r_exist_head, $r_exist_char);
+
+my $num = '[12][0-9A-F]{4}';
+
+sub make_sp_char_list(@) {
+ my (@lang)=@_;
+ my (@exist_head_mul, %exist_char_mul)=();
+ my ($lang, $first_hex);
+
+ my $moduledir=dirname(__FILE__);
+
+ foreach $lang (@lang) {
+ open(LIST, "$moduledir/sp_list_$lang.txt") || die "$!";
+ my (@exist_head_each, %exist_char_each)=();
+ while (<LIST>) {
+ chomp;
+ s/\s+//g;
+ next if (/^[#%]/);
+ s/[#%].*$//;
+ s/,$//;
+ my @tmp;
+ foreach $_ (split ',', $_) {
+ if (/^($num)$/io) {
+ @tmp = (hex($1));
+ } elsif (/^($num)-($num)$/io) {
+ @tmp = (hex($1)..hex($2));
+ } else {
+ die "input [$_] is not expected\n";
+ }
+ foreach $_ (@tmp) {
+ my $HEX=sprintf("%X",$_);
+ $first_hex=int($_/0x1000);
+ $exist_head_each[$first_hex]++;
+ $exist_char_each{$HEX}=1;
+ if ($exist_char_mul{$HEX} eq '' && $exist_head_mul[$first_hex]!~/$lang/) {
+ $exist_head_mul[$first_hex].=$lang;
+ }
+ $exist_char_mul{$HEX}.=$lang;
+# warn "$HEX $first_hex ",sprintf("%X",$first_hex),"\n";
+ }
+ }
+ }
+ @{$r_exist_head->{$lang}}=@exist_head_each;
+ %{$r_exist_char->{$lang}}=%exist_char_each;
+ }
+ if (@lang>1) {
+ $lang = join ',', @lang;
+ @{$r_exist_head->{$lang}}=@exist_head_mul;
+ %{$r_exist_char->{$lang}}=%exist_char_mul;
+ }
+}
+
+1;
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/glyphdata b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/glyphdata
new file mode 100644
index 00000000000..49637991767
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/glyphdata
Binary files differ
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkaltutfvf.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkaltutfvf.pl
new file mode 100644
index 00000000000..470ff2bc919
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkaltutfvf.pl
@@ -0,0 +1,119 @@
+open(GLYPH, "<glyphdata")||open(GLYPH, "<script/glyphdata");
+binmode(GLYPH);
+@glyph_sub_table=();
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+closedir(OVP);
+closedir(VF);
+
+&make_glyph_substitute_array;
+&make_uni_vf;
+
+#
+# dfn of sub rtns.
+#
+sub make_glyph_substitute_array {
+ for ($j=0x0000; $j<=0xffff; $j=$j+2){
+ read(GLYPH, $hex_data, 1);
+ $hex_data= unpack("C", $hex_data);
+ $high=$hex_data >> 4;
+ $low=$hex_data-($high*16);
+ &write_cjkt($high);
+ &write_cjkt($low);
+ }
+}
+sub make_uni_vf {
+ for ($k=0; $k<=1; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}elsif ($k==2){$face="mb";}
+ elsif ($k==3){$face="gb";}elsif ($k==4){$face="mgr";}elsif ($k==5){$face="ml";}
+ elsif ($k==6){$face="ge";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ for ($first_hex=0x0; $first_hex <= 0xf; $first_hex++){
+ $filename="utf$face".sprintf("%x",$first_hex)."-$dir";
+ open(OVP, ">ovp/$filename.ovp")||die "$!";
+ &fonthead;
+ for ($l=0; $l<=3; $l++){#language
+ if ($l==0) {$lang="j";} elsif ($l==1) {$lang="k";} elsif ($l==2) {$lang="c";} elsif ($l==3){$lang="t";}
+ print OVP "(MAPFONT D $l\n (FONTNAME otf-u$lang$face-$dir)\n";
+ &fontfoot;
+ }
+ &writechar;
+ close(OVP);
+ system("ovp2ovf ovp/$filename.ovp vf/$filename.vf vf/$filename.ofm");
+ unlink "vf/$filename.ofm";
+ }
+ }
+ }
+}
+sub fonthead {
+print OVP <<END_OF_DATA;
+(VTITLE JVF for UTF16)
+(OFMLEVEL D 0)
+(DESIGNSIZE R 10.000000)
+(CHECKSUM O 0)
+END_OF_DATA
+}
+
+sub fontfoot {
+print OVP <<END_OF_DATA;
+ (FONTCHECKSUM O 0)
+ (FONTAT R 1.0)
+ (FONTDSIZE R 10.000000)
+ )
+END_OF_DATA
+}#2003/10/22 FONTAT 0.962216->1.0
+sub writechar {
+ for ($ku=16; $ku <= 79; $ku++){#2002/1/27 120->79
+ for ($ten=16; $ten <= 79; $ten++){
+ if ($ku>=16 && $ku<=79 && $ten>=16 && $ten<=79){
+ &printchar($first_hex,$ku,$ten);
+# } else {
+# &printgeta($first_hex,$ku,$ten);
+ }
+ }
+ }
+}
+
+sub printchar {
+ $jiscode=($_[1]+0x20)*256+($_[2]+0x20);
+ $unicode=$_[0]*4096+($_[1]-16)*64+($_[2]-16);
+ $wd = ($dir eq 'h' && $unicode>=0xFF61 && $unicode<=0xFF9F) ? '0.5' : '1.0';
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ print OVP " (CHARWD R $wd)\n";#2003/10/22 CHARWD 0.962216->1.0
+ print OVP " (MAP\n";
+ &write_map_font;
+ printf OVP " (SETCHAR H %X)\n", $unicode;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+
+sub printgeta {
+ $jiscode=($_[1]+0x20)*256+($_[2]+0x20);
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ print OVP " (CHARWD R 1.0)\n";#2003/10/22 CHARWD 0.962216->1.0
+ print OVP " (MAP\n";
+ print OVP " (SETCHAR H 3013)\n";
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub write_map_font{
+ if ($glyph_sub_table[$unicode] eq "c"){
+ print OVP " (SELECTFONT D 2)\n";
+ }elsif($glyph_sub_table[$unicode] eq "t"){
+ print OVP " (SELECTFONT D 3)\n";
+ }elsif($glyph_sub_table[$unicode] eq "k"){
+ print OVP " (SELECTFONT D 1)\n";
+ }
+}
+sub write_cjkt{
+ if ($_[0]>=8 || $_[0]==0){
+ push(@glyph_sub_table,"j");
+ }elsif(4<=$_[0] && $_[0]<8){
+ push(@glyph_sub_table,"c");
+ }elsif(2<=$_[0] && $_[0]<4){
+ push(@glyph_sub_table,"t");
+ }elsif($_[0]==1){
+ push(@glyph_sub_table,"k");
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkcidofm.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkcidofm.pl
new file mode 100644
index 00000000000..5938984b2f8
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkcidofm.pl
@@ -0,0 +1,66 @@
+opendir(OPLD, "opl") || mkdir("opl",0755) || die "cannot mkdir opl";
+opendir(OFMD, "ofm") || mkdir("ofm",0755) || die "cannot mkdir ofm";
+$font_at=1.0;
+@font_base_name=("cjmr", "cjgr", "cjmb", "cjgb", "cjmgr", "cjml", "cjge");
+for ($d=0; $d<=1; $d++){
+ if ($d==0){$dir="h";}elsif($d==1){$dir="v";}
+ foreach $base_name(@font_base_name){
+ $font_name="otf-$base_name-$dir";
+ open(OPL, ">opl/$font_name.opl") || die "cannot make file";
+ print OPL "(OFMLEVEL D 1)\n";
+ print OPL "(FONTDIR TL)\n";
+ print OPL "(FAMILY HIRAMIN)\n";
+ print OPL "(FACE F MRR)\n";
+ print OPL "(CODINGSCHEME UNSPECIFIED)\n";
+ print OPL "(DESIGNSIZE R 10.0)\n";
+ print OPL "(COMMENT DESIGNSIZE IS IN POINTS)\n";
+ print OPL "(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)\n";
+ print OPL "(CHECKSUM H 0)\n";
+ print OPL "(SEVENBITSAFEFLAG FALSE)\n";
+ print OPL "(FONTDIMEN\n";
+ print OPL " (SLANT R 0.0)\n";
+ print OPL " (SPACE R 0.0)\n";
+ printf OPL " (STRETCH R %f)\n", $font_at/10;
+ print OPL " (SHRINK R 0.0)\n";
+ printf OPL " (XHEIGHT R %f)\n", $font_at;
+ printf OPL " (QUAD R %f)\n", $font_at;
+ print OPL " )\n";
+ for($cidcode=0; $cidcode<=23059; $cidcode++){
+ if ($dir eq "h"){
+ if (($cidcode >= 231) && ($cidcode <= 632)){
+ $width=0.5;
+ }elsif(($cidcode == 8718) || ($cidcode == 8719)){
+ $width=0.5;
+ }elsif((12063 <= $cidcode) && ($cidcode <= 12087)){
+ $width=0.5;
+ }elsif((9738 <= $cidcode) && ($cidcode <= 9757)){
+ $width=0.25;
+ }elsif((9758 <= $cidcode) && ($cidcode <= 9778)){
+ $width=0.333333;
+ }else{$width=1.0;}
+ }elsif($dir eq "v"){
+ if ((8950 <= $cidcode) && ($cidcode <= 9353)){
+ $width=0.5;
+ }elsif((13254 <= $cidcode) && ($cidcode <= 13273)){
+ $width=0.25;
+ }elsif((13274 <= $cidcode) && ($cidcode <= 13294)){
+ $width=0.333333;
+ }else{$width=1.0;}
+ }
+ if ($dir eq "h"){
+ $accender=0.88;
+ $decender=0.12;
+ }elsif($dir eq "v"){
+ $accender=0.5;
+ $decender=0.5;
+ }
+ printf OPL "(CHARACTER D %d\n", $cidcode;
+ printf OPL " (CHARWD R %f)\n", $width*$font_at;
+ printf OPL " (CHARHT R %f)\n", $font_at*$accender ;
+ printf OPL " (CHARDP R %f)\n", $font_at*$decender;
+ print OPL " )\n";
+ }
+ close(OPL);
+ system("opl2ofm opl/$font_name.opl ofm/$font_name.ofm")
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkcidvf.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkcidvf.pl
new file mode 100644
index 00000000000..27a99912d6c
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkcidvf.pl
@@ -0,0 +1,106 @@
+#!/usr/bin/perl
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+&makevf;
+
+sub makevf {
+ for ($k=0; $k<=6; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}elsif ($k==2){$face="mb";}
+ elsif ($k==3){$face="gb";}elsif ($k==4){$face="mgr";}elsif ($k==5){$face="ml";}
+ elsif ($k==6){$face="ge";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ $cidcode=0;
+ for ($first_hex=0x0; $first_hex <= 0x5; $first_hex++){
+ $filename="cidj$face".sprintf("%x",$first_hex)."-$dir";
+ open(OUT, ">ovp/$filename.ovp")||die "$!";
+ &fonthead;
+ print OUT " (FONTNAME otf-cj$face-$dir)\n";
+ &fontfoot;
+ &writechar;
+ close(OUT);
+ system("ovp2ovf ovp/$filename.ovp vf/$filename.vf vf/$filename.ofm");
+ unlink "vf/$filename.ofm";
+ }
+ }
+ }
+}
+
+sub fonthead {
+print OUT <<END_OF_DATA;
+(VTITLE JVF for Adobe-Japan1-7)
+(OFMLEVEL D 0)
+(DESIGNSIZE R 10.000000)
+(CHECKSUM O 0)
+(MAPFONT D 0
+END_OF_DATA
+}
+
+sub fontfoot {
+print OUT <<END_OF_DATA;
+ (FONTCHECKSUM O 0)
+ (FONTAT R 1.0)
+ (FONTDSIZE R 10.000000)
+ )
+END_OF_DATA
+}#2003/10/22 FONTAT 1.0->1.0
+sub printchar {
+ $jiscode=($_[1]+0x20)*256+($_[2]+0x20);
+ if ($dir eq "h"){
+ if (($cidcode >= 231) && ($cidcode <= 632)){
+ $width=0.5;
+ }elsif(($cidcode == 8718) || ($cidcode == 8719)){
+ $width=0.5;
+ }elsif((12063 <= $cidcode) && ($cidcode <= 12087)){
+ $width=0.5;
+ }elsif((9738 <= $cidcode) && ($cidcode <= 9757)){
+ $width=0.25;
+ }elsif((9758 <= $cidcode) && ($cidcode <= 9778)){
+ $width=0.333333;
+ }else{$width=1.0;}
+ }elsif($dir eq "v"){
+ if (((8950 <= $cidcode) && ($cidcode <= 9353)) || ((13295 <= $cidcode) && ($cidcode <= 13319))){
+ $width=0.5;
+ }elsif((10185 <= $cidcode) && ($cidcode <= 10195)){
+ $width=0.5;
+ }elsif((13254 <= $cidcode) && ($cidcode <= 13273)){
+ $width=0.25;
+ }elsif((13274 <= $cidcode) && ($cidcode <= 13294)){
+ $width=0.333333;
+ }else{$width=1.0;}
+ }
+ printf OUT "(CHARACTER H %X\n", $jiscode;
+ printf OUT " (CHARWD R %f)\n", $width;
+ print OUT " (MAP\n";
+ printf OUT " (SETCHAR H %X)\n", $cidcode;
+ if (($dir eq "v")&&($width!=1.0)){
+ $correction=1.0-$width;
+ printf OUT " (MOVERIGHT R -%f)\n", $correction;
+ }
+ print OUT " )\n";
+ print OUT " )\n";
+}
+
+sub printgeta {
+ $jiscode=($_[1]+0x20)*256+($_[2]+0x20);
+ printf OUT "(CHARACTER H %X\n", $jiscode;
+ print OUT " (CHARWD R 1.0)\n";
+ print OUT " (MAP\n";
+ print OUT " (SETCHAR H 0)\n";
+ print OUT " )\n";
+ print OUT " )\n";
+}
+
+sub writechar {
+ for ($ku=16; $ku <= 79; $ku++){
+ for ($ten=16; $ten <= 79; $ten++){
+ if ($ku>=16 && $ku<=79 && $ten>=16 && $ten<=79){
+ return if ($cidcode>23059); # Adobe-Japan1-7
+ &printchar($first_hex,$ku,$ten);
+ $cidcode++;
+# } else {
+# &printgeta($first_hex,$ku,$ten);
+ }
+ }
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkjp04tfmvf.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkjp04tfmvf.pl
new file mode 100644
index 00000000000..99992cf498f
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkjp04tfmvf.pl
@@ -0,0 +1,172 @@
+#!/usr/bin/perl
+@tex_tfm_h=(0x00, 0x0B, 0x00, 0x01, 0x00, 0x2B, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x0E, 0x54, 0x45, 0x58, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x20, 0x54, 0x45, 0x58, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x4F, 0x54, 0x46, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x14, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEB, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x33, 0x33, 0x00, 0x02, 0x00, 0x00);
+@tex_tfm_v=(0x00, 0x09, 0x00, 0x01, 0x00, 0x2B, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x0E, 0x54, 0x45, 0x58, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x20, 0x54, 0x45, 0x58, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x4F, 0x54, 0x46, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x33, 0x33, 0x00, 0x02, 0x00, 0x00);
+@dvips_tfm_h=(0x00, 0x0B, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x14, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEB, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+@dvips_tfm_v=(0x00, 0x09, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+
+# halfwidth characters U+FF61..FF9F are correspond to (0x6D5x, 0x6D6x, 0x6E3x, 0x6E4x) in subfont
+@tex_tfm_sub_h=map{ hex($_) } qw/
+ 00 0b 00 40 00 6c 00 12 00 00 00 01 00 03 00 02
+ 00 02 00 01 00 00 00 00 00 00 00 09 00 00 00 00
+ 00 a0 00 00 0e 54 45 58 20 4b 41 4e 4a 49 20 54
+ 45 58 54 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 09 4f 54 46
+ 20 4b 41 4e 4a 49 00 00 00 00 00 00 00 00 00 00
+ 80 00 00 00 00 00 00 00 6d 51 00 01 6d 52 00 01
+ 6d 53 00 01 6d 54 00 01 6d 55 00 01 6d 56 00 01
+ 6d 57 00 01 6d 58 00 01 6d 59 00 01 6d 5a 00 01
+ 6d 5b 00 01 6d 5c 00 01 6d 5d 00 01 6d 5e 00 01
+ 6d 5f 00 01 6d 60 00 01 6d 61 00 01 6d 62 00 01
+ 6d 63 00 01 6d 64 00 01 6d 65 00 01 6d 66 00 01
+ 6d 67 00 01 6d 68 00 01 6d 69 00 01 6d 6a 00 01
+ 6d 6b 00 01 6d 6c 00 01 6d 6d 00 01 6d 6e 00 01
+ 6d 6f 00 01 6e 30 00 01 6e 31 00 01 6e 32 00 01
+ 6e 33 00 01 6e 34 00 01 6e 35 00 01 6e 36 00 01
+ 6e 37 00 01 6e 38 00 01 6e 39 00 01 6e 3a 00 01
+ 6e 3b 00 01 6e 3c 00 01 6e 3d 00 01 6e 3e 00 01
+ 6e 3f 00 01 6e 40 00 01 6e 41 00 01 6e 42 00 01
+ 6e 43 00 01 6e 44 00 01 6e 45 00 01 6e 46 00 01
+ 6e 47 00 01 6e 48 00 01 6e 49 00 01 6e 4a 00 01
+ 6e 4b 00 01 6e 4c 00 01 6e 4d 00 01 6e 4e 00 01
+ 6e 4f 00 01 02 11 00 00 01 11 00 00 00 00 00 00
+ 00 08 00 00 00 10 00 00 00 00 00 00 00 0e 14 7b
+ 00 00 00 00 00 01 eb 85 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 01 99 9a 00 00 00 00 00 10 00 00
+ 00 10 00 00 00 04 00 00 00 03 33 33 00 02 00 00
+/;
+@dvips_tfm_ucs_h=map{ hex($_) } qw/
+ 00 0b 00 40 00 5c 00 02 00 00 00 01 00 03 00 02
+ 00 02 00 01 00 00 00 00 00 00 00 09 00 00 00 00
+ 00 a0 00 00 00 00 00 00 ff 61 00 01 ff 62 00 01
+ ff 63 00 01 ff 64 00 01 ff 65 00 01 ff 66 00 01
+ ff 67 00 01 ff 68 00 01 ff 69 00 01 ff 6a 00 01
+ ff 6b 00 01 ff 6c 00 01 ff 6d 00 01 ff 6e 00 01
+ ff 6f 00 01 ff 70 00 01 ff 71 00 01 ff 72 00 01
+ ff 73 00 01 ff 74 00 01 ff 75 00 01 ff 76 00 01
+ ff 77 00 01 ff 78 00 01 ff 79 00 01 ff 7a 00 01
+ ff 7b 00 01 ff 7c 00 01 ff 7d 00 01 ff 7e 00 01
+ ff 7f 00 01 ff 80 00 01 ff 81 00 01 ff 82 00 01
+ ff 83 00 01 ff 84 00 01 ff 85 00 01 ff 86 00 01
+ ff 87 00 01 ff 88 00 01 ff 89 00 01 ff 8a 00 01
+ ff 8b 00 01 ff 8c 00 01 ff 8d 00 01 ff 8e 00 01
+ ff 8f 00 01 ff 90 00 01 ff 91 00 01 ff 92 00 01
+ ff 93 00 01 ff 94 00 01 ff 95 00 01 ff 96 00 01
+ ff 97 00 01 ff 98 00 01 ff 99 00 01 ff 9a 00 01
+ ff 9b 00 01 ff 9c 00 01 ff 9d 00 01 ff 9e 00 01
+ ff 9f 00 01 02 11 00 00 01 11 00 00 00 00 00 00
+ 00 08 00 00 00 10 00 00 00 00 00 00 00 0e 14 7b
+ 00 00 00 00 00 01 eb 85 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00
+ 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+/;
+
+opendir(TFM, "tfm") || mkdir("tfm",0755) || die "cannot mkdir tfm";
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+&make_utf_tfm;
+&makejvf;
+
+sub make_utf_tfm {
+ for ($k=0; $k<=6; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}elsif ($k==2){$face="mb";}
+ elsif ($k==3){$face="gb";}elsif ($k==4){$face="mgr";}elsif ($k==5){$face="ml";}
+ elsif ($k==6){$face="ge";}
+ for ($l=0; $l<=0; $l++){#language
+ if ($l==0) {$lang="j";} elsif ($l==1) {$lang="k";}
+ elsif ($l==2) {$lang="c";} elsif ($l==3){$lang="t";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ $varfilename="otf-u$lang$face"."n-$dir";
+ open(DVIPSTFM,">tfm/$varfilename.tfm") || die "Can't make \'tfm/$varfilename.tfm\'!\n";
+ if ($i==0) {
+ if ($lang=="j") {
+ @dvips_tfm = @dvips_tfm_ucs_h;
+ } else {
+ @dvips_tfm = @dvips_tfm_h;
+ }
+ foreach $binary(@dvips_tfm ) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@dvips_tfm_v) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }
+ close(DVIPSTFM);
+ for ($first_hex=0x0; $first_hex <= 0xf; $first_hex++){
+ $filename="utf$lang$face"."n".sprintf("%x",$first_hex)."-$dir";
+ open(TEXTFM,">tfm/$filename.tfm") || die "Can't make \'tfm/$filename.tfm\'!\n";
+ if ($i==0) {
+ if ($lang=="j" && $first_hex==0xf) {
+ @tex_tfm = @tex_tfm_sub_h;
+ } else {
+ @tex_tfm = @tex_tfm_h;
+ }
+ foreach $binary(@tex_tfm ) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@tex_tfm_v) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }
+ close(TEXTFM);
+ }
+ }
+ }
+ }
+}
+
+sub makejvf {
+ for ($k=0; $k<=6; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}elsif ($k==2){$face="mb";}
+ elsif ($k==3){$face="gb";}elsif ($k==4){$face="mgr";}elsif ($k==5){$face="ml";}
+ elsif ($k==6){$face="ge";}
+ for ($l=0; $l<=0; $l++){#language
+ if ($l==0) {$lang="j";} elsif ($l==1) {$lang="k";}
+ elsif ($l==2) {$lang="c";} elsif ($l==3){$lang="t";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ for ($first_hex=0x0; $first_hex <= 0xf; $first_hex++){
+ $filename="utf$lang$face"."n".sprintf("%x",$first_hex)."-$dir";
+ open(OUT, ">ovp/$filename.ovp")||die "$!";
+ &fonthead;
+ print OUT " (FONTNAME otf-u$lang$face"."n-$dir)\n";
+ &fontfoot;
+ &writechar($first_hex);
+ close(OUT);
+ system("ovp2ovf ovp/$filename.ovp vf/$filename.vf vf/$filename.ofm");
+ unlink "vf/$filename.ofm";
+ }
+ }
+ }
+ }
+}
+
+sub fonthead {
+print OUT <<END_OF_DATA;
+(VTITLE JVF for UTF16)
+(OFMLEVEL D 0)
+(DESIGNSIZE R 10.000000)
+(CHECKSUM O 0)
+(MAPFONT D 0
+END_OF_DATA
+}
+
+sub fontfoot {
+print OUT <<END_OF_DATA;
+ (FONTCHECKSUM O 0)
+ (FONTAT R 1.0)
+ (FONTDSIZE R 10.000000)
+ )
+END_OF_DATA
+}
+
+sub writechar {
+ ($hex) = @_;
+ for ($ku=16; $ku <= 79; $ku++){
+ for ($ten=16; $ten <= 79; $ten++){
+ $jis=sprintf("%X", $ku*256 + $ten + 0x2020);
+ if ($ku>=16 && $ku<=79 && $ten>=16 && $ten<=79){
+ $uni=$hex*4096 + ($ku-16)*64 + ($ten-16);
+# } else {
+# $uni=0x3013;
+ }
+ $wd = ($lang eq 'j' && $dir eq 'h' && $uni>=0xFF61 && $uni<=0xFF9F) ? '0.5' : '1.0';
+ $uni=sprintf("%X", $uni);
+ print OUT "(CHARACTER H $jis (CHARWD R $wd) (MAP (SETCHAR H $uni)))\n";
+ }
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkmlcidvf.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkmlcidvf.pl
new file mode 100644
index 00000000000..530966de919
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkmlcidvf.pl
@@ -0,0 +1,117 @@
+#!/usr/bin/perl
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+&makevf;
+
+sub makevf {
+ for ($l=1; $l<=3; $l++){
+ if ($l==1){$lang="c";$max_hex=7;}elsif ($l==2){$lang="k";$max_hex=4;}elsif ($l==3){$lang="t";$max_hex=4;}
+ for ($k=0; $k<=1; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ $cidcode=0;
+ for ($first_hex=0x0; $first_hex <= $max_hex; $first_hex++){
+ $filename="cid$lang$face".sprintf("%x",$first_hex)."-$dir";
+ open(OUT, ">ovp/$filename.ovp")||die "$!";
+ &fonthead;
+ print OUT " (FONTNAME otf-c$lang$face-$dir)\n";
+ &fontfoot;
+ &writechar;
+ close(OUT);
+ system("ovp2ovf ovp/$filename.ovp vf/$filename.vf vf/$filename.ofm");
+ unlink "vf/$filename.ofm";
+ }
+ }
+ }
+ }
+}
+
+sub fonthead {
+if ($lang eq "c"){
+ print OUT "(VTITLE JVF for Adobe-GB1-5)\n"
+}elsif ($lang eq "t"){
+ print OUT "(VTITLE JVF for Adobe-CNS1-7)\n"
+}elsif ($lang eq "k"){
+ print OUT "(VTITLE JVF for Adobe-Korea1-2)\n"
+}
+print OUT <<END_OF_DATA;
+(OFMLEVEL D 0)
+(DESIGNSIZE R 10.000000)
+(CHECKSUM O 0)
+(MAPFONT D 0
+END_OF_DATA
+}
+
+sub fontfoot {
+print OUT <<END_OF_DATA;
+ (FONTCHECKSUM O 0)
+ (FONTAT R 1.0)
+ (FONTDSIZE R 10.000000)
+ )
+END_OF_DATA
+}#2003/10/22 FONTAT 1.0->1.0
+sub printchar {
+ $jiscode=($_[1]+0x20)*256+($_[2]+0x20);
+# &determine_width;
+ $width=1.0;
+ printf OUT "(CHARACTER H %X\n", $jiscode;
+ printf OUT " (CHARWD R %f)\n", $width;
+ print OUT " (MAP\n";
+ printf OUT " (SETCHAR H %X)\n", $cidcode;
+ if (($dir eq "v")&&($width!=1.0)){
+ $correction=1.0-$width;
+ printf OUT " (MOVERIGHT R -%f)\n", $correction;
+ }
+ print OUT " )\n";
+ print OUT " )\n";
+}
+
+sub determine_width{
+ if ($lang eq "c"){#simplified chinese
+ if ($dir eq "h"){
+ if ($cidcode==0){$width=0.5;}
+ }elsif($dir eq "v"){
+ if ($cidcode==0){$width=0.5;}
+ }
+ }elsif ($lang eq "t"){#traditional chinese
+ if ($dir eq "h"){
+ if ($cidcode==0){$width=0.5;}
+ }elsif($dir eq "v"){
+ if ($cidcode==0){$width=0.5;}
+ }
+ }elsif ($lang eq "k"){#korean
+ if ($dir eq "h"){
+ if ($cidcode==0){$width=0.5;}
+ }elsif($dir eq "v"){
+ if ($cidcode==0){$width=0.5;}
+ }
+ }
+ if($width==0){$width=1.0;}
+}
+
+sub printgeta {
+ $jiscode=($_[1]+0x20)*256+($_[2]+0x20);
+ printf OUT "(CHARACTER H %X\n", $jiscode;
+ print OUT " (CHARWD R 1.0)\n";
+ print OUT " (MAP\n";
+ print OUT " (SETCHAR H 0)\n";
+ print OUT " )\n";
+ print OUT " )\n";
+}
+
+sub writechar {
+ for ($ku=16; $ku <= 79; $ku++){
+ for ($ten=16; $ten <= 79; $ten++){
+ if ($ku>=16 && $ku<=79 && $ten>=16 && $ten<=79){
+ return if (($lang eq "c" && $cidcode>30283) # Adobe-GB1-5
+ || ($lang eq "t" && $cidcode>19178) # Adobe-CNS1-7
+ || ($lang eq "k" && $cidcode>18351)); # Adobe-Korea1-2
+ &printchar($first_hex,$ku,$ten);
+ $cidcode++;
+# } else {
+# &printgeta($first_hex,$ku,$ten);
+ }
+ }
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkpkana.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkpkana.pl
new file mode 100644
index 00000000000..6d3aebff9cf
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkpkana.pl
@@ -0,0 +1,276 @@
+#!/usr/bin/perl -s
+
+@min_w3=(7.11, 7.68, 7.17, 7.79, 9.90, 8.21, 8.83, 8.56, 9.14, 7.30, 7.68, 7.97, 8.69, 8.59, 9.15, 9.53, 9.69, 8.34, 9.09, 6.76, 8.31, 9.07, 9.56, 8.05, 8.91, 8.26, 9.19, 8.07, 8.17, 9.16, 9.52, 9.52, 9.79, 8.59, 9.25, 8.94, 9.23, 8.50, 8.98, 8.81, 9.39, 9.65, 8.91, 9.30, 7.62, 8.45, 9.08, 8.94, 9.41, 9.51, 9.29, 9.13, 9.69, 9.58, 8.98, 9.27, 9.33, 9.19, 9.33, 9.36, 9.71, 9.54, 9.51, 9.14, 9.73, 9.77, 8.32, 9.07, 9.22, 9.03, 8.08, 8.68, 9.38, 8.74, 9.33, 7.64, 8.10, 8.14, 7.69, 8.20, 9.76, 8.38, 8.58, 9.24, 8.77, 9.14, 8.78, 9.13, 8.01, 8.69, 7.60, 8.20, 7.89, 8.40, 8.44, 9.23, 8.34, 8.94, 8.64, 9.39, 8.76, 9.05, 8.25, 9.06, 8.84, 9.28, 8.49, 9.10, 9.16, 9.46, 9.02, 8.99, 8.68, 9.24, 9.02, 9.44, 8.23, 9.13, 8.41, 9.32, 8.91, 9.36, 7.86, 8.44, 9.24, 8.85, 9.37, 7.25, 7.95, 8.84, 9.21, 8.11, 9.00, 7.81, 9.46, 9.58, 9.45, 8.14, 8.76, 8.66, 8.12, 9.05, 9.05, 9.68, 9.44, 9.42, 8.85, 9.14, 8.81, 8.86, 7.57, 8.56, 8.20, 9.09, 8.39, 8.95, 8.38, 9.18, 7.94, 8.37, 8.08, 7.60, 9.27, 8.46, 8.51, 7.77, 8.34, 9.19, 9.19, 8.01, 8.71, 9.06, 8.11, 8.18);
+#change : 8.82-->8.83 : 8.08-->8.09
+@min_w6=(7.54, 7.95, 7.43, 7.97, 10.00, 8.44, 9.17, 8.72, 9.46, 7.65, 8.04, 8.20, 8.95, 8.90, 9.52, 9.81, 9.93, 8.64, 9.42, 7.04, 8.52, 9.35, 9.75, 8.30, 9.08, 8.61, 9.53, 8.51, 8.62, 9.44, 9.63, 9.76, 9.92, 8.93, 9.49, 9.25, 9.44, 8.77, 9.25, 8.97, 9.71, 9.80, 9.11, 9.50, 7.89, 8.72, 9.42, 9.18, 9.67, 9.73, 9.57, 9.45, 9.79, 9.77, 9.33, 9.49, 9.53, 9.44, 9.59, 9.59, 9.97, 9.84, 9.82, 9.49, 9.90, 9.92, 8.62, 9.38, 9.57, 9.36, 8.34, 8.93, 9.62, 8.95, 9.64, 7.85, 8.41, 8.39, 8.09, 8.55, 9.96, 8.63, 8.83, 9.58, 9.12, 9.32, 9.14, 9.39, 8.28, 9.01, 7.78, 8.43, 8.24, 8.67, 8.63, 9.50, 8.57, 9.26, 8.90, 9.53, 9.19, 9.40, 8.60, 9.37, 9.05, 9.42, 8.83, 9.30, 9.44, 9.68, 9.22, 9.22, 8.96, 9.48, 9.40, 9.71, 8.49, 9.30, 8.78, 9.56, 9.27, 9.64, 8.12, 8.73, 9.43, 9.20, 9.58, 7.60, 8.16, 9.22, 9.52, 8.42, 9.27, 8.17, 9.77, 9.76, 9.71, 8.42, 9.00, 8.90, 8.46, 9.30, 9.27, 9.95, 9.77, 9.77, 9.19, 9.39, 9.24, 9.17, 7.90, 8.87, 8.55, 9.41, 8.69, 9.24, 8.61, 9.57, 8.23, 8.74, 8.41, 7.91, 9.69, 8.80, 8.95, 8.09, 8.67, 9.50, 9.51, 8.39, 9.03, 9.34, 8.33, 8.39);
+#@min_w6_orig=(7.54, 7.95, 7.43, 7.97, 10.00, 8.44, 9.17, 8.72, 9.46, 7.65, 8.04, 8.20, 8.95, 8.90, 9.52, 9.81, 9.93, 8.64, 9.42, 7.04, 8.52, 9.35, 9.75, 8.30, 9.08, 8.61, 9.53, 8.51, 8.62, 9.44, 9.63, 9.76, 9.92, 8.93, 9.49, 9.25, 9.44, 8.77, 9.25, 8.97, 9.71, 9.80, 9.11, 9.50, 7.89, 8.72, 9.42, 9.18, 9.67, 9.73, 9.57, 9.45, 9.79, 9.77, 9.33, 9.49, 9.53, 9.44, 9.59, 9.59, 9.97, 9.84, 9.82, 9.49, 9.90, 9.92, 8.62, 9.38, 9.57, 9.36, 8.34, 8.93, 9.62, 8.95, 9.64, 7.85, 8.41, 8.39, 8.09, 8.55, 9.96, 8.63, 8.82, 9.58, 9.12, 9.32, 9.14, 9.39, 8.28, 9.01, 7.78, 8.43, 8.24, 8.67, 8.63, 9.50, 8.57, 9.26, 8.90, 9.53, 9.19, 9.40, 8.60, 9.37, 9.05, 9.42, 8.83, 9.30, 9.44, 9.68, 9.22, 9.22, 8.96, 9.48, 9.40, 9.71, 8.49, 9.30, 8.78, 9.56, 9.27, 9.64, 8.12, 8.73, 9.43, 9.20, 9.58, 7.60, 8.16, 9.22, 9.52, 8.42, 9.27, 8.17, 9.77, 9.76, 9.71, 8.42, 9.00, 8.90, 8.46, 9.30, 9.27, 9.95, 9.77, 9.77, 9.19, 9.39, 9.24, 9.17, 7.90, 8.87, 8.55, 9.41, 8.69, 9.24, 8.61, 9.57, 8.23, 8.74, 8.41, 7.91, 9.69, 8.80, 8.95, 8.08, 8.67, 9.50, 9.51, 8.39, 9.03, 9.34, 8.33, 8.39);
+@goth_w3=(7.19, 7.69, 7.23, 7.72, 10.00, 8.56, 9.18, 8.67, 9.30, 8.08, 8.51, 8.34, 9.14, 8.77, 9.37, 9.49, 9.68, 8.87, 9.49, 7.64, 8.34, 9.16, 9.66, 8.37, 8.90, 8.71, 8.97, 8.58, 8.65, 9.17, 9.53, 9.44, 9.73, 9.27, 9.40, 9.22, 9.28, 8.83, 8.92, 8.66, 9.26, 9.54, 8.93, 9.26, 8.30, 8.56, 9.45, 9.16, 9.51, 9.67, 9.35, 9.44, 9.73, 9.66, 9.26, 9.48, 9.39, 9.40, 9.61, 9.51, 9.69, 9.64, 9.50, 9.48, 9.79, 9.72, 8.98, 9.38, 9.33, 9.27, 8.82, 8.72, 9.25, 8.78, 9.41, 8.09, 8.63, 8.59, 8.33, 8.86, 9.62, 8.70, 8.82, 9.46, 9.02, 9.34, 9.05, 9.20, 8.37, 9.00, 8.26, 8.91, 8.40, 8.81, 8.63, 9.36, 8.66, 9.18, 9.04, 9.37, 9.27, 9.31, 8.68, 9.55, 9.28, 9.52, 8.88, 9.40, 9.26, 9.62, 8.94, 9.42, 9.06, 9.50, 9.17, 9.54, 8.47, 9.04, 8.75, 9.67, 9.25, 9.55, 8.15, 8.86, 9.41, 9.22, 9.64, 8.02, 8.26, 9.13, 9.23, 8.46, 9.23, 8.40, 9.45, 9.63, 9.53, 8.60, 9.23, 9.15, 8.57, 9.27, 9.11, 9.62, 9.56, 9.56, 9.46, 9.51, 9.50, 8.99, 8.39, 9.20, 8.64, 9.42, 8.49, 9.16, 8.43, 9.22, 8.44, 8.91, 8.71, 8.16, 9.46, 8.61, 9.26, 8.32, 8.71, 9.47, 9.32, 8.49, 8.85, 9.33, 8.51, 8.63);
+@goth_w6=(7.49, 8.00, 7.53, 8.09, 10.00, 8.77, 9.41, 8.95, 9.52, 8.27, 8.74, 8.56, 9.33, 9.02, 9.62, 9.72, 9.82, 9.09, 9.49, 7.92, 8.50, 9.37, 9.82, 8.65, 9.00, 9.02, 9.30, 8.84, 8.94, 9.33, 9.66, 9.65, 9.86, 9.48, 9.64, 9.45, 9.51, 9.05, 9.16, 8.84, 9.41, 9.68, 9.12, 9.42, 8.62, 8.78, 9.66, 9.42, 9.72, 9.82, 9.69, 9.69, 9.85, 9.80, 9.52, 9.71, 9.63, 9.62, 9.78, 9.73, 9.76, 9.76, 9.73, 9.73, 9.88, 9.90, 9.24, 9.62, 9.52, 9.54, 9.10, 8.90, 9.49, 8.98, 9.63, 8.36, 8.95, 8.81, 8.59, 9.11, 9.82, 8.94, 9.07, 9.71, 9.29, 9.53, 9.33, 9.47, 8.61, 9.24, 8.44, 9.13, 8.61, 9.06, 8.83, 9.52, 8.88, 9.39, 9.33, 9.53, 9.45, 9.54, 8.96, 9.57, 9.43, 9.66, 9.15, 9.59, 9.42, 9.72, 9.22, 9.50, 9.32, 9.73, 9.36, 9.63, 8.76, 9.19, 9.00, 9.65, 9.48, 9.63, 8.40, 9.13, 9.53, 9.38, 9.67, 8.30, 8.48, 9.32, 9.42, 8.70, 9.46, 8.70, 9.66, 9.78, 9.75, 8.88, 9.41, 9.33, 8.81, 9.42, 9.31, 9.77, 9.73, 9.71, 9.67, 9.71, 9.72, 9.19, 8.64, 9.40, 8.92, 9.61, 8.73, 9.39, 8.65, 9.37, 8.72, 9.19, 8.97, 8.43, 9.64, 8.90, 9.51, 8.51, 8.97, 9.64, 9.52, 8.76, 9.12, 9.51, 8.80, 8.74);
+@maru_w4=(7.45, 8.15, 7.63, 8.08, 10.00, 8.72, 9.32, 8.97, 9.58, 8.32, 8.78, 8.61, 9.36, 8.97, 9.54, 9.58, 9.79, 9.15, 9.66, 8.04, 8.72, 9.39, 9.78, 8.88, 9.27, 9.03, 9.34, 8.91, 9.00, 9.41, 9.72, 9.61, 9.87, 9.43, 9.69, 9.37, 9.57, 9.11, 9.28, 8.83, 9.44, 9.71, 9.25, 9.50, 8.66, 8.88, 9.55, 9.38, 9.62, 9.83, 9.58, 9.56, 9.80, 9.75, 9.52, 9.62, 9.63, 9.52, 9.74, 9.74, 9.73, 9.72, 9.69, 9.62, 9.93, 9.88, 9.28, 9.57, 9.48, 9.48, 9.15, 8.90, 9.46, 9.00, 9.62, 8.45, 9.04, 8.94, 8.71, 9.12, 9.81, 9.09, 9.02, 9.66, 9.35, 9.50, 9.45, 9.39, 8.50, 9.17, 8.33, 8.96, 8.72, 9.18, 8.73, 9.36, 8.69, 9.32, 9.23, 9.55, 9.34, 9.55, 8.90, 9.67, 9.41, 9.69, 9.16, 9.55, 9.46, 9.80, 9.32, 9.74, 9.25, 9.67, 9.33, 9.63, 8.80, 9.44, 8.95, 9.73, 9.36, 9.61, 8.48, 9.04, 9.57, 9.33, 9.74, 8.57, 8.70, 9.26, 9.22, 8.79, 9.40, 8.66, 9.41, 9.56, 9.55, 8.84, 9.46, 9.40, 8.91, 9.73, 9.73, 9.66, 9.62, 9.59, 9.52, 9.69, 9.71, 9.17, 8.87, 9.39, 8.81, 9.49, 8.73, 9.31, 8.61, 9.35, 8.74, 9.22, 8.95, 8.63, 9.49, 9.01, 9.54, 8.71, 9.02, 9.57, 9.35, 8.93, 9.04, 9.66, 8.74, 8.73);
+@charwidth=([@min_w3], [@min_w6], [@goth_w3], [@goth_w6], [@maru_w4]);
+@character=("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "");
+@font_name=("phiraminw3-h", "phiraminw6-h", "phirakakuw3-h", "phirakakuw6-h", "phiramaruw4-h");
+@kanji_font_name=("hminr-h", "hminb-h", "hgothr-h", "hgothb-h", "hmgothr-h");
+@kana_font_name=("hiramin-w3-h", "hiramin-w6-h", "hirakaku-w3-h", "hirakaku-w6-h", "hiramaru-w4-h");
+$font_at=1.0;
+$half_width= ($font_at / 2);
+$quater_width= ($font_at / 4);
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+opendir(JPL, "pl") || mkdir("pl",0755) || die "cannot mkdir pl";
+opendir(JFM, "tfm") || mkdir("tfm",0755) || die "cannot mkdir tfm";
+closedir(OVP);
+closedir(VF);
+closedir(JPL);
+closedir(JFM);
+
+#main
+for ($i=0; $i<=4; $i++){
+ open (JPL, ">pl/$font_name[$i].pl");
+ &tfm_head_h;
+ &chars_in_type_jis;
+ &chars_in_type_prop;
+ &print_type_jis;
+ &print_type_prop;
+ &glue_kern;
+ close(JPL);
+}
+for ($i=0; $i<=4; $i++){
+ @prop_odori_h=(0x3C59, 0x3C5A, 0x3C5B, 0x3C5C, 0x3C5F);
+ $hiracode=15517;
+ $katacode=15608;
+ $prop_char_num=0;
+ open (OVP, ">ovp/$font_name[$i].ovp");
+ &fonthead;
+ &write_char;
+ close(OVP);
+}
+#
+#sub rtn
+#
+sub tfm_head_h {
+ print JPL "(FAMILY PROP KANA)\n";
+ print JPL "(FACE F MRR)\n";
+ print JPL "(CODINGSCHEME TEX KANJI TEXT)\n";
+ print JPL "(DESIGNSIZE R 10.0)\n";
+ print JPL "(CHECKSUM O 0)\n";
+ print JPL "(SEVENBITSAFEFLAG TRUE)\n";
+ print JPL "(FONTDIMEN\n";
+ print JPL " (SLANT R 0.0)\n";
+ print JPL " (SPACE R 0.0)\n";
+ printf JPL " (STRETCH R %f)\n", $font_at/10;
+ print JPL " (SHRINK R 0.0)\n";
+ printf JPL " (XHEIGHT R %f)\n", $font_at;
+ printf JPL " (QUAD R %f)\n", $font_at;
+ printf JPL " (EXTRASPACE R %f)\n", $font_at/4;
+ printf JPL " (EXTRASTRETCH R %f)\n", $font_at/5;
+ printf JPL " (EXTRASHRINK R %f)\n", $font_at/8;
+ print JPL " )\n";
+}
+sub char_foot_h {
+ printf JPL " (CHARHT R %f)\n", $font_at*0.88;
+ printf JPL " (CHARDP R %f)\n", $font_at*0.12;
+ print JPL " )\n";
+}
+sub glue_kern{
+ print JPL "(GLUEKERN\n";
+ print JPL " (LABEL O 5)\n";
+ print JPL " (KRN O 5 R 0.0)\n";
+ print JPL " (LABEL O 0)\n";
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (LABEL H %X)\n",($char+7);
+ }
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ print JPL " (LABEL O 1)\n";
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 2)\n";
+ printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ print JPL " (LABEL O 6)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+7), $half_width, $half_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 4)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width+$quater_width, $quater_width;
+ printf JPL " (GLUE O 5 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R 0.0)\n", $half_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R 0.0)\n",($char+7), $half_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 3)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 2 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width, $quater_width;
+ printf JPL " (GLUE O 4 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+7), $quater_width, $quater_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " )\n";
+}
+sub chars_in_type_jis{
+print JPL <<END_OF_DATA;
+(CHARSINTYPE O 1
+
+ )
+(CHARSINTYPE O 2
+
+ )
+(CHARSINTYPE O 3
+
+ )
+(CHARSINTYPE O 4
+
+ )
+(CHARSINTYPE O 5
+
+ )
+(CHARSINTYPE O 6
+
+ )
+END_OF_DATA
+}
+sub print_type_jis{
+ @type_width=($font_at, $half_width, $half_width, $half_width, $half_width, $font_at, $font_at);
+ for ($k=0; $k<=6; $k++){
+ printf JPL "(TYPE H %x\n", $k;
+ printf JPL " (CHARWD R %f)\n", $type_width[$k];
+ &char_foot_h;
+ }
+}
+sub fonthead {
+ print OVP "(VTITLE Prop Kana)\n";
+ print OVP "(OFMLEVEL D 0)\n";
+ print OVP "(DESIGNSIZE R 10.000000)\n";
+ print OVP "(CHECKSUM O 0)\n";
+ print OVP "(MAPFONT D 1\n";
+ print OVP " (FONTNAME $kanji_font_name[$i])\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n", $font_at;
+ print OVP " (FONTDSIZE R 10.000000)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $kana_font_name[$i])\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n", $font_at;
+ print OVP " (FONTDSIZE R 10.000000)\n";
+ print OVP " )\n";
+}
+sub write_char {
+ for ($ku=1; $ku<=94; $ku++){
+ next if (!$allku && (($ku>=9&&$ku<=15) || $ku>=85));
+ for ($ten=1; $ten<=94; $ten++){
+ $jiscode=($ku+32)*256+($ten+32);
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_hira_char;}
+ elsif($ku==5){&print_kata_char;}else{&print_char;}
+ }
+ }
+}
+sub print_char{
+ return if ($omitfw);
+ $jiscode=($ku+32)*256+($ten+32);
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n", $font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SETCHAR H %X)\n",$jiscode;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_kigo_char{
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ if ($jiscode>=0x2146 && $jiscode<=0x215B){#Kakko
+ $width=$half_width;
+ } elsif ($jiscode>=0x2122 && $jiscode<=0x2128){#Kutouten
+ $width=$half_width;
+ } elsif ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#odoriji
+ $width=($charwidth[$i][$prop_char_num]/10);
+ $prop_char_num++;
+ } else{
+ $width=$font_at;
+ }
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ if ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#Odoriji, Cho-on
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ if (0x2126 <= $jiscode && $jiscode <= 0x2128){#colon, semicolon, nakaten
+ printf OVP " (MOVERIGHT R -%f)\n",$quater_width;}
+ if (0x2146 <= $jiscode && $jiscode <= 0x215B && ($jiscode%2)==0){#Kakko
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ if ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#odoriji
+ $odorijicode= shift(@prop_odori_h);
+ printf OVP " (SETCHAR H %X)\n",$odorijicode;
+ } else {
+ printf OVP " (SETCHAR H %X)\n",$jiscode;
+ }
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_hira_char{
+ $width=($charwidth[$i][$prop_char_num]/10);
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 2)\n";
+ printf OVP " (SETCHAR H %X)\n",$hiracode;
+ print OVP " )\n";
+ print OVP " )\n";
+ $hiracode++;
+ if($ten<=83){$prop_char_num++;}
+}
+sub print_kata_char{
+ $width=($charwidth[$i][$prop_char_num]/10);
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 2)\n";
+ printf OVP " (SETCHAR H %X)\n",$katacode;
+ print OVP " )\n";
+ print OVP " )\n";
+ $katacode++;
+ $prop_char_num++;
+}
+sub chars_in_type_prop{
+ %char_width_hash=();
+ for ($j=0; $j<=$#min_w3; $j++){
+ $char_width_hash{$character[$j]}=$charwidth[$i][$j]/10;
+ }
+ $x = '-';
+ @uniq_char_width_array = grep( $_ ne $x && ($x = $_), sort values(%char_width_hash));
+ for ($j=0; $j<=$#uniq_char_width_array; $j++){
+ printf JPL "(CHARSINTYPE H %X\n",($j+7);
+ print JPL " ";
+ @char_in_this_type = ();
+ while (($name, $value) = each(%char_width_hash)) {
+ if ($value == $uniq_char_width_array[$j]){
+ push(@char_in_this_type, $name);
+ }
+ }
+ @char_in_this_type = sort @char_in_this_type;
+ foreach $char_in_this(@char_in_this_type){
+ print JPL "$char_in_this ";#character
+ }
+ print JPL "\n";
+ print JPL " )\n";
+ }
+}
+sub print_type_prop{
+ for ($j=0; $j<=$#uniq_char_width_array; $j++){
+ $char_width=$uniq_char_width_array[$j];
+ printf JPL "(TYPE H %X\n", ($j+7);
+ printf JPL " (CHARWD R %f)\n", $char_width;
+ &char_foot_h;
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkpropofm.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkpropofm.pl
new file mode 100644
index 00000000000..b697cd5192a
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkpropofm.pl
@@ -0,0 +1,86 @@
+%min_w3=("1" => 3.33, "2" => 3.32, "3" => 3.39, "4" => 6.78, "5" => 6.27, "6" => 8.27, "7" => 8.05, "8" => 1.88, "9" => 3.14, "10" => 3.14, "11" => 3.92, "12" => 6.78, "13" => 3.14, "14" => 3.30, "15" => 3.14, "16" => 3.92, "17" => 5.88, "18" => 5.88, "19" => 5.88, "20" => 5.88, "21" => 5.88, "22" => 5.88, "23" => 5.88, "24" => 5.88, "25" => 5.88, "26" => 5.88, "27" => 3.14, "28" => 3.14, "29" => 5.00, "30" => 6.78, "31" => 5.00, "32" => 5.95, "33" => 8.42, "34" => 7.38, "35" => 6.64, "36" => 7.059999, "37" => 7.61, "38" => 6.33, "39" => 5.92, "40" => 7.60, "41" => 7.97, "42" => 3.52, "43" => 4.76, "44" => 7.01, "45" => 5.90, "46" => 9.29, "47" => 7.96, "48" => 7.98, "49" => 6.18, "50" => 7.98, "51" => 6.81, "52" => 5.63, "53" => 6.57, "54" => 7.69, "55" => 7.32, "56" => 10.01, "57" => 7.20, "58" => 7.17, "59" => 6.59, "60" => 3.14, "61" => 6.50, "62" => 3.14, "63" => 5.00, "64" => 5.00, "65" => 5.00, "66" => 5.45, "67" => 6.01, "68" => 5.26, "69" => 6.07, "70" => 5.35, "71" => 3.28, "72" => 5.33, "73" => 6.19, "74" => 2.95, "75" => 2.91, "76" => 5.54, "77" => 2.96, "78" => 8.99, "79" => 6.16, "80" => 5.83, "81" => 5.97, "82" => 5.93, "83" => 4.11, "84" => 4.45, "85" => 3.36, "86" => 5.93, "87" => 5.60, "88" => 7.93, "89" => 5.39, "90" => 5.47, "91" => 4.92, "92" => 3.14, "93" => 5.00, "94" => 3.14, "95" => 5.00, "96" => 2.94, "97" => 3.92, "98" => 2.94, "99" => 5.00, "100" => 5.00, "101" => 3.32, "102" => 6.27, "103" => 6.50, "104" => 1.52, "105" => 6.27, "106" => 6.27, "107" => 5.45, "108" => 4.90, "109" => 4.18, "110" => 2.55, "111" => 2.55, "112" => 5.78, "113" => 5.78, "114" => 5.00, "115" => 6.27, "116" => 6.27, "117" => 3.14, "118" => 5.98, "119" => 6.27, "120" => 2.94, "121" => 4.90, "122" => 4.90, "123" => 4.18, "124" => 9.41, "125" => 12.11, "126" => 5.95, "127" => 5.00, "128" => 5.00, "129" => 5.00, "130" => 5.00, "131" => 5.00, "132" => 5.00, "133" => 5.00, "134" => 5.00, "135" => 5.00, "136" => 5.00, "137" => 5.00, "139" => 9.69, "140" => 3.92, "141" => 5.90, "142" => 7.98, "143" => 10.21, "144" => 3.92, "145" => 8.23, "146" => 2.95, "147" => 2.96, "148" => 5.83, "149" => 8.83, "150" => 5.95, "151" => 6.78, "152" => 7.13, "153" => 6.78, "154" => 7.13, "155" => 3.55, "156" => 6.78, "157" => 3.92, "158" => 3.92, "159" => 6.27, "160" => 3.14, "161" => 9.41, "162" => 9.41, "163" => 9.41, "164" => 7.38, "165" => 7.38, "166" => 7.38, "167" => 7.38, "168" => 7.38, "169" => 7.38, "170" => 7.059999, "171" => 6.33, "172" => 6.33, "173" => 6.33, "174" => 6.33, "175" => 3.52, "176" => 3.52, "177" => 3.52, "178" => 3.52, "179" => 7.61, "180" => 7.96, "181" => 7.98, "182" => 7.98, "183" => 7.98, "184" => 7.98, "185" => 7.98, "186" => 6.78, "187" => 7.69, "188" => 7.69, "189" => 7.69, "190" => 7.69, "191" => 7.17, "192" => 6.37, "193" => 5.45, "194" => 5.45, "195" => 5.45, "196" => 5.45, "197" => 5.45, "198" => 5.45, "199" => 5.26, "200" => 5.35, "201" => 5.35, "202" => 5.35, "203" => 5.35, "204" => 2.95, "205" => 2.95, "206" => 2.95, "207" => 2.95, "208" => 5.809999, "209" => 6.16, "210" => 5.83, "211" => 5.83, "212" => 5.83, "213" => 5.83, "214" => 5.83, "215" => 6.78, "216" => 5.93, "217" => 5.93, "218" => 5.93, "219" => 5.93, "220" => 5.47, "221" => 5.97, "222" => 5.47, "223" => 5.63, "224" => 7.17, "225" => 6.59, "226" => 5.00, "227" => 4.45, "228" => 9.89, "229" => 4.92, "230" => 5.88, "231" => 5.00, "232" => 5.00, "233" => 5.00, "234" => 5.00, "235" => 5.00, "236" => 5.00, "237" => 5.00, "238" => 5.00, "239" => 5.00, "240" => 5.00, "241" => 5.00, "242" => 5.00, "243" => 5.00, "244" => 5.00, "245" => 5.00, "246" => 5.00, "247" => 5.00, "248" => 5.00, "249" => 5.00, "250" => 5.00, "251" => 5.00, "252" => 5.00, "253" => 5.00, "254" => 5.00, "255" => 5.00, "256" => 5.00, "257" => 5.00, "258" => 5.00, "259" => 5.00, "260" => 5.00, "261" => 5.00, "262" => 5.00, "263" => 5.00, "264" => 5.00, "265" => 5.00, "266" => 5.00, "267" => 5.00, "268" => 5.00, "269" => 5.00, "270" => 5.00, "271" => 5.00, "272" => 5.00, "273" => 5.00, "274" => 5.00, "275" => 5.00, "276" => 5.00, "277" => 5.00, "278" => 5.00, "279" => 5.00, "280" => 5.00, "281" => 5.00, "282" => 5.00, "283" => 5.00, "284" => 5.00, "285" => 5.00, "286" => 5.00, "287" => 5.00, "288" => 5.00, "289" => 5.00, "290" => 5.00, "291" => 5.00, "292" => 5.00, "293" => 5.00, "294" => 5.00, "295" => 5.00, "296" => 5.00, "297" => 5.00, "298" => 5.00, "299" => 5.00, "300" => 5.00, "301" => 5.00, "302" => 5.00, "303" => 5.00, "304" => 5.00, "305" => 5.00, "306" => 5.00, "307" => 5.00, "308" => 5.00, "309" => 5.00, "310" => 5.00, "311" => 5.00, "312" => 5.00, "313" => 5.00, "314" => 5.00, "315" => 5.00, "316" => 5.00, "317" => 5.00, "318" => 5.00, "319" => 5.00, "320" => 5.00, "321" => 5.00, "322" => 5.00, "323" => 5.00, "324" => 5.00, "325" => 5.00, "326" => 5.00, "327" => 5.00, "328" => 5.00, "329" => 5.00, "330" => 5.00, "331" => 5.00, "332" => 5.00, "333" => 5.00, "334" => 5.00, "335" => 5.00, "336" => 5.00, "337" => 5.00, "338" => 5.00, "339" => 5.00, "340" => 5.00, "341" => 5.00, "342" => 5.00, "343" => 5.00, "344" => 5.00, "345" => 5.00, "346" => 5.00, "347" => 5.00, "348" => 5.00, "349" => 5.00, "350" => 5.00, "351" => 5.00, "352" => 5.00, "353" => 5.00, "354" => 5.00, "355" => 5.00, "356" => 5.00, "357" => 5.00, "358" => 5.00, "359" => 5.00, "360" => 5.00, "361" => 5.00, "362" => 5.00, "363" => 5.00, "364" => 5.00, "365" => 5.00, "366" => 5.00, "367" => 5.00, "368" => 5.00, "369" => 5.00, "370" => 5.00, "371" => 5.00, "372" => 5.00, "373" => 5.00, "374" => 5.00, "375" => 5.00, "376" => 5.00, "377" => 5.00, "378" => 5.00, "379" => 5.00, "380" => 5.00, "381" => 5.00, "382" => 5.00, "383" => 5.00, "384" => 5.00, "385" => 5.00, "386" => 5.00, "387" => 5.00, "388" => 5.00, "389" => 5.00, "390" => 5.00, "391" => 5.00, "392" => 5.00, "393" => 5.00, "394" => 5.00, "395" => 5.00, "396" => 5.00, "397" => 5.00, "398" => 5.00, "399" => 5.00, "400" => 5.00, "401" => 5.00, "402" => 5.00, "403" => 5.00, "404" => 5.00, "405" => 5.00, "406" => 5.00, "407" => 5.00, "408" => 5.00, "409" => 5.00, "410" => 5.00, "411" => 5.00, "412" => 5.00, "413" => 5.00, "414" => 5.00, "415" => 5.00, "416" => 5.00, "417" => 5.00, "418" => 5.00, "419" => 5.00, "420" => 5.00, "421" => 5.00, "422" => 5.00, "423" => 5.00, "424" => 5.00, "425" => 5.00, "426" => 5.00, "427" => 5.00, "428" => 5.00, "429" => 5.00, "430" => 5.00, "431" => 5.00, "432" => 5.00, "433" => 5.00, "434" => 5.00, "435" => 5.00, "436" => 5.00, "437" => 5.00, "438" => 5.00, "439" => 5.00, "440" => 5.00, "441" => 5.00, "442" => 5.00, "443" => 5.00, "444" => 5.00, "445" => 5.00, "446" => 5.00, "447" => 5.00, "448" => 5.00, "449" => 5.00, "450" => 5.00, "451" => 5.00, "452" => 5.00, "453" => 5.00, "454" => 5.00, "455" => 5.00, "456" => 5.00, "457" => 5.00, "458" => 5.00, "459" => 5.00, "460" => 5.00, "461" => 5.00, "462" => 5.00, "463" => 5.00, "464" => 5.00, "465" => 5.00, "466" => 5.00, "467" => 5.00, "468" => 5.00, "469" => 5.00, "470" => 5.00, "471" => 5.00, "472" => 5.00, "473" => 5.00, "474" => 5.00, "475" => 5.00, "476" => 5.00, "477" => 5.00, "478" => 5.00, "479" => 5.00, "480" => 5.00, "481" => 5.00, "482" => 5.00, "483" => 5.00, "484" => 5.00, "485" => 5.00, "486" => 5.00, "487" => 5.00, "488" => 5.00, "489" => 5.00, "490" => 5.00, "491" => 5.00, "492" => 5.00, "493" => 5.00, "494" => 5.00, "495" => 5.00, "496" => 5.00, "497" => 5.00, "498" => 5.00, "499" => 5.00, "500" => 5.00, "501" => 5.00, "502" => 5.00, "503" => 5.00, "504" => 5.00, "505" => 5.00, "506" => 5.00, "507" => 5.00, "508" => 5.00, "509" => 5.00, "510" => 5.00, "511" => 5.00, "512" => 5.00, "513" => 5.00, "514" => 5.00, "515" => 5.00, "516" => 5.00, "517" => 5.00, "518" => 5.00, "519" => 5.00, "520" => 5.00, "521" => 5.00, "522" => 5.00, "523" => 5.00, "524" => 5.00, "525" => 5.00, "526" => 5.00, "527" => 5.00, "528" => 5.00, "529" => 5.00, "530" => 5.00, "531" => 5.00, "532" => 5.00, "533" => 5.00, "534" => 5.00, "535" => 5.00, "536" => 5.00, "537" => 5.00, "538" => 5.00, "539" => 5.00, "540" => 5.00, "541" => 5.00, "542" => 5.00, "543" => 5.00, "544" => 5.00, "545" => 5.00, "546" => 5.00, "547" => 5.00, "548" => 5.00, "549" => 5.00, "550" => 5.00, "551" => 5.00, "552" => 5.00, "553" => 5.00, "554" => 5.00, "555" => 5.00, "556" => 5.00, "557" => 5.00, "558" => 5.00, "559" => 5.00, "560" => 5.00, "561" => 5.00, "562" => 5.00, "563" => 5.00, "564" => 5.00, "565" => 5.00, "566" => 5.00, "567" => 5.00, "568" => 5.00, "569" => 5.00, "570" => 5.00, "571" => 5.00, "572" => 5.00, "573" => 5.00, "574" => 5.00, "575" => 5.00, "576" => 5.00, "577" => 5.00, "578" => 5.00, "579" => 5.00, "580" => 5.00, "581" => 5.00, "582" => 5.00, "583" => 5.00, "584" => 5.00, "585" => 5.00, "586" => 5.00, "587" => 5.00, "588" => 5.00, "589" => 5.00, "590" => 5.00, "591" => 5.00, "592" => 5.00, "593" => 5.00, "594" => 5.00, "595" => 5.00, "596" => 5.00, "597" => 5.00, "598" => 5.00, "599" => 5.00, "600" => 5.00, "601" => 5.00, "602" => 5.00, "603" => 5.00, "604" => 5.00, "605" => 5.00, "606" => 5.00, "607" => 5.00, "608" => 5.00, "609" => 5.00, "610" => 5.00, "611" => 5.00, "612" => 5.00, "613" => 5.00, "614" => 5.00, "615" => 5.00, "616" => 5.00, "617" => 5.00, "618" => 5.00, "619" => 5.00, "620" => 5.00, "621" => 5.00, "622" => 5.00, "623" => 5.00, "624" => 5.00, "625" => 5.00, "626" => 5.00, "627" => 5.00, "628" => 5.00, "629" => 5.00, "630" => 5.00, "631" => 5.00, "632" => 5.00, "8718" => 5.00, "8719" => 5.00, "9354" => 6.50, "9355" => 8.53, "9356" => 2.13, "9357" => 3.61, "9358" => 6.13, "9359" => 8.63, "9360" => 8.63, "9361" => 5.45, "9362" => 2.95, "9363" => 5.93, "9364" => 5.35, "9365" => 5.83, "9366" => 7.38, "9367" => 3.52, "9368" => 7.69, "9369" => 6.33, "9370" => 7.98, "9371" => 9.41, "9372" => 9.41, "9373" => 9.41, "9374" => 9.41, "9375" => 9.41, "9376" => 9.41, "9377" => 3.92, "9378" => 3.92, "9379" => 3.92, "9380" => 3.92, "9381" => 3.92, "9382" => 3.92, "9383" => 3.92, "9384" => 3.92, "9385" => 3.14, "9386" => 3.92, "9387" => 3.92, "9388" => 3.92, "9389" => 3.92, "9390" => 3.92, "9391" => 3.92, "9392" => 3.92, "9393" => 3.92, "9394" => 7.38, "9395" => 6.33, "9396" => 6.33, "9397" => 6.33, "9398" => 3.52, "9399" => 3.52, "9400" => 3.52, "9401" => 7.98, "9402" => 7.98, "9403" => 7.69, "9404" => 7.69, "9405" => 7.69, "9406" => 5.45, "9407" => 5.35, "9408" => 5.35, "9409" => 5.35, "9410" => 2.95, "9411" => 2.95, "9412" => 2.95, "9413" => 5.83, "9414" => 5.83, "9415" => 5.93, "9416" => 5.93, "9417" => 5.93, "9418" => 5.98, "9419" => 5.98, "9420" => 5.98, "9421" => 8.23, "9422" => 8.23, "9423" => 5.26, "9424" => 5.26, "9425" => 5.26, "9426" => 5.35, "9427" => 5.35, "9428" => 5.35, "9429" => 6.94, "9430" => 6.94, "9431" => 6.94, "9432" => 4.90, "9433" => 4.90, "9434" => 4.90, "9435" => 2.91, "9436" => 6.06, "9437" => 5.83, "9438" => 5.60, "9439" => 5.60, "9440" => 5.60, "9441" => 5.04, "9442" => 3.34, "9443" => 3.00, "9444" => 3.33, "9445" => 3.30, "9446" => 3.34, "9447" => 6.03, "9448" => 6.03, "9449" => 8.10, "9450" => 8.20, "9451" => 1.87, "9452" => 3.10, "9453" => 3.10, "9454" => 3.85, "9455" => 6.78, "9456" => 3.10, "9457" => 3.62, "9458" => 3.10, "9459" => 3.83, "9460" => 6.03, "9461" => 6.03, "9462" => 6.03, "9463" => 6.03, "9464" => 6.03, "9465" => 6.03, "9466" => 6.03, "9467" => 6.03, "9468" => 6.03, "9469" => 6.03, "9470" => 3.10, "9471" => 3.10, "9472" => 5.47, "9473" => 6.78, "9474" => 5.47, "9475" => 5.86, "9476" => 8.25, "9477" => 7.45, "9478" => 6.52, "9479" => 6.91, "9480" => 7.46, "9481" => 6.21, "9482" => 5.809999, "9483" => 7.45, "9484" => 7.81, "9485" => 3.46, "9486" => 4.67, "9487" => 6.95, "9488" => 5.82, "9489" => 9.09, "9490" => 7.79, "9491" => 7.82, "9492" => 6.07, "9493" => 7.81, "9494" => 6.86, "9495" => 5.52, "9496" => 6.52, "9497" => 7.53, "9498" => 7.29, "9499" => 9.969999, "9500" => 7.11, "9501" => 7.12, "9502" => 6.45, "9503" => 3.10, "9504" => 6.41, "9505" => 3.10, "9506" => 5.00, "9507" => 4.85, "9508" => 5.00, "9509" => 5.80, "9510" => 5.38, "9511" => 4.67, "9512" => 5.82, "9513" => 5.01, "9514" => 3.39, "9515" => 5.41, "9516" => 6.04, "9517" => 2.96, "9518" => 2.84, "9519" => 5.47, "9520" => 2.91, "9521" => 8.87, "9522" => 6.28, "9523" => 5.56, "9524" => 5.79, "9525" => 5.440001, "9526" => 4.51, "9527" => 4.34, "9528" => 3.33, "9529" => 5.95, "9530" => 5.32, "9531" => 7.96, "9532" => 5.96, "9533" => 5.70, "9534" => 4.47, "9535" => 3.10, "9536" => 5.00, "9537" => 3.10, "9538" => 5.00, "9539" => 2.91, "9540" => 3.83, "9541" => 2.91, "9542" => 5.00, "9543" => 5.02, "9544" => 3.29, "9545" => 6.03, "9546" => 6.03, "9547" => 1.44, "9548" => 4.94, "9549" => 6.17, "9550" => 5.45, "9551" => 4.83, "9552" => 4.23, "9553" => 2.64, "9554" => 2.64, "9555" => 5.94, "9556" => 5.97, "9557" => 5.00, "9558" => 6.15, "9559" => 6.16, "9560" => 3.10, "9561" => 5.80, "9562" => 6.03, "9563" => 2.91, "9564" => 4.83, "9565" => 4.83, "9566" => 4.23, "9567" => 9.309999, "9568" => 11.849999, "9569" => 5.83, "9570" => 5.00, "9571" => 5.00, "9572" => 5.00, "9573" => 5.00, "9574" => 5.00, "9575" => 5.00, "9576" => 5.00, "9577" => 5.00, "9578" => 5.00, "9579" => 5.00, "9580" => 5.00, "9582" => 9.53, "9583" => 3.80, "9584" => 5.82, "9585" => 7.82, "9586" => 9.89, "9587" => 3.80, "9588" => 8.09, "9589" => 2.96, "9590" => 3.03, "9591" => 5.56, "9592" => 8.679999, "9593" => 5.76, "9594" => 6.78, "9595" => 7.13, "9596" => 6.78, "9597" => 7.13, "9598" => 3.55, "9599" => 6.78, "9600" => 3.80, "9601" => 3.80, "9602" => 5.91, "9603" => 3.80, "9604" => 8.99, "9605" => 8.99, "9606" => 8.99, "9607" => 7.45, "9608" => 7.45, "9609" => 7.45, "9610" => 7.45, "9611" => 7.45, "9612" => 7.45, "9613" => 6.91, "9614" => 6.21, "9615" => 6.21, "9616" => 6.21, "9617" => 6.21, "9618" => 3.46, "9619" => 3.46, "9620" => 3.46, "9621" => 3.46, "9622" => 7.46, "9623" => 7.79, "9624" => 7.82, "9625" => 7.82, "9626" => 7.82, "9627" => 7.82, "9628" => 7.82, "9629" => 6.78, "9630" => 7.53, "9631" => 7.53, "9632" => 7.53, "9633" => 7.53, "9634" => 7.12, "9635" => 6.31, "9636" => 5.80, "9637" => 5.80, "9638" => 5.80, "9639" => 5.80, "9640" => 5.80, "9641" => 5.80, "9642" => 4.65, "9643" => 5.01, "9644" => 5.01, "9645" => 5.01, "9646" => 5.01, "9647" => 2.96, "9648" => 2.96, "9649" => 2.96, "9650" => 2.96, "9651" => 5.56, "9652" => 6.28, "9653" => 5.56, "9654" => 5.56, "9655" => 5.56, "9656" => 5.56, "9657" => 5.56, "9658" => 6.78, "9659" => 5.95, "9660" => 5.95, "9661" => 5.95, "9662" => 5.95, "9663" => 5.70, "9664" => 5.80, "9665" => 5.70, "9666" => 5.52, "9667" => 7.12, "9668" => 6.45, "9669" => 4.85, "9670" => 4.34, "9671" => 10.039999, "9672" => 4.47, "9673" => 6.03, "9674" => 6.35, "9675" => 8.61, "9676" => 2.13, "9677" => 3.61, "9678" => 6.35, "9679" => 8.93, "9680" => 8.94, "9681" => 5.80, "9682" => 2.96, "9683" => 5.95, "9684" => 5.01, "9685" => 5.56, "9686" => 7.45, "9687" => 3.46, "9688" => 7.53, "9689" => 6.21, "9690" => 7.82, "9691" => 9.00, "9692" => 8.99, "9693" => 8.99, "9694" => 8.99, "9695" => 8.99, "9696" => 8.99, "9697" => 3.80, "9698" => 3.80, "9699" => 3.80, "9700" => 3.80, "9701" => 3.80, "9702" => 3.80, "9703" => 3.80, "9704" => 3.80, "9705" => 3.80, "9706" => 3.80, "9707" => 3.80, "9708" => 3.80, "9709" => 3.80, "9710" => 3.80, "9711" => 3.80, "9712" => 3.80, "9713" => 3.80, "9714" => 7.45, "9715" => 6.21, "9716" => 6.21, "9717" => 6.21, "9718" => 3.46, "9719" => 3.46, "9720" => 3.46, "9721" => 7.82, "9722" => 7.82, "9723" => 7.53, "9724" => 7.53, "9725" => 7.53, "9726" => 5.80, "9727" => 5.01, "9728" => 5.01, "9729" => 5.01, "9730" => 2.96, "9731" => 2.96, "9732" => 2.96, "9733" => 5.56, "9734" => 5.56, "9735" => 5.95, "9736" => 5.95, "9737" => 5.95, "9738" => 2.50, "9739" => 2.50, "9740" => 2.50, "9741" => 2.50, "9742" => 2.50, "9743" => 2.50, "9744" => 2.50, "9745" => 2.50, "9746" => 2.50, "9747" => 2.50, "9748" => 2.50, "9749" => 2.50, "9750" => 2.50, "9751" => 2.50, "9752" => 2.50, "9753" => 2.50, "9754" => 2.50, "9755" => 2.50, "9756" => 2.50, "9757" => 2.50, "9758" => 3.33, "9759" => 3.33, "9760" => 3.33, "9761" => 3.33, "9762" => 3.33, "9763" => 3.33, "9764" => 3.33, "9765" => 3.33, "9766" => 3.33, "9767" => 3.33, "9768" => 3.33, "9769" => 3.33, "9770" => 3.33, "9771" => 3.33, "9772" => 3.33, "9773" => 3.33, "9774" => 3.33, "9775" => 3.33, "9776" => 3.33, "9777" => 3.33, "9778" => 3.33, "12063" => 5.00, "12064" => 5.00, "12065" => 5.00, "12066" => 5.00, "12067" => 5.00, "12068" => 5.00, "12069" => 5.00, "12070" => 5.00, "12071" => 5.00, "12072" => 5.00, "12073" => 5.00, "12074" => 5.00, "12075" => 5.00, "12076" => 5.00, "12077" => 5.00, "12078" => 5.00, "12079" => 5.00, "12080" => 5.00, "12081" => 5.00, "12082" => 5.00, "12083" => 5.00, "12084" => 5.00, "12085" => 5.00, "12086" => 5.00, "12087" => 5.00, "15444" => 3.33, "15445" => 3.33, "15446" => 3.33, "15447" => 3.33, "15448" => 3.33, "15449" => 7.11, "15450" => 7.68, "15451" => 7.17, "15452" => 7.79, "15453" => 7.69, "15454" => 8.690001, "15455" => 9.90, "15456" => 6.78, "15457" => 6.78, "15458" => 6.78, "15459" => 6.78, "15460" => 6.78, "15461" => 10.43, "15462" => 8.09, "15463" => 8.03, "15464" => 6.78, "15465" => 6.78, "15466" => 6.78, "15467" => 6.78, "15468" => 6.78, "15469" => 6.78, "15470" => 6.78, "15471" => 6.78, "15472" => 6.78, "15473" => 6.78, "15474" => 6.78, "15475" => 6.78, "15476" => 6.78, "15477" => 8.08, "15478" => 6.78, "15479" => 6.78, "15480" => 6.78, "15481" => 6.78, "15482" => 8.67, "15483" => 8.67, "15484" => 7.18, "15485" => 7.18, "15486" => 8.67, "15487" => 8.67, "15488" => 8.67, "15489" => 6.78, "15490" => 6.78, "15491" => 6.78, "15492" => 6.78, "15493" => 6.03, "15494" => 7.45, "15495" => 6.78, "15496" => 6.78, "15497" => 6.78, "15498" => 6.78, "15499" => 5.71, "15500" => 6.78, "15501" => 6.78, "15502" => 6.78, "15503" => 3.83, "15504" => 6.29, "15505" => 6.78, "15506" => 6.78, "15507" => 6.78, "15508" => 6.78, "15509" => 6.78, "15510" => 6.78, "15511" => 8.67, "15512" => 6.78, "15513" => 6.97, "15514" => 6.04, "15515" => 8.53, "15516" => 5.00, "15517" => 8.21, "15518" => 8.83, "15519" => 8.56, "15520" => 9.139999, "15521" => 7.30, "15522" => 7.68, "15523" => 7.97, "15524" => 8.690001, "15525" => 8.59, "15526" => 9.150001, "15527" => 9.53, "15528" => 9.69, "15529" => 8.34, "15530" => 9.09, "15531" => 6.76, "15532" => 8.309999, "15533" => 9.07, "15534" => 9.559999, "15535" => 8.05, "15536" => 8.91, "15537" => 8.26, "15538" => 9.190001, "15539" => 8.07, "15540" => 8.17, "15541" => 9.16, "15542" => 9.52, "15543" => 9.52, "15544" => 9.79, "15545" => 8.59, "15546" => 9.25, "15547" => 8.94, "15548" => 9.23, "15549" => 8.50, "15550" => 8.98, "15551" => 8.809999, "15552" => 9.39, "15553" => 9.65, "15554" => 8.91, "15555" => 9.30, "15556" => 7.62, "15557" => 8.450001, "15558" => 9.08, "15559" => 8.94, "15560" => 9.41, "15561" => 9.51, "15562" => 9.29, "15563" => 9.13, "15564" => 9.599999, "15565" => 9.58, "15566" => 8.98, "15567" => 9.27, "15568" => 9.33, "15569" => 9.190001, "15570" => 9.33, "15571" => 9.36, "15572" => 9.700001, "15573" => 9.54, "15574" => 9.51, "15575" => 9.139999, "15576" => 9.73, "15577" => 9.77, "15578" => 8.32, "15579" => 9.07, "15580" => 9.22, "15581" => 9.03, "15582" => 8.08, "15583" => 8.679999, "15584" => 9.38, "15585" => 8.74, "15586" => 9.33, "15587" => 7.64, "15588" => 8.10, "15589" => 8.14, "15590" => 7.69, "15591" => 8.20, "15592" => 9.76, "15593" => 8.38, "15594" => 8.58, "15595" => 9.24, "15596" => 8.77, "15597" => 9.139999, "15598" => 8.780001, "15599" => 9.13, "15600" => 8.73, "15601" => 8.75, "15602" => 8.360001, "15603" => 9.67, "15604" => 9.06, "15605" => 8.190001, "15606" => 9.49, "15607" => 8.83, "15608" => 8.01, "15609" => 8.690001, "15610" => 7.60, "15611" => 8.20, "15612" => 7.89, "15613" => 8.40, "15614" => 8.44, "15615" => 9.23, "15616" => 8.34, "15617" => 8.94, "15618" => 8.64, "15619" => 9.39, "15620" => 8.76, "15621" => 9.049999, "15622" => 8.25, "15623" => 9.06, "15624" => 8.84, "15625" => 9.28, "15626" => 8.49, "15627" => 9.10, "15628" => 9.16, "15629" => 9.46, "15630" => 9.02, "15631" => 8.99, "15632" => 8.679999, "15633" => 9.24, "15634" => 9.02, "15635" => 9.440001, "15636" => 8.23, "15637" => 9.13, "15638" => 8.41, "15639" => 9.32, "15640" => 8.91, "15641" => 9.36, "15642" => 7.86, "15643" => 8.44, "15644" => 9.24, "15645" => 8.85, "15646" => 9.37, "15647" => 7.25, "15648" => 7.95, "15649" => 8.84, "15650" => 9.21, "15651" => 8.11, "15652" => 9.00, "15653" => 7.81, "15654" => 9.46, "15655" => 9.58, "15656" => 9.45, "15657" => 8.14, "15658" => 8.76, "15659" => 8.66, "15660" => 8.12, "15661" => 9.049999, "15662" => 9.049999, "15663" => 9.68, "15664" => 9.440001, "15665" => 9.42, "15666" => 8.85, "15667" => 9.139999, "15668" => 8.809999, "15669" => 8.86, "15670" => 7.57, "15671" => 8.56, "15672" => 8.20, "15673" => 9.09, "15674" => 8.389999, "15675" => 8.95, "15676" => 8.38, "15677" => 9.18, "15678" => 7.940001, "15679" => 8.37, "15680" => 8.08, "15681" => 7.60, "15682" => 9.27, "15683" => 8.46, "15684" => 8.51, "15685" => 7.77, "15686" => 8.34, "15687" => 9.190001, "15688" => 9.190001, "15689" => 8.01, "15690" => 8.71, "15691" => 9.06, "15692" => 8.11, "15693" => 8.18, "15694" => 9.35, "15695" => 9.00, "15696" => 9.02, "15697" => 9.21, "15698" => 9.01, "15699" => 9.36, "15700" => 9.150001, "15701" => 7.73, "15702" => 7.68, "15703" => 8.389999, "15704" => 8.00, "15705" => 7.02, "15706" => 7.65, "15707" => 8.60, "15708" => 7.83, "15709" => 7.61, "15710" => 8.809999, "15711" => 8.27, "15712" => 8.40, "15713" => 7.92, "15714" => 7.80, "15715" => 7.39, "15716" => 8.59, "15717" => 8.059999, "15718" => 8.13, "15719" => 9.20, "15720" => 9.41, "15721" => 9.47, "15722" => 8.91, "15723" => 7.53, "15724" => 8.04, "15725" => 6.78, "15726" => 6.78, "15727" => 9.41, "15728" => 8.32, "15729" => 9.29, "15730" => 8.99, "15731" => 7.96, "15732" => 6.16, "15733" => 5.93, "15734" => 5.93, "15735" => 5.93, "15736" => 5.93, "15737" => 7.38, "15738" => 5.00, "15739" => 5.90, "15740" => 5.63, "15741" => 5.63, "15742" => 6.57, "15743" => 6.59, "15744" => 6.59, "15745" => 5.45, "15746" => 5.00, "15747" => 2.96, "15748" => 4.45, "15749" => 5.00, "15750" => 4.45, "15751" => 3.36, "15752" => 4.92, "15753" => 5.00, "15754" => 4.92, "15755" => 6.81, "15756" => 7.38, "15757" => 5.90, "15758" => 7.059999, "15759" => 7.059999, "15760" => 6.33, "15761" => 7.61, "15762" => 7.96, "15763" => 7.96, "15764" => 7.98, "15765" => 6.81, "15766" => 7.69, "15767" => 6.57, "15768" => 4.11, "15769" => 5.45, "15770" => 2.96, "15771" => 5.26, "15772" => 5.26, "15773" => 5.35, "15774" => 6.07, "15775" => 6.07, "15776" => 6.16, "15777" => 6.16, "15778" => 5.83, "15779" => 4.11, "15780" => 5.93, "15781" => 3.36, "15782" => 5.00, "15783" => 7.059999, "15784" => 7.60, "15785" => 7.97, "15786" => 4.76, "15787" => 5.63, "15788" => 7.69, "15789" => 5.26, "15790" => 5.33, "15791" => 6.19, "15792" => 2.91, "15793" => 4.45, "15794" => 5.93, "15795" => 8.88, "15796" => 5.40, "15797" => 3.73, "15798" => 4.27, "15799" => 6.12, "15800" => 4.11, "15801" => 3.36, "15802" => 6.10, "15803" => 6.13, "15804" => 4.03, "15805" => 4.45, "15806" => 5.22, "15807" => 4.11, "15808" => 2.76, "15809" => 3.28, "15810" => 6.16, "15811" => 3.51, "15812" => 5.47, "15813" => 5.93, "15814" => 8.87, "15815" => 5.47, "15816" => 6.21, "15817" => 4.65, "15818" => 4.65, "15819" => 6.19, "15820" => 7.98, "15821" => 4.45, "15822" => 6.01, "15823" => 6.19, "15824" => 3.42, "15825" => 6.12, "15826" => 7.60, "15827" => 3.02, "15828" => 6.00, "15829" => 5.35, "15830" => 4.90, "15831" => 5.83, "15832" => 5.45, "15833" => 8.99, "15834" => 5.97, "15835" => 5.65, "15836" => 5.98, "15837" => 7.93, "15838" => 6.19, "15839" => 4.65, "15840" => 4.65, "15841" => 5.26, "15842" => 5.05, "15843" => 4.14, "15844" => 6.09, "15845" => 0.00, "15846" => 1.45, "15847" => 1.45, "15848" => 3.00, "15849" => 0.00, "15850" => 5.00, "15851" => 4.07, "15852" => 4.07, "15853" => 4.07, "15854" => 4.07, "15855" => 4.07, "15856" => 4.15, "15857" => 4.15, "15858" => 5.00, "15859" => 5.00, "15860" => 5.00, "15861" => 5.00, "15862" => 5.00, "15863" => 5.00, "15864" => 5.00, "15865" => 5.00, "15866" => 5.00, "15867" => 1.62, "15868" => 5.00, "15869" => 5.00, "15870" => 5.00, "15871" => 5.00, "15872" => 5.00, "15873" => 5.00, "15874" => 5.00, "15875" => 5.00, "15876" => 5.00, "15877" => 5.00, "15878" => 5.00, "15879" => 3.81, "15880" => 3.83, "15881" => 6.78, "15882" => 6.78, "15883" => 5.61, "15884" => 5.63, "15885" => 2.95, "15886" => 5.90, "15887" => 8.26, "15888" => 6.55, "15889" => 5.47, "15890" => 5.35, "15891" => 5.46, "15892" => 6.37, "15893" => 4.73, "15894" => 3.71, "15895" => 2.53, "15896" => 4.72, "15897" => 2.81, "15898" => 3.32, "15899" => 1.84, "15900" => 4.91, "15901" => 6.79, "15902" => 8.75, "15903" => 6.78, "15904" => 6.78, "15905" => 8.67, "15906" => 9.049999, "15907" => 9.04, "15908" => 3.66, "15909" => 5.94, "15910" => 5.39, "15911" => 5.16, "15912" => 8.61, "15913" => 5.00, "15914" => 8.99, "15915" => 9.09, "15916" => 8.87, "15917" => 7.79, "15918" => 6.28, "15919" => 5.95, "15920" => 5.95, "15921" => 5.95, "15922" => 5.95, "15923" => 7.45, "15924" => 5.82, "15925" => 5.52, "15926" => 5.52, "15927" => 6.52, "15928" => 6.45, "15929" => 6.45, "15930" => 5.80, "15931" => 2.91, "15932" => 4.34, "15933" => 4.34, "15934" => 3.33, "15935" => 4.47, "15936" => 4.47, "15937" => 6.86, "15938" => 7.45, "15939" => 5.82, "15940" => 6.91, "15941" => 6.91, "15942" => 6.21, "15943" => 7.46, "15944" => 7.79, "15945" => 7.79, "15946" => 7.82, "15947" => 6.86, "15948" => 7.53, "15949" => 6.52, "15950" => 4.51, "15951" => 5.80, "15952" => 2.91, "15953" => 4.67, "15954" => 4.67, "15955" => 5.01, "15956" => 5.82, "15957" => 5.82, "15958" => 6.28, "15959" => 6.28, "15960" => 5.56, "15961" => 4.51, "15962" => 5.95, "15963" => 3.33, "15964" => 6.91, "15965" => 7.45, "15966" => 7.81, "15967" => 4.67, "15968" => 5.52, "15969" => 7.53, "15970" => 4.67, "15971" => 5.41, "15972" => 6.04, "15973" => 2.84, "15974" => 4.34, "15975" => 5.95);
+%min_w6=("1" => 3.33, "2" => 3.28, "3" => 3.79, "4" => 6.85, "5" => 6.40, "6" => 8.63, "7" => 8.190001, "8" => 2.07, "9" => 3.20, "10" => 3.20, "11" => 4.02, "12" => 6.85, "13" => 3.20, "14" => 3.39, "15" => 3.20, "16" => 3.94, "17" => 6.14, "18" => 6.14, "19" => 6.14, "20" => 6.14, "21" => 6.14, "22" => 6.14, "23" => 6.14, "24" => 6.14, "25" => 6.14, "26" => 6.14, "27" => 3.20, "28" => 3.20, "29" => 5.00, "30" => 6.85, "31" => 5.00, "32" => 6.26, "33" => 8.75, "34" => 7.87, "35" => 7.04, "36" => 7.41, "37" => 7.97, "38" => 6.60, "39" => 6.24, "40" => 7.85, "41" => 8.33, "42" => 3.89, "43" => 5.07, "44" => 7.58, "45" => 6.14, "46" => 9.75, "47" => 8.05, "48" => 8.15, "49" => 6.53, "50" => 8.15, "51" => 7.26, "52" => 5.94, "53" => 6.98, "54" => 7.91, "55" => 7.82, "56" => 10.50, "57" => 7.52, "58" => 7.59, "59" => 6.67, "60" => 3.20, "61" => 7.29, "62" => 3.20, "63" => 5.00, "64" => 5.00, "65" => 5.00, "66" => 5.75, "67" => 6.29, "68" => 5.440001, "69" => 6.26, "70" => 5.60, "71" => 3.61, "72" => 5.48, "73" => 6.66, "74" => 3.33, "75" => 3.25, "76" => 6.07, "77" => 3.35, "78" => 9.71, "79" => 6.63, "80" => 6.06, "81" => 6.33, "82" => 6.29, "83" => 4.55, "84" => 4.74, "85" => 3.68, "86" => 6.27, "87" => 5.94, "88" => 8.34, "89" => 5.72, "90" => 5.89, "91" => 5.08, "92" => 3.20, "93" => 5.00, "94" => 3.20, "95" => 5.00, "96" => 3.11, "97" => 3.94, "98" => 3.11, "99" => 5.00, "100" => 5.00, "101" => 3.28, "102" => 6.40, "103" => 6.90, "104" => 1.55, "105" => 6.40, "106" => 6.40, "107" => 5.65, "108" => 5.35, "109" => 4.44, "110" => 2.71, "111" => 2.71, "112" => 6.53, "113" => 6.52, "114" => 5.00, "115" => 6.40, "116" => 6.40, "117" => 3.20, "118" => 6.14, "119" => 6.40, "120" => 3.11, "121" => 5.35, "122" => 5.35, "123" => 4.44, "124" => 9.599999, "125" => 12.78, "126" => 6.26, "127" => 5.00, "128" => 5.00, "129" => 5.00, "130" => 5.00, "131" => 5.00, "132" => 5.00, "133" => 5.00, "134" => 5.00, "135" => 5.00, "136" => 5.00, "137" => 5.00, "139" => 10.26, "140" => 4.02, "141" => 6.14, "142" => 8.15, "143" => 10.83, "144" => 4.02, "145" => 8.55, "146" => 3.33, "147" => 3.35, "148" => 6.06, "149" => 9.26, "150" => 6.65, "151" => 6.85, "152" => 7.39, "153" => 6.85, "154" => 7.39, "155" => 3.57, "156" => 6.85, "157" => 4.02, "158" => 4.02, "159" => 6.40, "160" => 3.66, "161" => 9.599999, "162" => 9.599999, "163" => 9.599999, "164" => 7.87, "165" => 7.87, "166" => 7.87, "167" => 7.87, "168" => 7.87, "169" => 7.87, "170" => 7.41, "171" => 6.60, "172" => 6.60, "173" => 6.60, "174" => 6.60, "175" => 3.89, "176" => 3.89, "177" => 3.89, "178" => 3.89, "179" => 7.97, "180" => 8.05, "181" => 8.15, "182" => 8.15, "183" => 8.15, "184" => 8.15, "185" => 8.15, "186" => 6.85, "187" => 7.91, "188" => 7.91, "189" => 7.91, "190" => 7.91, "191" => 7.59, "192" => 6.86, "193" => 5.75, "194" => 5.75, "195" => 5.75, "196" => 5.75, "197" => 5.75, "198" => 5.75, "199" => 5.440001, "200" => 5.60, "201" => 5.60, "202" => 5.60, "203" => 5.60, "204" => 3.33, "205" => 3.33, "206" => 3.33, "207" => 3.33, "208" => 6.05, "209" => 6.63, "210" => 6.06, "211" => 6.06, "212" => 6.06, "213" => 6.06, "214" => 6.06, "215" => 6.85, "216" => 6.27, "217" => 6.27, "218" => 6.27, "219" => 6.27, "220" => 5.89, "221" => 6.37, "222" => 5.89, "223" => 5.94, "224" => 7.59, "225" => 6.67, "226" => 5.00, "227" => 4.74, "228" => 10.440001, "229" => 5.08, "230" => 6.12, "231" => 5.00, "232" => 5.00, "233" => 5.00, "234" => 5.00, "235" => 5.00, "236" => 5.00, "237" => 5.00, "238" => 5.00, "239" => 5.00, "240" => 5.00, "241" => 5.00, "242" => 5.00, "243" => 5.00, "244" => 5.00, "245" => 5.00, "246" => 5.00, "247" => 5.00, "248" => 5.00, "249" => 5.00, "250" => 5.00, "251" => 5.00, "252" => 5.00, "253" => 5.00, "254" => 5.00, "255" => 5.00, "256" => 5.00, "257" => 5.00, "258" => 5.00, "259" => 5.00, "260" => 5.00, "261" => 5.00, "262" => 5.00, "263" => 5.00, "264" => 5.00, "265" => 5.00, "266" => 5.00, "267" => 5.00, "268" => 5.00, "269" => 5.00, "270" => 5.00, "271" => 5.00, "272" => 5.00, "273" => 5.00, "274" => 5.00, "275" => 5.00, "276" => 5.00, "277" => 5.00, "278" => 5.00, "279" => 5.00, "280" => 5.00, "281" => 5.00, "282" => 5.00, "283" => 5.00, "284" => 5.00, "285" => 5.00, "286" => 5.00, "287" => 5.00, "288" => 5.00, "289" => 5.00, "290" => 5.00, "291" => 5.00, "292" => 5.00, "293" => 5.00, "294" => 5.00, "295" => 5.00, "296" => 5.00, "297" => 5.00, "298" => 5.00, "299" => 5.00, "300" => 5.00, "301" => 5.00, "302" => 5.00, "303" => 5.00, "304" => 5.00, "305" => 5.00, "306" => 5.00, "307" => 5.00, "308" => 5.00, "309" => 5.00, "310" => 5.00, "311" => 5.00, "312" => 5.00, "313" => 5.00, "314" => 5.00, "315" => 5.00, "316" => 5.00, "317" => 5.00, "318" => 5.00, "319" => 5.00, "320" => 5.00, "321" => 5.00, "322" => 5.00, "323" => 5.00, "324" => 5.00, "325" => 5.00, "326" => 5.00, "327" => 5.00, "328" => 5.00, "329" => 5.00, "330" => 5.00, "331" => 5.00, "332" => 5.00, "333" => 5.00, "334" => 5.00, "335" => 5.00, "336" => 5.00, "337" => 5.00, "338" => 5.00, "339" => 5.00, "340" => 5.00, "341" => 5.00, "342" => 5.00, "343" => 5.00, "344" => 5.00, "345" => 5.00, "346" => 5.00, "347" => 5.00, "348" => 5.00, "349" => 5.00, "350" => 5.00, "351" => 5.00, "352" => 5.00, "353" => 5.00, "354" => 5.00, "355" => 5.00, "356" => 5.00, "357" => 5.00, "358" => 5.00, "359" => 5.00, "360" => 5.00, "361" => 5.00, "362" => 5.00, "363" => 5.00, "364" => 5.00, "365" => 5.00, "366" => 5.00, "367" => 5.00, "368" => 5.00, "369" => 5.00, "370" => 5.00, "371" => 5.00, "372" => 5.00, "373" => 5.00, "374" => 5.00, "375" => 5.00, "376" => 5.00, "377" => 5.00, "378" => 5.00, "379" => 5.00, "380" => 5.00, "381" => 5.00, "382" => 5.00, "383" => 5.00, "384" => 5.00, "385" => 5.00, "386" => 5.00, "387" => 5.00, "388" => 5.00, "389" => 5.00, "390" => 5.00, "391" => 5.00, "392" => 5.00, "393" => 5.00, "394" => 5.00, "395" => 5.00, "396" => 5.00, "397" => 5.00, "398" => 5.00, "399" => 5.00, "400" => 5.00, "401" => 5.00, "402" => 5.00, "403" => 5.00, "404" => 5.00, "405" => 5.00, "406" => 5.00, "407" => 5.00, "408" => 5.00, "409" => 5.00, "410" => 5.00, "411" => 5.00, "412" => 5.00, "413" => 5.00, "414" => 5.00, "415" => 5.00, "416" => 5.00, "417" => 5.00, "418" => 5.00, "419" => 5.00, "420" => 5.00, "421" => 5.00, "422" => 5.00, "423" => 5.00, "424" => 5.00, "425" => 5.00, "426" => 5.00, "427" => 5.00, "428" => 5.00, "429" => 5.00, "430" => 5.00, "431" => 5.00, "432" => 5.00, "433" => 5.00, "434" => 5.00, "435" => 5.00, "436" => 5.00, "437" => 5.00, "438" => 5.00, "439" => 5.00, "440" => 5.00, "441" => 5.00, "442" => 5.00, "443" => 5.00, "444" => 5.00, "445" => 5.00, "446" => 5.00, "447" => 5.00, "448" => 5.00, "449" => 5.00, "450" => 5.00, "451" => 5.00, "452" => 5.00, "453" => 5.00, "454" => 5.00, "455" => 5.00, "456" => 5.00, "457" => 5.00, "458" => 5.00, "459" => 5.00, "460" => 5.00, "461" => 5.00, "462" => 5.00, "463" => 5.00, "464" => 5.00, "465" => 5.00, "466" => 5.00, "467" => 5.00, "468" => 5.00, "469" => 5.00, "470" => 5.00, "471" => 5.00, "472" => 5.00, "473" => 5.00, "474" => 5.00, "475" => 5.00, "476" => 5.00, "477" => 5.00, "478" => 5.00, "479" => 5.00, "480" => 5.00, "481" => 5.00, "482" => 5.00, "483" => 5.00, "484" => 5.00, "485" => 5.00, "486" => 5.00, "487" => 5.00, "488" => 5.00, "489" => 5.00, "490" => 5.00, "491" => 5.00, "492" => 5.00, "493" => 5.00, "494" => 5.00, "495" => 5.00, "496" => 5.00, "497" => 5.00, "498" => 5.00, "499" => 5.00, "500" => 5.00, "501" => 5.00, "502" => 5.00, "503" => 5.00, "504" => 5.00, "505" => 5.00, "506" => 5.00, "507" => 5.00, "508" => 5.00, "509" => 5.00, "510" => 5.00, "511" => 5.00, "512" => 5.00, "513" => 5.00, "514" => 5.00, "515" => 5.00, "516" => 5.00, "517" => 5.00, "518" => 5.00, "519" => 5.00, "520" => 5.00, "521" => 5.00, "522" => 5.00, "523" => 5.00, "524" => 5.00, "525" => 5.00, "526" => 5.00, "527" => 5.00, "528" => 5.00, "529" => 5.00, "530" => 5.00, "531" => 5.00, "532" => 5.00, "533" => 5.00, "534" => 5.00, "535" => 5.00, "536" => 5.00, "537" => 5.00, "538" => 5.00, "539" => 5.00, "540" => 5.00, "541" => 5.00, "542" => 5.00, "543" => 5.00, "544" => 5.00, "545" => 5.00, "546" => 5.00, "547" => 5.00, "548" => 5.00, "549" => 5.00, "550" => 5.00, "551" => 5.00, "552" => 5.00, "553" => 5.00, "554" => 5.00, "555" => 5.00, "556" => 5.00, "557" => 5.00, "558" => 5.00, "559" => 5.00, "560" => 5.00, "561" => 5.00, "562" => 5.00, "563" => 5.00, "564" => 5.00, "565" => 5.00, "566" => 5.00, "567" => 5.00, "568" => 5.00, "569" => 5.00, "570" => 5.00, "571" => 5.00, "572" => 5.00, "573" => 5.00, "574" => 5.00, "575" => 5.00, "576" => 5.00, "577" => 5.00, "578" => 5.00, "579" => 5.00, "580" => 5.00, "581" => 5.00, "582" => 5.00, "583" => 5.00, "584" => 5.00, "585" => 5.00, "586" => 5.00, "587" => 5.00, "588" => 5.00, "589" => 5.00, "590" => 5.00, "591" => 5.00, "592" => 5.00, "593" => 5.00, "594" => 5.00, "595" => 5.00, "596" => 5.00, "597" => 5.00, "598" => 5.00, "599" => 5.00, "600" => 5.00, "601" => 5.00, "602" => 5.00, "603" => 5.00, "604" => 5.00, "605" => 5.00, "606" => 5.00, "607" => 5.00, "608" => 5.00, "609" => 5.00, "610" => 5.00, "611" => 5.00, "612" => 5.00, "613" => 5.00, "614" => 5.00, "615" => 5.00, "616" => 5.00, "617" => 5.00, "618" => 5.00, "619" => 5.00, "620" => 5.00, "621" => 5.00, "622" => 5.00, "623" => 5.00, "624" => 5.00, "625" => 5.00, "626" => 5.00, "627" => 5.00, "628" => 5.00, "629" => 5.00, "630" => 5.00, "631" => 5.00, "632" => 5.00, "8718" => 5.00, "8719" => 5.00, "9354" => 6.52, "9355" => 8.64, "9356" => 2.34, "9357" => 4.05, "9358" => 6.88, "9359" => 9.71, "9360" => 9.77, "9361" => 5.75, "9362" => 3.33, "9363" => 6.27, "9364" => 5.60, "9365" => 6.06, "9366" => 7.87, "9367" => 3.89, "9368" => 7.91, "9369" => 6.60, "9370" => 8.15, "9371" => 9.599999, "9372" => 9.599999, "9373" => 9.599999, "9374" => 9.599999, "9375" => 9.599999, "9376" => 9.599999, "9377" => 4.02, "9378" => 4.02, "9379" => 4.02, "9380" => 4.02, "9381" => 4.02, "9382" => 4.02, "9383" => 4.02, "9384" => 4.02, "9385" => 3.66, "9386" => 4.02, "9387" => 4.02, "9388" => 4.02, "9389" => 4.02, "9390" => 4.02, "9391" => 4.02, "9392" => 4.02, "9393" => 4.02, "9394" => 7.87, "9395" => 6.60, "9396" => 6.60, "9397" => 6.60, "9398" => 3.89, "9399" => 3.89, "9400" => 3.89, "9401" => 8.15, "9402" => 8.15, "9403" => 7.91, "9404" => 7.91, "9405" => 7.91, "9406" => 5.75, "9407" => 5.60, "9408" => 5.60, "9409" => 5.60, "9410" => 3.33, "9411" => 3.33, "9412" => 3.33, "9413" => 6.06, "9414" => 6.06, "9415" => 6.27, "9416" => 6.27, "9417" => 6.27, "9418" => 6.25, "9419" => 6.25, "9420" => 6.25, "9421" => 8.55, "9422" => 8.55, "9423" => 5.440001, "9424" => 5.440001, "9425" => 5.440001, "9426" => 5.60, "9427" => 5.60, "9428" => 5.60, "9429" => 7.73, "9430" => 7.73, "9431" => 7.73, "9432" => 5.08, "9433" => 5.08, "9434" => 5.08, "9435" => 3.25, "9436" => 6.52, "9437" => 6.06, "9438" => 5.94, "9439" => 5.94, "9440" => 5.94, "9441" => 5.24, "9442" => 3.73, "9443" => 3.20, "9444" => 3.33, "9445" => 3.28, "9446" => 3.79, "9447" => 6.85, "9448" => 6.40, "9449" => 8.64, "9450" => 8.29, "9451" => 2.07, "9452" => 3.20, "9453" => 3.20, "9454" => 4.02, "9455" => 6.85, "9456" => 3.20, "9457" => 3.39, "9458" => 3.20, "9459" => 3.94, "9460" => 6.14, "9461" => 6.14, "9462" => 6.14, "9463" => 6.14, "9464" => 6.14, "9465" => 6.14, "9466" => 6.14, "9467" => 6.14, "9468" => 6.14, "9469" => 6.14, "9470" => 3.20, "9471" => 3.20, "9472" => 5.54, "9473" => 6.85, "9474" => 5.54, "9475" => 6.26, "9476" => 8.75, "9477" => 7.82, "9478" => 7.04, "9479" => 7.07, "9480" => 7.98, "9481" => 6.81, "9482" => 6.19, "9483" => 7.73, "9484" => 8.29, "9485" => 3.95, "9486" => 4.98, "9487" => 7.76, "9488" => 6.06, "9489" => 9.53, "9490" => 7.75, "9491" => 8.09, "9492" => 6.51, "9493" => 8.08, "9494" => 7.43, "9495" => 5.97, "9496" => 6.82, "9497" => 7.84, "9498" => 7.79, "9499" => 10.43, "9500" => 7.52, "9501" => 7.55, "9502" => 6.31, "9503" => 3.20, "9504" => 7.29, "9505" => 3.20, "9506" => 5.00, "9507" => 5.00, "9508" => 5.00, "9509" => 6.17, "9510" => 5.87, "9511" => 4.91, "9512" => 6.34, "9513" => 5.54, "9514" => 3.73, "9515" => 5.86, "9516" => 6.46, "9517" => 3.46, "9518" => 3.16, "9519" => 6.08, "9520" => 3.54, "9521" => 9.639999, "9522" => 6.78, "9523" => 5.809999, "9524" => 6.40, "9525" => 5.85, "9526" => 4.74, "9527" => 4.82, "9528" => 3.63, "9529" => 6.50, "9530" => 5.78, "9531" => 8.679999, "9532" => 6.35, "9533" => 6.13, "9534" => 5.16, "9535" => 3.20, "9536" => 5.00, "9537" => 3.20, "9538" => 5.00, "9539" => 3.11, "9540" => 3.94, "9541" => 3.11, "9542" => 5.00, "9543" => 6.14, "9544" => 3.28, "9545" => 6.40, "9546" => 6.90, "9547" => 1.57, "9548" => 5.809999, "9549" => 6.40, "9550" => 5.65, "9551" => 5.35, "9552" => 4.44, "9553" => 2.71, "9554" => 2.71, "9555" => 6.73, "9556" => 6.86, "9557" => 5.00, "9558" => 6.40, "9559" => 6.40, "9560" => 3.20, "9561" => 6.14, "9562" => 6.40, "9563" => 3.11, "9564" => 5.35, "9565" => 5.35, "9566" => 4.44, "9567" => 9.48, "9568" => 12.790001, "9569" => 6.26, "9570" => 5.00, "9571" => 5.00, "9572" => 5.00, "9573" => 5.00, "9574" => 5.00, "9575" => 5.00, "9576" => 5.00, "9577" => 5.00, "9578" => 5.00, "9579" => 5.00, "9580" => 5.00, "9582" => 10.06, "9583" => 4.06, "9584" => 6.06, "9585" => 8.09, "9586" => 10.82, "9587" => 4.06, "9588" => 8.40, "9589" => 3.46, "9590" => 3.60, "9591" => 5.809999, "9592" => 8.97, "9593" => 6.34, "9594" => 6.85, "9595" => 7.39, "9596" => 6.85, "9597" => 7.39, "9598" => 3.57, "9599" => 6.85, "9600" => 3.86, "9601" => 3.86, "9602" => 6.61, "9603" => 3.86, "9604" => 9.43, "9605" => 9.43, "9606" => 9.43, "9607" => 7.82, "9608" => 7.82, "9609" => 7.82, "9610" => 7.82, "9611" => 7.82, "9612" => 7.82, "9613" => 7.07, "9614" => 6.81, "9615" => 6.81, "9616" => 6.81, "9617" => 6.81, "9618" => 3.95, "9619" => 3.95, "9620" => 3.95, "9621" => 3.95, "9622" => 7.98, "9623" => 7.75, "9624" => 8.09, "9625" => 8.09, "9626" => 8.09, "9627" => 8.09, "9628" => 8.09, "9629" => 6.85, "9630" => 7.84, "9631" => 7.84, "9632" => 7.84, "9633" => 7.84, "9634" => 7.55, "9635" => 6.78, "9636" => 6.17, "9637" => 6.17, "9638" => 6.17, "9639" => 6.17, "9640" => 6.17, "9641" => 6.17, "9642" => 4.91, "9643" => 5.54, "9644" => 5.54, "9645" => 5.54, "9646" => 5.54, "9647" => 3.46, "9648" => 3.46, "9649" => 3.46, "9650" => 3.46, "9651" => 5.809999, "9652" => 6.78, "9653" => 5.809999, "9654" => 5.809999, "9655" => 5.809999, "9656" => 5.809999, "9657" => 5.809999, "9658" => 6.85, "9659" => 6.50, "9660" => 6.50, "9661" => 6.50, "9662" => 6.50, "9663" => 6.13, "9664" => 6.24, "9665" => 6.13, "9666" => 5.97, "9667" => 7.55, "9668" => 6.31, "9669" => 5.00, "9670" => 4.82, "9671" => 10.369999, "9672" => 5.16, "9673" => 6.14, "9674" => 6.80, "9675" => 8.809999, "9676" => 2.34, "9677" => 4.05, "9678" => 7.04, "9679" => 9.88, "9680" => 10.17, "9681" => 6.17, "9682" => 3.46, "9683" => 6.50, "9684" => 5.54, "9685" => 5.809999, "9686" => 7.82, "9687" => 3.95, "9688" => 7.84, "9689" => 6.81, "9690" => 8.09, "9691" => 9.43, "9692" => 9.43, "9693" => 9.43, "9694" => 9.43, "9695" => 9.43, "9696" => 9.43, "9697" => 3.86, "9698" => 3.86, "9699" => 3.86, "9700" => 3.86, "9701" => 3.86, "9702" => 3.86, "9703" => 3.86, "9704" => 3.86, "9705" => 3.86, "9706" => 3.86, "9707" => 3.86, "9708" => 3.86, "9709" => 3.86, "9710" => 3.86, "9711" => 3.86, "9712" => 3.86, "9713" => 3.86, "9714" => 7.82, "9715" => 6.81, "9716" => 6.81, "9717" => 6.81, "9718" => 3.95, "9719" => 3.95, "9720" => 3.95, "9721" => 8.09, "9722" => 8.09, "9723" => 7.84, "9724" => 7.84, "9725" => 7.84, "9726" => 6.17, "9727" => 5.54, "9728" => 5.54, "9729" => 5.54, "9730" => 3.46, "9731" => 3.46, "9732" => 3.46, "9733" => 5.809999, "9734" => 5.809999, "9735" => 6.50, "9736" => 6.50, "9737" => 6.50, "9738" => 2.50, "9739" => 2.50, "9740" => 2.50, "9741" => 2.50, "9742" => 2.50, "9743" => 2.50, "9744" => 2.50, "9745" => 2.50, "9746" => 2.50, "9747" => 2.50, "9748" => 2.50, "9749" => 2.50, "9750" => 2.50, "9751" => 2.50, "9752" => 2.50, "9753" => 2.50, "9754" => 2.50, "9755" => 2.50, "9756" => 2.50, "9757" => 2.50, "9758" => 3.33, "9759" => 3.33, "9760" => 3.33, "9761" => 3.33, "9762" => 3.33, "9763" => 3.33, "9764" => 3.33, "9765" => 3.33, "9766" => 3.33, "9767" => 3.33, "9768" => 3.33, "9769" => 3.33, "9770" => 3.33, "9771" => 3.33, "9772" => 3.33, "9773" => 3.33, "9774" => 3.33, "9775" => 3.33, "9776" => 3.33, "9777" => 3.33, "9778" => 3.33, "12063" => 5.00, "12064" => 5.00, "12065" => 5.00, "12066" => 5.00, "12067" => 5.00, "12068" => 5.00, "12069" => 5.00, "12070" => 5.00, "12071" => 5.00, "12072" => 5.00, "12073" => 5.00, "12074" => 5.00, "12075" => 5.00, "12076" => 5.00, "12077" => 5.00, "12078" => 5.00, "12079" => 5.00, "12080" => 5.00, "12081" => 5.00, "12082" => 5.00, "12083" => 5.00, "12084" => 5.00, "12085" => 5.00, "12086" => 5.00, "12087" => 5.00, "15444" => 3.33, "15445" => 3.33, "15446" => 3.33, "15447" => 3.33, "15448" => 3.33, "15449" => 7.54, "15450" => 7.95, "15451" => 7.43, "15452" => 7.97, "15453" => 8.15, "15454" => 9.03, "15456" => 6.85, "15457" => 6.85, "15458" => 6.85, "15459" => 6.85, "15460" => 6.85, "15461" => 10.690001, "15462" => 8.42, "15463" => 8.27, "15464" => 6.85, "15465" => 6.85, "15466" => 6.85, "15467" => 6.85, "15468" => 6.85, "15469" => 6.85, "15470" => 6.85, "15471" => 6.85, "15472" => 6.85, "15473" => 6.85, "15474" => 6.85, "15475" => 6.85, "15476" => 6.85, "15477" => 8.25, "15478" => 6.85, "15479" => 6.85, "15480" => 6.85, "15481" => 6.85, "15482" => 9.07, "15483" => 9.07, "15484" => 7.40, "15485" => 7.40, "15486" => 8.90, "15487" => 8.90, "15488" => 8.90, "15489" => 6.85, "15490" => 6.85, "15491" => 6.85, "15492" => 6.85, "15493" => 6.48, "15494" => 7.72, "15495" => 6.85, "15496" => 6.85, "15497" => 6.85, "15498" => 6.85, "15499" => 5.71, "15500" => 6.85, "15501" => 6.85, "15502" => 6.85, "15503" => 3.83, "15504" => 6.29, "15505" => 6.85, "15506" => 6.85, "15507" => 6.85, "15508" => 6.85, "15509" => 6.85, "15510" => 6.85, "15511" => 9.07, "15512" => 6.85, "15513" => 7.41, "15514" => 6.46, "15515" => 8.64, "15516" => 5.00, "15517" => 8.44, "15518" => 9.17, "15519" => 8.719999, "15520" => 9.46, "15521" => 7.65, "15522" => 8.04, "15523" => 8.20, "15524" => 8.95, "15525" => 8.90, "15526" => 9.52, "15527" => 9.81, "15528" => 9.929999, "15529" => 8.64, "15530" => 9.42, "15531" => 7.04, "15532" => 8.52, "15533" => 9.35, "15534" => 9.75, "15535" => 8.30, "15536" => 9.08, "15537" => 8.61, "15538" => 9.53, "15539" => 8.51, "15540" => 8.62, "15541" => 9.440001, "15542" => 9.63, "15543" => 9.76, "15544" => 9.92, "15545" => 8.93, "15546" => 9.49, "15547" => 9.25, "15548" => 9.440001, "15549" => 8.77, "15550" => 9.25, "15551" => 8.97, "15552" => 9.71, "15553" => 9.80, "15554" => 9.110001, "15555" => 9.50, "15556" => 7.89, "15557" => 8.719999, "15558" => 9.42, "15559" => 9.18, "15560" => 9.67, "15561" => 9.73, "15562" => 9.57, "15563" => 9.45, "15564" => 9.79, "15565" => 9.77, "15566" => 9.33, "15567" => 9.49, "15568" => 9.53, "15569" => 9.440001, "15570" => 9.59, "15571" => 9.59, "15572" => 9.969999, "15573" => 9.84, "15574" => 9.82, "15575" => 9.49, "15576" => 9.90, "15577" => 9.92, "15578" => 8.62, "15579" => 9.38, "15580" => 9.57, "15581" => 9.36, "15582" => 8.34, "15583" => 8.93, "15584" => 9.62, "15585" => 8.95, "15586" => 9.639999, "15587" => 7.85, "15588" => 8.41, "15589" => 8.389999, "15590" => 8.09, "15591" => 8.55, "15592" => 9.96, "15593" => 8.63, "15594" => 8.820001, "15595" => 9.58, "15596" => 9.12, "15597" => 9.32, "15598" => 9.139999, "15599" => 9.39, "15600" => 9.06, "15601" => 9.02, "15602" => 8.64, "15603" => 9.91, "15604" => 9.32, "15605" => 8.389999, "15606" => 9.72, "15607" => 9.049999, "15608" => 8.28, "15609" => 9.01, "15610" => 7.78, "15611" => 8.43, "15612" => 8.24, "15613" => 8.67, "15614" => 8.63, "15615" => 9.50, "15616" => 8.57, "15617" => 9.26, "15618" => 8.90, "15619" => 9.53, "15620" => 9.190001, "15621" => 9.40, "15622" => 8.60, "15623" => 9.37, "15624" => 9.049999, "15625" => 9.42, "15626" => 8.83, "15627" => 9.30, "15628" => 9.440001, "15629" => 9.68, "15630" => 9.22, "15631" => 9.22, "15632" => 8.96, "15633" => 9.48, "15634" => 9.40, "15635" => 9.71, "15636" => 8.49, "15637" => 9.30, "15638" => 8.780001, "15639" => 9.559999, "15640" => 9.27, "15641" => 9.639999, "15642" => 8.12, "15643" => 8.73, "15644" => 9.43, "15645" => 9.20, "15646" => 9.58, "15647" => 7.60, "15648" => 8.16, "15649" => 9.22, "15650" => 9.52, "15651" => 8.42, "15652" => 9.27, "15653" => 8.17, "15654" => 9.77, "15655" => 9.76, "15656" => 9.71, "15657" => 8.42, "15658" => 9.00, "15659" => 8.90, "15660" => 8.46, "15661" => 9.30, "15662" => 9.27, "15663" => 9.95, "15664" => 9.77, "15665" => 9.77, "15666" => 9.190001, "15667" => 9.39, "15668" => 9.24, "15669" => 9.17, "15670" => 7.90, "15671" => 8.87, "15672" => 8.55, "15673" => 9.41, "15674" => 8.690001, "15675" => 9.24, "15676" => 8.61, "15677" => 9.57, "15678" => 8.23, "15679" => 8.74, "15680" => 8.41, "15681" => 7.91, "15682" => 9.599999, "15683" => 8.80, "15684" => 8.95, "15685" => 8.08, "15686" => 8.67, "15687" => 9.50, "15688" => 9.51, "15689" => 8.389999, "15690" => 9.03, "15691" => 9.34, "15692" => 8.33, "15693" => 8.389999, "15694" => 9.49, "15695" => 9.39, "15696" => 9.32, "15697" => 9.40, "15698" => 9.27, "15699" => 9.66, "15700" => 9.39, "15701" => 8.01, "15702" => 8.03, "15703" => 8.58, "15704" => 8.190001, "15705" => 7.29, "15706" => 7.89, "15707" => 8.79, "15708" => 8.02, "15709" => 7.940001, "15710" => 9.10, "15711" => 8.53, "15712" => 8.71, "15713" => 8.13, "15714" => 8.09, "15715" => 7.66, "15716" => 8.79, "15717" => 8.32, "15718" => 8.44, "15719" => 9.51, "15720" => 9.75, "15721" => 9.700001, "15722" => 9.32, "15723" => 7.76, "15724" => 8.349999, "15725" => 6.85, "15726" => 6.85, "15727" => 9.599999, "15728" => 8.67, "15729" => 9.75, "15730" => 9.71, "15731" => 8.05, "15732" => 6.63, "15733" => 6.27, "15734" => 6.27, "15735" => 6.27, "15736" => 6.27, "15737" => 7.87, "15738" => 5.00, "15739" => 6.14, "15740" => 5.94, "15741" => 5.94, "15742" => 6.98, "15743" => 6.67, "15744" => 6.67, "15745" => 5.75, "15746" => 5.00, "15747" => 3.35, "15748" => 4.74, "15749" => 5.00, "15750" => 4.74, "15751" => 3.55, "15752" => 5.08, "15753" => 5.00, "15754" => 5.08, "15755" => 7.26, "15756" => 7.87, "15757" => 6.14, "15758" => 7.41, "15759" => 7.41, "15760" => 6.60, "15761" => 7.97, "15762" => 8.05, "15763" => 8.05, "15764" => 8.15, "15765" => 7.26, "15766" => 7.91, "15767" => 6.98, "15768" => 4.55, "15769" => 5.75, "15770" => 3.35, "15771" => 5.440001, "15772" => 5.440001, "15773" => 5.60, "15774" => 6.26, "15775" => 6.26, "15776" => 6.63, "15777" => 6.63, "15778" => 6.06, "15779" => 4.55, "15780" => 6.27, "15781" => 3.55, "15782" => 5.00, "15783" => 7.41, "15784" => 7.85, "15785" => 8.33, "15786" => 5.07, "15787" => 5.94, "15788" => 7.91, "15789" => 5.440001, "15790" => 5.48, "15791" => 6.66, "15792" => 3.25, "15793" => 4.74, "15794" => 6.27, "15795" => 9.599999, "15796" => 5.63, "15797" => 4.28, "15798" => 4.57, "15799" => 6.39, "15800" => 4.55, "15801" => 3.61, "15802" => 6.26, "15803" => 6.59, "15804" => 4.51, "15805" => 4.74, "15806" => 5.26, "15807" => 4.55, "15808" => 3.21, "15809" => 3.61, "15810" => 6.63, "15811" => 3.81, "15812" => 5.89, "15813" => 6.29, "15814" => 9.58, "15815" => 6.14, "15816" => 6.66, "15817" => 4.98, "15818" => 4.98, "15819" => 6.66, "15820" => 8.15, "15821" => 4.84, "15822" => 6.29, "15823" => 6.26, "15824" => 3.67, "15825" => 6.29, "15826" => 7.85, "15827" => 3.33, "15828" => 6.27, "15829" => 5.60, "15830" => 5.08, "15831" => 6.12, "15832" => 5.75, "15833" => 9.71, "15834" => 6.11, "15835" => 6.14, "15836" => 6.25, "15837" => 8.34, "15838" => 6.66, "15839" => 4.98, "15840" => 4.98, "15841" => 5.440001, "15842" => 5.29, "15843" => 4.59, "15844" => 6.54, "15845" => 0.00, "15846" => 1.60, "15847" => 1.60, "15848" => 3.20, "15849" => 0.00, "15850" => 5.00, "15851" => 4.41, "15852" => 4.41, "15853" => 4.41, "15854" => 4.41, "15855" => 4.41, "15856" => 4.55, "15857" => 4.55, "15858" => 5.00, "15859" => 5.00, "15860" => 5.00, "15861" => 5.00, "15862" => 5.00, "15863" => 5.00, "15864" => 5.00, "15865" => 5.00, "15866" => 5.00, "15867" => 2.06, "15868" => 5.00, "15869" => 5.00, "15870" => 5.00, "15871" => 5.00, "15872" => 5.00, "15873" => 5.00, "15874" => 5.00, "15875" => 5.00, "15876" => 5.00, "15877" => 5.00, "15878" => 5.00, "15879" => 4.05, "15880" => 3.83, "15881" => 6.85, "15882" => 6.85, "15883" => 5.94, "15884" => 5.89, "15885" => 3.20, "15886" => 6.01, "15887" => 8.50, "15888" => 6.95, "15889" => 6.14, "15890" => 5.78, "15891" => 5.67, "15892" => 6.64, "15893" => 4.96, "15894" => 4.19, "15895" => 3.15, "15896" => 5.04, "15897" => 2.99, "15898" => 3.54, "15899" => 2.17, "15900" => 5.19, "15901" => 6.93, "15902" => 8.75, "15903" => 6.85, "15904" => 6.85, "15905" => 8.90, "15906" => 9.22, "15907" => 9.22, "15908" => 4.14, "15909" => 6.29, "15910" => 5.82, "15911" => 5.74, "15912" => 8.809999, "15913" => 5.00, "15914" => 9.43, "15915" => 9.53, "15916" => 9.639999, "15917" => 7.75, "15918" => 6.78, "15919" => 6.50, "15920" => 6.50, "15921" => 6.50, "15922" => 6.50, "15923" => 7.82, "15924" => 6.06, "15925" => 5.97, "15926" => 5.97, "15927" => 6.82, "15928" => 6.31, "15929" => 6.31, "15930" => 6.17, "15931" => 3.54, "15932" => 4.82, "15933" => 4.82, "15934" => 3.63, "15935" => 5.16, "15936" => 5.16, "15937" => 7.43, "15938" => 7.82, "15939" => 6.06, "15940" => 7.07, "15941" => 7.07, "15942" => 6.81, "15943" => 7.98, "15944" => 7.75, "15945" => 7.75, "15946" => 8.09, "15947" => 7.43, "15948" => 7.84, "15949" => 6.82, "15950" => 4.74, "15951" => 6.17, "15952" => 3.54, "15953" => 4.91, "15954" => 4.91, "15955" => 5.54, "15956" => 6.34, "15957" => 6.34, "15958" => 6.78, "15959" => 6.78, "15960" => 5.809999, "15961" => 4.74, "15962" => 6.50, "15963" => 3.63, "15964" => 7.07, "15965" => 7.73, "15966" => 8.29, "15967" => 4.98, "15968" => 5.97, "15969" => 7.84, "15970" => 4.91, "15971" => 5.86, "15972" => 6.46, "15973" => 3.16, "15974" => 4.82, "15975" => 6.50);
+%goth_w3=("1" => 3.33, "2" => 3.11, "3" => 3.56, "4" => 6.57, "5" => 6.50, "6" => 8.79, "7" => 7.97, "8" => 1.95, "9" => 3.56, "10" => 3.56, "11" => 3.46, "12" => 6.56, "13" => 2.40, "14" => 3.58, "15" => 2.40, "16" => 4.74, "17" => 6.57, "18" => 6.57, "19" => 6.57, "20" => 6.57, "21" => 6.61, "22" => 6.57, "23" => 6.57, "24" => 6.57, "25" => 6.57, "26" => 6.57, "27" => 2.40, "28" => 2.40, "29" => 5.12, "30" => 6.56, "31" => 5.12, "32" => 5.71, "33" => 9.049999, "34" => 7.50, "35" => 7.12, "36" => 7.56, "37" => 7.58, "38" => 6.43, "39" => 6.02, "40" => 7.54, "41" => 7.78, "42" => 2.49, "43" => 5.08, "44" => 7.07, "45" => 6.02, "46" => 9.45, "47" => 7.74, "48" => 7.95, "49" => 6.62, "50" => 7.95, "51" => 7.26, "52" => 6.690001, "53" => 6.49, "54" => 7.73, "55" => 7.17, "56" => 10.06, "57" => 7.22, "58" => 6.88, "59" => 6.690001, "60" => 3.46, "61" => 6.91, "62" => 3.46, "63" => 5.33, "64" => 5.01, "65" => 5.00, "66" => 5.75, "67" => 6.46, "68" => 5.78, "69" => 6.46, "70" => 5.88, "71" => 4.17, "72" => 6.41, "73" => 6.17, "74" => 2.38, "75" => 2.65, "76" => 5.75, "77" => 2.32, "78" => 9.309999, "79" => 6.18, "80" => 6.25, "81" => 6.47, "82" => 6.46, "83" => 4.30, "84" => 5.37, "85" => 3.92, "86" => 6.18, "87" => 5.440001, "88" => 7.70, "89" => 5.36, "90" => 5.54, "91" => 4.98, "92" => 3.47, "93" => 3.72, "94" => 3.47, "95" => 5.43, "96" => 2.40, "97" => 4.74, "98" => 2.40, "99" => 3.75, "100" => 5.43, "101" => 3.11, "102" => 5.86, "103" => 6.55, "104" => 1.45, "105" => 5.86, "106" => 6.39, "107" => 5.65, "108" => 3.84, "109" => 4.66, "110" => 3.03, "111" => 3.03, "112" => 6.20, "113" => 6.16, "114" => 5.00, "115" => 6.00, "116" => 6.00, "117" => 2.40, "118" => 5.87, "119" => 4.79, "120" => 2.40, "121" => 3.84, "122" => 3.84, "123" => 4.66, "124" => 7.21, "125" => 12.75, "126" => 5.71, "127" => 5.00, "128" => 5.00, "129" => 5.00, "130" => 5.00, "131" => 5.00, "132" => 5.00, "133" => 5.00, "134" => 7.56, "135" => 5.00, "136" => 7.59, "137" => 5.00, "139" => 10.570001, "140" => 3.94, "141" => 6.39, "142" => 7.95, "143" => 10.39, "144" => 4.30, "145" => 9.69, "146" => 2.38, "147" => 3.00, "148" => 6.25, "149" => 10.21, "150" => 6.27, "151" => 6.56, "152" => 5.70, "153" => 6.56, "154" => 5.70, "155" => 3.00, "156" => 6.56, "157" => 3.94, "158" => 3.94, "159" => 6.19, "160" => 3.94, "161" => 8.54, "162" => 8.51, "163" => 8.84, "164" => 7.50, "165" => 7.50, "166" => 7.50, "167" => 7.50, "168" => 7.50, "169" => 7.50, "170" => 7.56, "171" => 6.43, "172" => 6.43, "173" => 6.43, "174" => 6.43, "175" => 2.49, "176" => 2.49, "177" => 2.49, "178" => 2.49, "179" => 7.66, "180" => 7.74, "181" => 7.95, "182" => 7.95, "183" => 7.95, "184" => 7.95, "185" => 7.95, "186" => 6.56, "187" => 7.73, "188" => 7.73, "189" => 7.73, "190" => 7.73, "191" => 6.88, "192" => 6.45, "193" => 5.75, "194" => 5.75, "195" => 5.75, "196" => 5.75, "197" => 5.75, "198" => 5.75, "199" => 5.78, "200" => 5.88, "201" => 5.88, "202" => 5.88, "203" => 5.88, "204" => 3.08, "205" => 3.04, "206" => 3.04, "207" => 2.74, "208" => 6.44, "209" => 6.18, "210" => 6.25, "211" => 6.25, "212" => 6.25, "213" => 6.25, "214" => 6.25, "215" => 6.56, "216" => 6.18, "217" => 6.18, "218" => 6.18, "219" => 6.18, "220" => 5.54, "221" => 6.47, "222" => 5.54, "223" => 6.690001, "224" => 6.88, "225" => 6.690001, "226" => 5.00, "227" => 5.37, "228" => 10.039999, "229" => 4.98, "230" => 6.57, "231" => 5.00, "232" => 5.00, "233" => 5.00, "234" => 5.00, "235" => 5.00, "236" => 5.00, "237" => 5.00, "238" => 5.00, "239" => 5.00, "240" => 5.00, "241" => 5.00, "242" => 5.00, "243" => 5.00, "244" => 5.00, "245" => 5.00, "246" => 5.00, "247" => 5.00, "248" => 5.00, "249" => 5.00, "250" => 5.00, "251" => 5.00, "252" => 5.00, "253" => 5.00, "254" => 5.00, "255" => 5.00, "256" => 5.00, "257" => 5.00, "258" => 5.00, "259" => 5.00, "260" => 5.00, "261" => 5.00, "262" => 5.00, "263" => 5.00, "264" => 5.00, "265" => 5.00, "266" => 5.00, "267" => 5.00, "268" => 5.00, "269" => 5.00, "270" => 5.00, "271" => 5.00, "272" => 5.00, "273" => 5.00, "274" => 5.00, "275" => 5.00, "276" => 5.00, "277" => 5.00, "278" => 5.00, "279" => 5.00, "280" => 5.00, "281" => 5.00, "282" => 5.00, "283" => 5.00, "284" => 5.00, "285" => 5.00, "286" => 5.00, "287" => 5.00, "288" => 5.00, "289" => 5.00, "290" => 5.00, "291" => 5.00, "292" => 5.00, "293" => 5.00, "294" => 5.00, "295" => 5.00, "296" => 5.00, "297" => 5.00, "298" => 5.00, "299" => 5.00, "300" => 5.00, "301" => 5.00, "302" => 5.00, "303" => 5.00, "304" => 5.00, "305" => 5.00, "306" => 5.00, "307" => 5.00, "308" => 5.00, "309" => 5.00, "310" => 5.00, "311" => 5.00, "312" => 5.00, "313" => 5.00, "314" => 5.00, "315" => 5.00, "316" => 5.00, "317" => 5.00, "318" => 5.00, "319" => 5.00, "320" => 5.00, "321" => 5.00, "322" => 5.00, "323" => 5.00, "324" => 5.00, "325" => 5.00, "326" => 5.00, "327" => 5.00, "328" => 5.00, "329" => 5.00, "330" => 5.00, "331" => 5.00, "332" => 5.00, "333" => 5.00, "334" => 5.00, "335" => 5.00, "336" => 5.00, "337" => 5.00, "338" => 5.00, "339" => 5.00, "340" => 5.00, "341" => 5.00, "342" => 5.00, "343" => 5.00, "344" => 5.00, "345" => 5.00, "346" => 5.00, "347" => 5.00, "348" => 5.00, "349" => 5.00, "350" => 5.00, "351" => 5.00, "352" => 5.00, "353" => 5.00, "354" => 5.00, "355" => 5.00, "356" => 5.00, "357" => 5.00, "358" => 5.00, "359" => 5.00, "360" => 5.00, "361" => 5.00, "362" => 5.00, "363" => 5.00, "364" => 5.00, "365" => 5.00, "366" => 5.00, "367" => 5.00, "368" => 5.00, "369" => 5.00, "370" => 5.00, "371" => 5.00, "372" => 5.00, "373" => 5.00, "374" => 5.00, "375" => 5.00, "376" => 5.00, "377" => 5.00, "378" => 5.00, "379" => 5.00, "380" => 5.00, "381" => 5.00, "382" => 5.00, "383" => 5.00, "384" => 5.00, "385" => 5.00, "386" => 5.00, "387" => 5.00, "388" => 5.00, "389" => 5.00, "390" => 5.00, "391" => 5.00, "392" => 5.00, "393" => 5.00, "394" => 5.00, "395" => 5.00, "396" => 5.00, "397" => 5.00, "398" => 5.00, "399" => 5.00, "400" => 5.00, "401" => 5.00, "402" => 5.00, "403" => 5.00, "404" => 5.00, "405" => 5.00, "406" => 5.00, "407" => 5.00, "408" => 5.00, "409" => 5.00, "410" => 5.00, "411" => 5.00, "412" => 5.00, "413" => 5.00, "414" => 5.00, "415" => 5.00, "416" => 5.00, "417" => 5.00, "418" => 5.00, "419" => 5.00, "420" => 5.00, "421" => 5.00, "422" => 5.00, "423" => 5.00, "424" => 5.00, "425" => 5.00, "426" => 5.00, "427" => 5.00, "428" => 5.00, "429" => 5.00, "430" => 5.00, "431" => 5.00, "432" => 5.00, "433" => 5.00, "434" => 5.00, "435" => 5.00, "436" => 5.00, "437" => 5.00, "438" => 5.00, "439" => 5.00, "440" => 5.00, "441" => 5.00, "442" => 5.00, "443" => 5.00, "444" => 5.00, "445" => 5.00, "446" => 5.00, "447" => 5.00, "448" => 5.00, "449" => 5.00, "450" => 5.00, "451" => 5.00, "452" => 5.00, "453" => 5.00, "454" => 5.00, "455" => 5.00, "456" => 5.00, "457" => 5.00, "458" => 5.00, "459" => 5.00, "460" => 5.00, "461" => 5.00, "462" => 5.00, "463" => 5.00, "464" => 5.00, "465" => 5.00, "466" => 5.00, "467" => 5.00, "468" => 5.00, "469" => 5.00, "470" => 5.00, "471" => 5.00, "472" => 5.00, "473" => 5.00, "474" => 5.00, "475" => 5.00, "476" => 5.00, "477" => 5.00, "478" => 5.00, "479" => 5.00, "480" => 5.00, "481" => 5.00, "482" => 5.00, "483" => 5.00, "484" => 5.00, "485" => 5.00, "486" => 5.00, "487" => 5.00, "488" => 5.00, "489" => 5.00, "490" => 5.00, "491" => 5.00, "492" => 5.00, "493" => 5.00, "494" => 5.00, "495" => 5.00, "496" => 5.00, "497" => 5.00, "498" => 5.00, "499" => 5.00, "500" => 5.00, "501" => 5.00, "502" => 5.00, "503" => 5.00, "504" => 5.00, "505" => 5.00, "506" => 5.00, "507" => 5.00, "508" => 5.00, "509" => 5.00, "510" => 5.00, "511" => 5.00, "512" => 5.00, "513" => 5.00, "514" => 5.00, "515" => 5.00, "516" => 5.00, "517" => 5.00, "518" => 5.00, "519" => 5.00, "520" => 5.00, "521" => 5.00, "522" => 5.00, "523" => 5.00, "524" => 5.00, "525" => 5.00, "526" => 5.00, "527" => 5.00, "528" => 5.00, "529" => 5.00, "530" => 5.00, "531" => 5.00, "532" => 5.00, "533" => 5.00, "534" => 5.00, "535" => 5.00, "536" => 5.00, "537" => 5.00, "538" => 5.00, "539" => 5.00, "540" => 5.00, "541" => 5.00, "542" => 5.00, "543" => 5.00, "544" => 5.00, "545" => 5.00, "546" => 5.00, "547" => 5.00, "548" => 5.00, "549" => 5.00, "550" => 5.00, "551" => 5.00, "552" => 5.00, "553" => 5.00, "554" => 5.00, "555" => 5.00, "556" => 5.00, "557" => 5.00, "558" => 5.00, "559" => 5.00, "560" => 5.00, "561" => 5.00, "562" => 5.00, "563" => 5.00, "564" => 5.00, "565" => 5.00, "566" => 5.00, "567" => 5.00, "568" => 5.00, "569" => 5.00, "570" => 5.00, "571" => 5.00, "572" => 5.00, "573" => 5.00, "574" => 5.00, "575" => 5.00, "576" => 5.00, "577" => 5.00, "578" => 5.00, "579" => 5.00, "580" => 5.00, "581" => 5.00, "582" => 5.00, "583" => 5.00, "584" => 5.00, "585" => 5.00, "586" => 5.00, "587" => 5.00, "588" => 5.00, "589" => 5.00, "590" => 5.00, "591" => 5.00, "592" => 5.00, "593" => 5.00, "594" => 5.00, "595" => 5.00, "596" => 5.00, "597" => 5.00, "598" => 5.00, "599" => 5.00, "600" => 5.00, "601" => 5.00, "602" => 5.00, "603" => 5.00, "604" => 5.00, "605" => 5.00, "606" => 5.00, "607" => 5.00, "608" => 5.00, "609" => 5.00, "610" => 5.00, "611" => 5.00, "612" => 5.00, "613" => 5.00, "614" => 5.00, "615" => 5.00, "616" => 5.00, "617" => 5.00, "618" => 5.00, "619" => 5.00, "620" => 5.00, "621" => 5.00, "622" => 5.00, "623" => 5.00, "624" => 5.00, "625" => 5.00, "626" => 5.00, "627" => 5.00, "628" => 5.00, "629" => 5.00, "630" => 5.00, "631" => 5.00, "632" => 5.00, "8718" => 5.00, "8719" => 5.00, "9354" => 7.14, "9355" => 8.03, "9356" => 2.15, "9357" => 3.70, "9358" => 7.37, "9359" => 9.39, "9360" => 9.33, "9361" => 5.75, "9362" => 2.92, "9363" => 6.18, "9364" => 5.88, "9365" => 6.25, "9366" => 7.50, "9367" => 2.49, "9368" => 7.73, "9369" => 6.43, "9370" => 7.95, "9371" => 8.84, "9372" => 8.84, "9373" => 8.84, "9374" => 8.84, "9375" => 8.84, "9376" => 8.84, "9377" => 3.94, "9378" => 3.94, "9379" => 3.94, "9380" => 3.94, "9381" => 3.94, "9382" => 3.94, "9383" => 3.94, "9384" => 3.94, "9385" => 3.94, "9386" => 3.94, "9387" => 3.94, "9388" => 3.94, "9389" => 3.94, "9390" => 3.94, "9391" => 3.94, "9392" => 3.94, "9393" => 3.94, "9394" => 7.50, "9395" => 6.43, "9396" => 6.43, "9397" => 6.43, "9398" => 2.49, "9399" => 2.49, "9400" => 2.49, "9401" => 7.95, "9402" => 7.95, "9403" => 7.73, "9404" => 7.73, "9405" => 7.73, "9406" => 5.75, "9407" => 5.88, "9408" => 5.88, "9409" => 5.88, "9410" => 3.04, "9411" => 2.38, "9412" => 3.25, "9413" => 6.25, "9414" => 6.25, "9415" => 6.18, "9416" => 6.18, "9417" => 6.18, "9418" => 6.46, "9419" => 6.46, "9420" => 6.46, "9421" => 9.69, "9422" => 9.69, "9423" => 5.78, "9424" => 5.78, "9425" => 5.78, "9426" => 5.88, "9427" => 5.88, "9428" => 5.88, "9429" => 7.48, "9430" => 7.48, "9431" => 7.48, "9432" => 5.26, "9433" => 5.26, "9434" => 5.26, "9435" => 2.65, "9436" => 6.15, "9437" => 6.25, "9438" => 5.440001, "9439" => 5.440001, "9440" => 5.440001, "9441" => 5.33, "9442" => 3.88, "9443" => 2.56, "9444" => 3.33, "9445" => 2.97, "9446" => 3.43, "9447" => 6.57, "9448" => 6.57, "9449" => 8.64, "9450" => 7.85, "9451" => 1.88, "9452" => 3.65, "9453" => 3.65, "9454" => 3.50, "9455" => 6.56, "9456" => 2.48, "9457" => 3.63, "9458" => 2.48, "9459" => 4.73, "9460" => 6.57, "9461" => 6.57, "9462" => 6.57, "9463" => 6.57, "9464" => 6.57, "9465" => 6.57, "9466" => 6.57, "9467" => 6.57, "9468" => 6.57, "9469" => 6.57, "9470" => 2.48, "9471" => 2.48, "9472" => 5.43, "9473" => 6.57, "9474" => 5.43, "9475" => 5.67, "9476" => 8.89, "9477" => 7.25, "9478" => 6.98, "9479" => 7.04, "9480" => 7.40, "9481" => 6.39, "9482" => 5.99, "9483" => 7.48, "9484" => 7.75, "9485" => 2.66, "9486" => 4.91, "9487" => 7.01, "9488" => 6.03, "9489" => 9.36, "9490" => 7.69, "9491" => 7.84, "9492" => 6.40, "9493" => 7.84, "9494" => 7.03, "9495" => 6.64, "9496" => 6.39, "9497" => 7.65, "9498" => 7.059999, "9499" => 9.84, "9500" => 7.09, "9501" => 6.78, "9502" => 6.61, "9503" => 3.45, "9504" => 6.57, "9505" => 3.45, "9506" => 5.33, "9507" => 4.56, "9508" => 5.00, "9509" => 5.68, "9510" => 6.21, "9511" => 5.31, "9512" => 6.24, "9513" => 5.80, "9514" => 3.84, "9515" => 6.20, "9516" => 6.15, "9517" => 2.50, "9518" => 2.61, "9519" => 5.73, "9520" => 2.45, "9521" => 9.16, "9522" => 6.16, "9523" => 6.22, "9524" => 6.21, "9525" => 6.18, "9526" => 4.32, "9527" => 5.35, "9528" => 3.77, "9529" => 6.04, "9530" => 5.43, "9531" => 7.57, "9532" => 5.33, "9533" => 5.40, "9534" => 4.97, "9535" => 3.45, "9536" => 3.72, "9537" => 3.45, "9538" => 5.00, "9539" => 2.15, "9540" => 4.73, "9541" => 2.15, "9542" => 3.75, "9543" => 5.70, "9544" => 2.97, "9545" => 5.80, "9546" => 6.57, "9547" => 0.91, "9548" => 5.89, "9549" => 6.36, "9550" => 5.65, "9551" => 3.53, "9552" => 4.67, "9553" => 3.11, "9554" => 3.11, "9555" => 6.06, "9556" => 6.00, "9557" => 5.00, "9558" => 5.95, "9559" => 5.95, "9560" => 2.48, "9561" => 5.73, "9562" => 4.79, "9563" => 2.15, "9564" => 3.53, "9565" => 3.53, "9566" => 4.67, "9567" => 7.44, "9568" => 12.56, "9569" => 5.67, "9570" => 5.00, "9571" => 5.00, "9572" => 5.00, "9573" => 5.00, "9574" => 5.00, "9575" => 5.00, "9576" => 5.00, "9577" => 5.00, "9578" => 5.00, "9579" => 5.00, "9580" => 5.00, "9582" => 10.28, "9583" => 4.12, "9584" => 6.03, "9585" => 7.84, "9586" => 10.20, "9587" => 4.12, "9588" => 9.32, "9589" => 2.50, "9590" => 2.45, "9591" => 6.21, "9592" => 10.01, "9593" => 6.30, "9594" => 6.56, "9595" => 5.70, "9596" => 6.56, "9597" => 5.70, "9598" => 3.00, "9599" => 6.56, "9600" => 3.94, "9601" => 3.94, "9602" => 6.57, "9603" => 3.94, "9604" => 8.79, "9605" => 8.79, "9606" => 8.79, "9607" => 7.25, "9608" => 7.25, "9609" => 7.25, "9610" => 7.25, "9611" => 7.25, "9612" => 7.25, "9613" => 7.04, "9614" => 6.39, "9615" => 6.39, "9616" => 6.39, "9617" => 6.39, "9618" => 2.66, "9619" => 2.66, "9620" => 2.66, "9621" => 2.66, "9622" => 7.40, "9623" => 7.69, "9624" => 7.84, "9625" => 7.84, "9626" => 7.84, "9627" => 7.84, "9628" => 7.84, "9629" => 6.56, "9630" => 7.65, "9631" => 7.65, "9632" => 7.65, "9633" => 7.65, "9634" => 6.78, "9635" => 6.45, "9636" => 5.68, "9637" => 5.68, "9638" => 5.68, "9639" => 5.68, "9640" => 5.68, "9641" => 5.68, "9642" => 5.31, "9643" => 5.80, "9644" => 5.80, "9645" => 5.80, "9646" => 5.80, "9647" => 2.50, "9648" => 2.50, "9649" => 2.50, "9650" => 2.50, "9651" => 6.39, "9652" => 6.16, "9653" => 6.22, "9654" => 6.22, "9655" => 6.22, "9656" => 6.22, "9657" => 6.22, "9658" => 6.56, "9659" => 6.04, "9660" => 6.04, "9661" => 6.04, "9662" => 6.04, "9663" => 5.40, "9664" => 6.42, "9665" => 5.40, "9666" => 6.64, "9667" => 6.78, "9668" => 6.61, "9669" => 4.56, "9670" => 5.36, "9671" => 10.190001, "9672" => 4.97, "9673" => 6.57, "9674" => 7.00, "9675" => 8.15, "9676" => 2.15, "9677" => 3.70, "9678" => 6.89, "9679" => 9.10, "9680" => 9.049999, "9681" => 5.68, "9682" => 2.50, "9683" => 6.04, "9684" => 5.80, "9685" => 6.22, "9686" => 7.25, "9687" => 2.66, "9688" => 7.65, "9689" => 6.39, "9690" => 7.84, "9691" => 8.79, "9692" => 8.79, "9693" => 8.79, "9694" => 8.79, "9695" => 8.79, "9696" => 8.79, "9697" => 3.94, "9698" => 3.94, "9699" => 3.94, "9700" => 3.94, "9701" => 3.94, "9702" => 3.94, "9703" => 3.94, "9704" => 3.94, "9705" => 3.94, "9706" => 3.94, "9707" => 3.94, "9708" => 3.94, "9709" => 3.94, "9710" => 3.94, "9711" => 3.94, "9712" => 3.94, "9713" => 3.94, "9714" => 7.25, "9715" => 6.39, "9716" => 6.39, "9717" => 6.39, "9718" => 2.66, "9719" => 2.66, "9720" => 2.66, "9721" => 7.84, "9722" => 7.84, "9723" => 7.65, "9724" => 7.65, "9725" => 7.65, "9726" => 5.68, "9727" => 5.80, "9728" => 5.80, "9729" => 5.80, "9730" => 2.50, "9731" => 2.50, "9732" => 2.50, "9733" => 6.22, "9734" => 6.22, "9735" => 6.04, "9736" => 6.04, "9737" => 6.04, "9738" => 2.50, "9739" => 2.50, "9740" => 2.50, "9741" => 2.50, "9742" => 2.50, "9743" => 2.50, "9744" => 2.50, "9745" => 2.50, "9746" => 2.50, "9747" => 2.50, "9748" => 2.50, "9749" => 2.50, "9750" => 2.50, "9751" => 2.50, "9752" => 2.50, "9753" => 2.50, "9754" => 2.50, "9755" => 2.50, "9756" => 2.50, "9757" => 2.50, "9758" => 3.33, "9759" => 3.33, "9760" => 3.33, "9761" => 3.33, "9762" => 3.33, "9763" => 3.33, "9764" => 3.33, "9765" => 3.33, "9766" => 3.33, "9767" => 3.33, "9768" => 3.33, "9769" => 3.33, "9770" => 3.33, "9771" => 3.33, "9772" => 3.33, "9773" => 3.33, "9774" => 3.33, "9775" => 3.33, "9776" => 3.33, "9777" => 3.33, "9778" => 3.33, "12063" => 5.00, "12064" => 5.00, "12065" => 5.00, "12066" => 5.00, "12067" => 5.00, "12068" => 5.00, "12069" => 5.00, "12070" => 5.00, "12071" => 5.00, "12072" => 5.00, "12073" => 5.00, "12074" => 5.00, "12075" => 5.00, "12076" => 5.00, "12077" => 5.00, "12078" => 5.00, "12079" => 5.00, "12080" => 5.00, "12081" => 5.00, "12082" => 5.00, "12083" => 5.00, "12084" => 5.00, "12085" => 5.00, "12086" => 5.00, "12087" => 5.00, "15444" => 3.33, "15445" => 3.33, "15446" => 3.33, "15447" => 3.33, "15448" => 3.33, "15449" => 7.19, "15450" => 7.69, "15451" => 7.23, "15452" => 7.72, "15453" => 8.29, "15454" => 9.09, "15456" => 6.56, "15457" => 6.56, "15458" => 6.56, "15459" => 6.56, "15460" => 6.56, "15461" => 10.39, "15462" => 8.60, "15463" => 8.820001, "15464" => 6.56, "15465" => 6.56, "15466" => 6.56, "15467" => 6.56, "15468" => 6.56, "15469" => 6.56, "15470" => 6.56, "15471" => 6.56, "15472" => 6.56, "15473" => 6.56, "15474" => 6.56, "15475" => 6.56, "15476" => 6.56, "15477" => 8.71, "15478" => 6.56, "15479" => 6.56, "15480" => 6.56, "15481" => 6.56, "15482" => 9.16, "15483" => 9.16, "15484" => 7.48, "15485" => 7.48, "15486" => 8.70, "15487" => 8.70, "15488" => 8.70, "15489" => 6.56, "15490" => 6.56, "15491" => 6.56, "15492" => 6.56, "15493" => 6.03, "15494" => 7.87, "15495" => 6.56, "15496" => 6.56, "15497" => 6.56, "15498" => 6.56, "15499" => 5.71, "15500" => 6.56, "15501" => 6.56, "15502" => 6.56, "15503" => 3.83, "15504" => 6.29, "15505" => 6.56, "15506" => 6.56, "15507" => 6.56, "15508" => 6.56, "15509" => 6.56, "15510" => 6.56, "15511" => 9.16, "15512" => 6.56, "15513" => 6.97, "15514" => 6.04, "15515" => 8.03, "15516" => 5.00, "15517" => 8.56, "15518" => 9.18, "15519" => 8.67, "15520" => 9.30, "15521" => 8.08, "15522" => 8.51, "15523" => 8.34, "15524" => 9.139999, "15525" => 8.77, "15526" => 9.37, "15527" => 9.49, "15528" => 9.68, "15529" => 8.87, "15530" => 9.49, "15531" => 7.64, "15532" => 8.34, "15533" => 9.16, "15534" => 9.66, "15535" => 8.37, "15536" => 8.90, "15537" => 8.71, "15538" => 8.97, "15539" => 8.58, "15540" => 8.65, "15541" => 9.17, "15542" => 9.53, "15543" => 9.440001, "15544" => 9.73, "15545" => 9.27, "15546" => 9.40, "15547" => 9.22, "15548" => 9.28, "15549" => 8.83, "15550" => 8.92, "15551" => 8.66, "15552" => 9.26, "15553" => 9.54, "15554" => 8.93, "15555" => 9.26, "15556" => 8.30, "15557" => 8.56, "15558" => 9.45, "15559" => 9.16, "15560" => 9.51, "15561" => 9.67, "15562" => 9.35, "15563" => 9.440001, "15564" => 9.73, "15565" => 9.66, "15566" => 9.26, "15567" => 9.48, "15568" => 9.39, "15569" => 9.40, "15570" => 9.610001, "15571" => 9.51, "15572" => 9.599999, "15573" => 9.639999, "15574" => 9.50, "15575" => 9.48, "15576" => 9.79, "15577" => 9.72, "15578" => 8.98, "15579" => 9.38, "15580" => 9.33, "15581" => 9.27, "15582" => 8.820001, "15583" => 8.719999, "15584" => 9.25, "15585" => 8.780001, "15586" => 9.41, "15587" => 8.09, "15588" => 8.63, "15589" => 8.59, "15590" => 8.33, "15591" => 8.86, "15592" => 9.62, "15593" => 8.70, "15594" => 8.820001, "15595" => 9.46, "15596" => 9.02, "15597" => 9.34, "15598" => 9.049999, "15599" => 9.20, "15600" => 9.27, "15601" => 8.820001, "15602" => 8.55, "15603" => 9.65, "15604" => 9.47, "15605" => 8.29, "15606" => 9.610001, "15607" => 8.89, "15608" => 8.37, "15609" => 9.00, "15610" => 8.26, "15611" => 8.91, "15612" => 8.40, "15613" => 8.809999, "15614" => 8.63, "15615" => 9.36, "15616" => 8.66, "15617" => 9.18, "15618" => 9.04, "15619" => 9.37, "15620" => 9.27, "15621" => 9.309999, "15622" => 8.679999, "15623" => 9.55, "15624" => 9.28, "15625" => 9.52, "15626" => 8.88, "15627" => 9.40, "15628" => 9.26, "15629" => 9.62, "15630" => 8.94, "15631" => 9.42, "15632" => 9.06, "15633" => 9.50, "15634" => 9.17, "15635" => 9.54, "15636" => 8.47, "15637" => 9.04, "15638" => 8.75, "15639" => 9.67, "15640" => 9.25, "15641" => 9.55, "15642" => 8.15, "15643" => 8.86, "15644" => 9.41, "15645" => 9.22, "15646" => 9.639999, "15647" => 8.02, "15648" => 8.26, "15649" => 9.13, "15650" => 9.23, "15651" => 8.46, "15652" => 9.23, "15653" => 8.40, "15654" => 9.45, "15655" => 9.63, "15656" => 9.53, "15657" => 8.60, "15658" => 9.23, "15659" => 9.150001, "15660" => 8.57, "15661" => 9.27, "15662" => 9.110001, "15663" => 9.62, "15664" => 9.559999, "15665" => 9.559999, "15666" => 9.46, "15667" => 9.51, "15668" => 9.50, "15669" => 8.99, "15670" => 8.389999, "15671" => 9.20, "15672" => 8.64, "15673" => 9.42, "15674" => 8.49, "15675" => 9.16, "15676" => 8.43, "15677" => 9.22, "15678" => 8.44, "15679" => 8.91, "15680" => 8.71, "15681" => 8.16, "15682" => 9.46, "15683" => 8.61, "15684" => 9.26, "15685" => 8.32, "15686" => 8.71, "15687" => 9.47, "15688" => 9.32, "15689" => 8.49, "15690" => 8.85, "15691" => 9.33, "15692" => 8.51, "15693" => 8.63, "15694" => 9.29, "15695" => 9.309999, "15696" => 9.57, "15697" => 9.45, "15698" => 9.43, "15699" => 9.45, "15700" => 9.33, "15701" => 8.18, "15702" => 8.02, "15703" => 8.43, "15704" => 8.30, "15705" => 7.66, "15706" => 8.04, "15707" => 8.61, "15708" => 8.15, "15709" => 8.09, "15710" => 8.780001, "15711" => 8.86, "15712" => 8.50, "15713" => 8.389999, "15714" => 8.32, "15715" => 7.90, "15716" => 8.719999, "15717" => 8.18, "15718" => 8.67, "15719" => 9.639999, "15720" => 9.599999, "15721" => 9.65, "15722" => 9.34, "15723" => 7.90, "15724" => 8.40, "15725" => 6.56, "15726" => 6.56, "15727" => 8.84, "15728" => 8.42, "15729" => 9.45, "15730" => 9.309999, "15731" => 7.74, "15732" => 6.18, "15733" => 6.18, "15734" => 6.18, "15735" => 6.18, "15736" => 6.18, "15737" => 7.50, "15738" => 5.00, "15739" => 6.02, "15740" => 6.690001, "15741" => 6.690001, "15742" => 6.49, "15743" => 6.690001, "15744" => 6.690001, "15745" => 5.75, "15746" => 7.59, "15747" => 3.04, "15748" => 5.37, "15749" => 5.00, "15750" => 5.37, "15751" => 3.92, "15752" => 4.98, "15753" => 5.00, "15754" => 4.98, "15755" => 7.26, "15756" => 7.50, "15757" => 6.02, "15758" => 7.56, "15759" => 7.56, "15760" => 6.43, "15761" => 7.58, "15762" => 7.74, "15763" => 7.74, "15764" => 7.95, "15765" => 7.26, "15766" => 7.73, "15767" => 6.49, "15768" => 4.30, "15769" => 5.75, "15770" => 3.04, "15771" => 5.78, "15772" => 5.78, "15773" => 5.88, "15774" => 6.81, "15775" => 6.46, "15776" => 6.18, "15777" => 6.18, "15778" => 6.25, "15779" => 4.30, "15780" => 6.18, "15781" => 3.92, "15782" => 5.00, "15783" => 7.56, "15784" => 7.54, "15785" => 7.78, "15786" => 5.08, "15787" => 6.690001, "15788" => 7.73, "15789" => 5.78, "15790" => 6.41, "15791" => 6.53, "15792" => 3.04, "15793" => 5.37, "15794" => 6.18, "15795" => 9.27, "15796" => 5.78, "15797" => 3.89, "15798" => 4.37, "15799" => 6.09, "15800" => 4.30, "15801" => 3.92, "15802" => 6.52, "15803" => 6.25, "15804" => 4.30, "15805" => 5.37, "15806" => 5.00, "15807" => 4.36, "15808" => 2.39, "15809" => 4.17, "15810" => 6.25, "15811" => 3.85, "15812" => 5.54, "15813" => 6.39, "15814" => 9.309999, "15815" => 5.62, "15816" => 6.17, "15817" => 5.19, "15818" => 5.19, "15819" => 6.17, "15820" => 7.95, "15821" => 4.96, "15822" => 6.46, "15823" => 6.92, "15824" => 4.12, "15825" => 6.86, "15826" => 7.61, "15827" => 2.51, "15828" => 6.31, "15829" => 5.88, "15830" => 5.26, "15831" => 6.07, "15832" => 5.75, "15833" => 9.309999, "15834" => 6.17, "15835" => 6.11, "15836" => 6.46, "15837" => 7.70, "15838" => 6.17, "15839" => 5.19, "15840" => 5.19, "15841" => 5.72, "15842" => 5.51, "15843" => 4.30, "15844" => 6.10, "15845" => 0.00, "15846" => 1.45, "15847" => 1.45, "15848" => 2.56, "15849" => 0.00, "15850" => 5.00, "15851" => 4.57, "15852" => 4.57, "15853" => 4.57, "15854" => 4.57, "15855" => 4.57, "15856" => 4.73, "15857" => 4.73, "15858" => 5.00, "15859" => 5.00, "15860" => 5.00, "15861" => 5.00, "15862" => 5.00, "15863" => 5.00, "15864" => 5.00, "15865" => 5.00, "15866" => 5.00, "15867" => 1.51, "15868" => 5.00, "15869" => 5.00, "15870" => 5.00, "15871" => 5.00, "15872" => 5.00, "15873" => 5.00, "15874" => 5.00, "15875" => 5.00, "15876" => 5.00, "15877" => 5.00, "15878" => 5.00, "15879" => 4.20, "15880" => 3.83, "15881" => 6.56, "15882" => 6.56, "15883" => 6.06, "15884" => 5.54, "15885" => 2.32, "15886" => 6.17, "15887" => 8.349999, "15888" => 6.74, "15889" => 5.62, "15890" => 5.48, "15891" => 5.70, "15892" => 6.23, "15893" => 4.62, "15894" => 3.74, "15895" => 2.67, "15896" => 4.63, "15897" => 3.04, "15898" => 3.34, "15899" => 1.65, "15900" => 5.84, "15901" => 6.72, "15902" => 8.75, "15903" => 6.56, "15904" => 6.56, "15905" => 8.70, "15906" => 8.75, "15907" => 8.75, "15908" => 3.74, "15909" => 6.21, "15910" => 5.75, "15911" => 5.61, "15912" => 8.15, "15913" => 5.00, "15914" => 8.79, "15915" => 9.36, "15916" => 9.16, "15917" => 7.69, "15918" => 6.16, "15919" => 6.04, "15920" => 6.04, "15921" => 6.04, "15922" => 6.04, "15923" => 7.25, "15924" => 6.03, "15925" => 6.64, "15926" => 6.64, "15927" => 6.39, "15928" => 6.61, "15929" => 6.61, "15930" => 5.68, "15931" => 2.45, "15932" => 5.35, "15933" => 5.35, "15934" => 3.77, "15935" => 4.97, "15936" => 4.97, "15937" => 7.03, "15938" => 7.25, "15939" => 6.03, "15940" => 7.04, "15941" => 7.04, "15942" => 6.39, "15943" => 7.40, "15944" => 7.69, "15945" => 7.69, "15946" => 7.84, "15947" => 7.03, "15948" => 7.65, "15949" => 6.39, "15950" => 4.32, "15951" => 5.68, "15952" => 2.45, "15953" => 5.31, "15954" => 5.31, "15955" => 5.80, "15956" => 6.24, "15957" => 6.24, "15958" => 6.16, "15959" => 6.16, "15960" => 6.22, "15961" => 4.32, "15962" => 6.04, "15963" => 3.77, "15964" => 7.04, "15965" => 7.48, "15966" => 7.75, "15967" => 4.91, "15968" => 6.64, "15969" => 7.65, "15970" => 5.31, "15971" => 6.20, "15972" => 6.15, "15973" => 2.61, "15974" => 5.35, "15975" => 6.04);
+%goth_w6=("1" => 3.33, "2" => 3.39, "3" => 4.06, "4" => 7.19, "5" => 7.12, "6" => 9.35, "7" => 8.60, "8" => 2.34, "9" => 4.06, "10" => 4.06, "11" => 3.82, "12" => 6.85, "13" => 2.70, "14" => 4.12, "15" => 2.70, "16" => 5.20, "17" => 7.12, "18" => 7.12, "19" => 7.12, "20" => 7.12, "21" => 7.12, "22" => 7.12, "23" => 7.12, "24" => 7.12, "25" => 7.12, "26" => 7.12, "27" => 2.70, "28" => 2.70, "29" => 5.40, "30" => 6.85, "31" => 5.40, "32" => 6.17, "33" => 9.37, "34" => 8.08, "35" => 7.54, "36" => 7.93, "37" => 8.059999, "38" => 6.85, "39" => 6.44, "40" => 7.90, "41" => 8.26, "42" => 2.93, "43" => 5.91, "44" => 7.80, "45" => 6.43, "46" => 9.87, "47" => 8.21, "48" => 8.38, "49" => 7.11, "50" => 8.38, "51" => 7.73, "52" => 7.15, "53" => 7.09, "54" => 8.29, "55" => 7.84, "56" => 10.58, "57" => 8.11, "58" => 7.58, "59" => 7.07, "60" => 4.06, "61" => 7.67, "62" => 4.06, "63" => 5.88, "64" => 5.04, "65" => 5.00, "66" => 6.34, "67" => 7.059999, "68" => 6.25, "69" => 7.07, "70" => 6.37, "71" => 4.77, "72" => 6.92, "73" => 6.73, "74" => 2.71, "75" => 3.09, "76" => 6.52, "77" => 2.71, "78" => 10.10, "79" => 6.73, "80" => 6.70, "81" => 7.08, "82" => 7.059999, "83" => 4.92, "84" => 5.93, "85" => 4.34, "86" => 6.73, "87" => 6.21, "88" => 8.50, "89" => 6.17, "90" => 6.28, "91" => 5.41, "92" => 4.11, "93" => 4.15, "94" => 4.11, "95" => 6.09, "96" => 2.70, "97" => 5.20, "98" => 2.70, "99" => 4.24, "100" => 6.09, "101" => 3.39, "102" => 6.52, "103" => 7.25, "104" => 1.41, "105" => 6.63, "106" => 7.08, "107" => 5.97, "108" => 4.72, "109" => 5.71, "110" => 3.61, "111" => 3.61, "112" => 7.16, "113" => 7.15, "114" => 5.00, "115" => 6.40, "116" => 6.40, "117" => 2.70, "118" => 6.28, "119" => 5.32, "120" => 2.70, "121" => 4.72, "122" => 4.72, "123" => 5.71, "124" => 8.10, "125" => 13.660001, "126" => 6.17, "127" => 5.00, "128" => 5.00, "129" => 5.00, "130" => 5.00, "131" => 5.00, "132" => 5.00, "133" => 5.00, "134" => 7.93, "135" => 5.00, "136" => 8.04, "137" => 5.00, "139" => 11.53, "140" => 4.40, "141" => 6.86, "142" => 8.38, "143" => 11.17, "144" => 4.65, "145" => 10.39, "146" => 2.71, "147" => 2.71, "148" => 6.70, "149" => 10.809999, "150" => 6.60, "151" => 6.85, "152" => 5.71, "153" => 6.85, "154" => 5.71, "155" => 3.39, "156" => 6.85, "157" => 4.23, "158" => 4.23, "159" => 6.75, "160" => 4.23, "161" => 8.97, "162" => 8.95, "163" => 9.29, "164" => 8.08, "165" => 8.08, "166" => 8.08, "167" => 8.08, "168" => 8.08, "169" => 8.08, "170" => 7.93, "171" => 6.85, "172" => 6.85, "173" => 6.85, "174" => 6.85, "175" => 2.93, "176" => 2.93, "177" => 2.93, "178" => 2.93, "179" => 8.13, "180" => 8.21, "181" => 8.38, "182" => 8.38, "183" => 8.38, "184" => 8.38, "185" => 8.38, "186" => 6.85, "187" => 8.29, "188" => 8.29, "189" => 8.29, "190" => 8.29, "191" => 7.58, "192" => 6.98, "193" => 6.34, "194" => 6.34, "195" => 6.34, "196" => 6.34, "197" => 6.34, "198" => 6.34, "199" => 6.25, "200" => 6.37, "201" => 6.37, "202" => 6.37, "203" => 6.37, "204" => 3.35, "205" => 3.33, "206" => 3.49, "207" => 3.36, "208" => 6.99, "209" => 6.73, "210" => 6.70, "211" => 6.70, "212" => 6.70, "213" => 6.70, "214" => 6.70, "215" => 6.85, "216" => 6.73, "217" => 6.73, "218" => 6.73, "219" => 6.73, "220" => 6.28, "221" => 7.11, "222" => 6.28, "223" => 7.15, "224" => 7.58, "225" => 7.07, "226" => 5.00, "227" => 5.93, "228" => 10.700001, "229" => 5.41, "230" => 7.12, "231" => 5.00, "232" => 5.00, "233" => 5.00, "234" => 5.00, "235" => 5.00, "236" => 5.00, "237" => 5.00, "238" => 5.00, "239" => 5.00, "240" => 5.00, "241" => 5.00, "242" => 5.00, "243" => 5.00, "244" => 5.00, "245" => 5.00, "246" => 5.00, "247" => 5.00, "248" => 5.00, "249" => 5.00, "250" => 5.00, "251" => 5.00, "252" => 5.00, "253" => 5.00, "254" => 5.00, "255" => 5.00, "256" => 5.00, "257" => 5.00, "258" => 5.00, "259" => 5.00, "260" => 5.00, "261" => 5.00, "262" => 5.00, "263" => 5.00, "264" => 5.00, "265" => 5.00, "266" => 5.00, "267" => 5.00, "268" => 5.00, "269" => 5.00, "270" => 5.00, "271" => 5.00, "272" => 5.00, "273" => 5.00, "274" => 5.00, "275" => 5.00, "276" => 5.00, "277" => 5.00, "278" => 5.00, "279" => 5.00, "280" => 5.00, "281" => 5.00, "282" => 5.00, "283" => 5.00, "284" => 5.00, "285" => 5.00, "286" => 5.00, "287" => 5.00, "288" => 5.00, "289" => 5.00, "290" => 5.00, "291" => 5.00, "292" => 5.00, "293" => 5.00, "294" => 5.00, "295" => 5.00, "296" => 5.00, "297" => 5.00, "298" => 5.00, "299" => 5.00, "300" => 5.00, "301" => 5.00, "302" => 5.00, "303" => 5.00, "304" => 5.00, "305" => 5.00, "306" => 5.00, "307" => 5.00, "308" => 5.00, "309" => 5.00, "310" => 5.00, "311" => 5.00, "312" => 5.00, "313" => 5.00, "314" => 5.00, "315" => 5.00, "316" => 5.00, "317" => 5.00, "318" => 5.00, "319" => 5.00, "320" => 5.00, "321" => 5.00, "322" => 5.00, "323" => 5.00, "324" => 5.00, "325" => 5.00, "326" => 5.00, "327" => 5.00, "328" => 5.00, "329" => 5.00, "330" => 5.00, "331" => 5.00, "332" => 5.00, "333" => 5.00, "334" => 5.00, "335" => 5.00, "336" => 5.00, "337" => 5.00, "338" => 5.00, "339" => 5.00, "340" => 5.00, "341" => 5.00, "342" => 5.00, "343" => 5.00, "344" => 5.00, "345" => 5.00, "346" => 5.00, "347" => 5.00, "348" => 5.00, "349" => 5.00, "350" => 5.00, "351" => 5.00, "352" => 5.00, "353" => 5.00, "354" => 5.00, "355" => 5.00, "356" => 5.00, "357" => 5.00, "358" => 5.00, "359" => 5.00, "360" => 5.00, "361" => 5.00, "362" => 5.00, "363" => 5.00, "364" => 5.00, "365" => 5.00, "366" => 5.00, "367" => 5.00, "368" => 5.00, "369" => 5.00, "370" => 5.00, "371" => 5.00, "372" => 5.00, "373" => 5.00, "374" => 5.00, "375" => 5.00, "376" => 5.00, "377" => 5.00, "378" => 5.00, "379" => 5.00, "380" => 5.00, "381" => 5.00, "382" => 5.00, "383" => 5.00, "384" => 5.00, "385" => 5.00, "386" => 5.00, "387" => 5.00, "388" => 5.00, "389" => 5.00, "390" => 5.00, "391" => 5.00, "392" => 5.00, "393" => 5.00, "394" => 5.00, "395" => 5.00, "396" => 5.00, "397" => 5.00, "398" => 5.00, "399" => 5.00, "400" => 5.00, "401" => 5.00, "402" => 5.00, "403" => 5.00, "404" => 5.00, "405" => 5.00, "406" => 5.00, "407" => 5.00, "408" => 5.00, "409" => 5.00, "410" => 5.00, "411" => 5.00, "412" => 5.00, "413" => 5.00, "414" => 5.00, "415" => 5.00, "416" => 5.00, "417" => 5.00, "418" => 5.00, "419" => 5.00, "420" => 5.00, "421" => 5.00, "422" => 5.00, "423" => 5.00, "424" => 5.00, "425" => 5.00, "426" => 5.00, "427" => 5.00, "428" => 5.00, "429" => 5.00, "430" => 5.00, "431" => 5.00, "432" => 5.00, "433" => 5.00, "434" => 5.00, "435" => 5.00, "436" => 5.00, "437" => 5.00, "438" => 5.00, "439" => 5.00, "440" => 5.00, "441" => 5.00, "442" => 5.00, "443" => 5.00, "444" => 5.00, "445" => 5.00, "446" => 5.00, "447" => 5.00, "448" => 5.00, "449" => 5.00, "450" => 5.00, "451" => 5.00, "452" => 5.00, "453" => 5.00, "454" => 5.00, "455" => 5.00, "456" => 5.00, "457" => 5.00, "458" => 5.00, "459" => 5.00, "460" => 5.00, "461" => 5.00, "462" => 5.00, "463" => 5.00, "464" => 5.00, "465" => 5.00, "466" => 5.00, "467" => 5.00, "468" => 5.00, "469" => 5.00, "470" => 5.00, "471" => 5.00, "472" => 5.00, "473" => 5.00, "474" => 5.00, "475" => 5.00, "476" => 5.00, "477" => 5.00, "478" => 5.00, "479" => 5.00, "480" => 5.00, "481" => 5.00, "482" => 5.00, "483" => 5.00, "484" => 5.00, "485" => 5.00, "486" => 5.00, "487" => 5.00, "488" => 5.00, "489" => 5.00, "490" => 5.00, "491" => 5.00, "492" => 5.00, "493" => 5.00, "494" => 5.00, "495" => 5.00, "496" => 5.00, "497" => 5.00, "498" => 5.00, "499" => 5.00, "500" => 5.00, "501" => 5.00, "502" => 5.00, "503" => 5.00, "504" => 5.00, "505" => 5.00, "506" => 5.00, "507" => 5.00, "508" => 5.00, "509" => 5.00, "510" => 5.00, "511" => 5.00, "512" => 5.00, "513" => 5.00, "514" => 5.00, "515" => 5.00, "516" => 5.00, "517" => 5.00, "518" => 5.00, "519" => 5.00, "520" => 5.00, "521" => 5.00, "522" => 5.00, "523" => 5.00, "524" => 5.00, "525" => 5.00, "526" => 5.00, "527" => 5.00, "528" => 5.00, "529" => 5.00, "530" => 5.00, "531" => 5.00, "532" => 5.00, "533" => 5.00, "534" => 5.00, "535" => 5.00, "536" => 5.00, "537" => 5.00, "538" => 5.00, "539" => 5.00, "540" => 5.00, "541" => 5.00, "542" => 5.00, "543" => 5.00, "544" => 5.00, "545" => 5.00, "546" => 5.00, "547" => 5.00, "548" => 5.00, "549" => 5.00, "550" => 5.00, "551" => 5.00, "552" => 5.00, "553" => 5.00, "554" => 5.00, "555" => 5.00, "556" => 5.00, "557" => 5.00, "558" => 5.00, "559" => 5.00, "560" => 5.00, "561" => 5.00, "562" => 5.00, "563" => 5.00, "564" => 5.00, "565" => 5.00, "566" => 5.00, "567" => 5.00, "568" => 5.00, "569" => 5.00, "570" => 5.00, "571" => 5.00, "572" => 5.00, "573" => 5.00, "574" => 5.00, "575" => 5.00, "576" => 5.00, "577" => 5.00, "578" => 5.00, "579" => 5.00, "580" => 5.00, "581" => 5.00, "582" => 5.00, "583" => 5.00, "584" => 5.00, "585" => 5.00, "586" => 5.00, "587" => 5.00, "588" => 5.00, "589" => 5.00, "590" => 5.00, "591" => 5.00, "592" => 5.00, "593" => 5.00, "594" => 5.00, "595" => 5.00, "596" => 5.00, "597" => 5.00, "598" => 5.00, "599" => 5.00, "600" => 5.00, "601" => 5.00, "602" => 5.00, "603" => 5.00, "604" => 5.00, "605" => 5.00, "606" => 5.00, "607" => 5.00, "608" => 5.00, "609" => 5.00, "610" => 5.00, "611" => 5.00, "612" => 5.00, "613" => 5.00, "614" => 5.00, "615" => 5.00, "616" => 5.00, "617" => 5.00, "618" => 5.00, "619" => 5.00, "620" => 5.00, "621" => 5.00, "622" => 5.00, "623" => 5.00, "624" => 5.00, "625" => 5.00, "626" => 5.00, "627" => 5.00, "628" => 5.00, "629" => 5.00, "630" => 5.00, "631" => 5.00, "632" => 5.00, "8718" => 5.00, "8719" => 5.00, "9354" => 7.72, "9355" => 8.37, "9356" => 2.46, "9357" => 4.32, "9358" => 8.40, "9359" => 10.73, "9360" => 10.72, "9361" => 6.34, "9362" => 3.13, "9363" => 6.73, "9364" => 6.37, "9365" => 6.70, "9366" => 8.08, "9367" => 2.93, "9368" => 8.29, "9369" => 6.85, "9370" => 8.38, "9371" => 9.29, "9372" => 9.49, "9373" => 9.49, "9374" => 9.29, "9375" => 9.29, "9376" => 9.49, "9377" => 4.23, "9378" => 4.23, "9379" => 4.23, "9380" => 4.23, "9381" => 4.23, "9382" => 4.23, "9383" => 4.23, "9384" => 4.23, "9385" => 4.23, "9386" => 4.23, "9387" => 4.23, "9388" => 4.23, "9389" => 4.23, "9390" => 4.23, "9391" => 4.23, "9392" => 4.23, "9393" => 4.23, "9394" => 8.08, "9395" => 6.85, "9396" => 6.85, "9397" => 6.85, "9398" => 2.93, "9399" => 2.93, "9400" => 2.93, "9401" => 8.38, "9402" => 8.38, "9403" => 8.29, "9404" => 8.29, "9405" => 8.29, "9406" => 6.34, "9407" => 6.37, "9408" => 6.37, "9409" => 6.37, "9410" => 3.49, "9411" => 2.71, "9412" => 3.71, "9413" => 6.70, "9414" => 6.70, "9415" => 6.73, "9416" => 6.73, "9417" => 6.73, "9418" => 7.13, "9419" => 7.13, "9420" => 7.13, "9421" => 10.39, "9422" => 10.39, "9423" => 6.25, "9424" => 6.25, "9425" => 6.25, "9426" => 6.37, "9427" => 6.37, "9428" => 6.37, "9429" => 8.32, "9430" => 8.32, "9431" => 8.32, "9432" => 5.84, "9433" => 5.84, "9434" => 5.84, "9435" => 3.09, "9436" => 6.70, "9437" => 6.70, "9438" => 6.21, "9439" => 6.21, "9440" => 6.21, "9441" => 5.87, "9442" => 4.64, "9443" => 2.34, "9444" => 3.33, "9445" => 3.39, "9446" => 4.06, "9447" => 7.13, "9448" => 7.12, "9449" => 9.35, "9450" => 8.47, "9451" => 2.20, "9452" => 4.06, "9453" => 4.06, "9454" => 3.82, "9455" => 6.85, "9456" => 2.70, "9457" => 4.11, "9458" => 2.70, "9459" => 5.20, "9460" => 7.13, "9461" => 7.12, "9462" => 7.12, "9463" => 7.13, "9464" => 7.12, "9465" => 7.12, "9466" => 7.12, "9467" => 7.12, "9468" => 7.12, "9469" => 7.12, "9470" => 2.70, "9471" => 2.70, "9472" => 5.77, "9473" => 6.85, "9474" => 5.77, "9475" => 6.17, "9476" => 9.37, "9477" => 7.96, "9478" => 7.48, "9479" => 7.63, "9480" => 7.98, "9481" => 6.82, "9482" => 6.42, "9483" => 7.82, "9484" => 8.18, "9485" => 3.07, "9486" => 5.90, "9487" => 7.49, "9488" => 6.39, "9489" => 9.73, "9490" => 8.13, "9491" => 8.27, "9492" => 6.87, "9493" => 8.28, "9494" => 7.63, "9495" => 7.10, "9496" => 6.94, "9497" => 8.20, "9498" => 7.73, "9499" => 10.31, "9500" => 7.99, "9501" => 7.48, "9502" => 7.00, "9503" => 4.06, "9504" => 7.67, "9505" => 4.06, "9506" => 5.88, "9507" => 5.80, "9508" => 5.00, "9509" => 6.44, "9510" => 6.87, "9511" => 5.97, "9512" => 6.90, "9513" => 6.54, "9514" => 4.18, "9515" => 6.73, "9516" => 6.690001, "9517" => 2.85, "9518" => 2.96, "9519" => 6.25, "9520" => 2.85, "9521" => 9.92, "9522" => 6.690001, "9523" => 6.56, "9524" => 6.90, "9525" => 6.87, "9526" => 4.61, "9527" => 5.66, "9528" => 4.24, "9529" => 6.52, "9530" => 6.16, "9531" => 8.360001, "9532" => 6.13, "9533" => 6.24, "9534" => 5.49, "9535" => 4.06, "9536" => 4.15, "9537" => 4.06, "9538" => 5.00, "9539" => 2.70, "9540" => 5.20, "9541" => 2.70, "9542" => 4.24, "9543" => 6.85, "9544" => 3.39, "9545" => 7.12, "9546" => 7.25, "9547" => 0.95, "9548" => 7.12, "9549" => 7.08, "9550" => 5.97, "9551" => 4.68, "9552" => 5.71, "9553" => 3.61, "9554" => 3.61, "9555" => 6.89, "9556" => 6.88, "9557" => 5.00, "9558" => 6.40, "9559" => 6.40, "9560" => 2.70, "9561" => 6.28, "9562" => 5.20, "9563" => 2.70, "9564" => 4.68, "9565" => 4.68, "9566" => 5.71, "9567" => 8.10, "9568" => 13.52, "9569" => 6.17, "9570" => 5.00, "9571" => 5.00, "9572" => 5.00, "9573" => 5.00, "9574" => 5.00, "9575" => 5.00, "9576" => 5.00, "9577" => 5.00, "9578" => 5.00, "9579" => 5.00, "9580" => 5.00, "9582" => 11.280001, "9583" => 4.65, "9584" => 6.39, "9585" => 8.28, "9586" => 10.959999, "9587" => 4.65, "9588" => 10.43, "9589" => 2.85, "9590" => 3.58, "9591" => 6.66, "9592" => 10.80, "9593" => 6.84, "9594" => 6.85, "9595" => 5.71, "9596" => 6.85, "9597" => 5.71, "9598" => 3.39, "9599" => 6.85, "9600" => 4.30, "9601" => 4.30, "9602" => 6.85, "9603" => 4.30, "9604" => 9.55, "9605" => 9.55, "9606" => 9.55, "9607" => 7.96, "9608" => 7.96, "9609" => 7.96, "9610" => 7.96, "9611" => 7.96, "9612" => 7.96, "9613" => 7.63, "9614" => 6.82, "9615" => 6.82, "9616" => 6.82, "9617" => 6.82, "9618" => 3.07, "9619" => 3.07, "9620" => 3.07, "9621" => 3.07, "9622" => 7.98, "9623" => 8.13, "9624" => 8.27, "9625" => 8.27, "9626" => 8.27, "9627" => 8.27, "9628" => 8.27, "9629" => 6.85, "9630" => 8.20, "9631" => 8.20, "9632" => 8.20, "9633" => 8.20, "9634" => 7.48, "9635" => 6.94, "9636" => 6.44, "9637" => 6.44, "9638" => 6.44, "9639" => 6.44, "9640" => 6.44, "9641" => 6.44, "9642" => 5.97, "9643" => 6.54, "9644" => 6.54, "9645" => 6.54, "9646" => 6.54, "9647" => 2.86, "9648" => 2.85, "9649" => 2.85, "9650" => 2.85, "9651" => 6.95, "9652" => 6.690001, "9653" => 6.56, "9654" => 6.56, "9655" => 6.56, "9656" => 6.56, "9657" => 6.56, "9658" => 6.85, "9659" => 6.52, "9660" => 6.52, "9661" => 6.52, "9662" => 6.52, "9663" => 6.24, "9664" => 7.03, "9665" => 6.24, "9666" => 7.10, "9667" => 7.48, "9668" => 7.00, "9669" => 5.80, "9670" => 5.66, "9671" => 10.39, "9672" => 5.49, "9673" => 7.12, "9674" => 7.71, "9675" => 8.57, "9676" => 2.46, "9677" => 4.32, "9678" => 7.83, "9679" => 10.54, "9680" => 10.54, "9681" => 6.44, "9682" => 2.85, "9683" => 6.52, "9684" => 6.54, "9685" => 6.56, "9686" => 7.96, "9687" => 3.07, "9688" => 8.20, "9689" => 6.82, "9690" => 8.27, "9691" => 9.55, "9692" => 9.55, "9693" => 9.55, "9694" => 9.55, "9695" => 9.55, "9696" => 9.55, "9697" => 4.30, "9698" => 4.30, "9699" => 4.30, "9700" => 4.30, "9701" => 4.30, "9702" => 4.30, "9703" => 4.30, "9704" => 4.30, "9705" => 4.30, "9706" => 4.30, "9707" => 4.30, "9708" => 4.30, "9709" => 4.30, "9710" => 4.30, "9711" => 4.30, "9712" => 4.30, "9713" => 4.30, "9714" => 7.96, "9715" => 6.82, "9716" => 6.82, "9717" => 6.82, "9718" => 3.07, "9719" => 3.07, "9720" => 3.07, "9721" => 8.27, "9722" => 8.27, "9723" => 8.20, "9724" => 8.20, "9725" => 8.20, "9726" => 6.44, "9727" => 6.54, "9728" => 6.54, "9729" => 6.54, "9730" => 2.85, "9731" => 2.85, "9732" => 2.85, "9733" => 6.56, "9734" => 6.56, "9735" => 6.52, "9736" => 6.52, "9737" => 6.52, "9738" => 2.50, "9739" => 2.50, "9740" => 2.50, "9741" => 2.50, "9742" => 2.50, "9743" => 2.50, "9744" => 2.50, "9745" => 2.50, "9746" => 2.50, "9747" => 2.50, "9748" => 2.50, "9749" => 2.50, "9750" => 2.50, "9751" => 2.50, "9752" => 2.50, "9753" => 2.50, "9754" => 2.50, "9755" => 2.50, "9756" => 2.50, "9757" => 2.50, "9758" => 3.33, "9759" => 3.33, "9760" => 3.33, "9761" => 3.33, "9762" => 3.33, "9763" => 3.33, "9764" => 3.33, "9765" => 3.33, "9766" => 3.33, "9767" => 3.33, "9768" => 3.33, "9769" => 3.33, "9770" => 3.33, "9771" => 3.33, "9772" => 3.33, "9773" => 3.33, "9774" => 3.33, "9775" => 3.33, "9776" => 3.33, "9777" => 3.33, "9778" => 3.33, "12063" => 5.00, "12064" => 5.00, "12065" => 5.00, "12066" => 5.00, "12067" => 5.00, "12068" => 5.00, "12069" => 5.00, "12070" => 5.00, "12071" => 5.00, "12072" => 5.00, "12073" => 5.00, "12074" => 5.00, "12075" => 5.00, "12076" => 5.00, "12077" => 5.00, "12078" => 5.00, "12079" => 5.00, "12080" => 5.00, "12081" => 5.00, "12082" => 5.00, "12083" => 5.00, "12084" => 5.00, "12085" => 5.00, "12086" => 5.00, "12087" => 5.00, "15444" => 3.33, "15445" => 3.33, "15446" => 3.33, "15447" => 3.33, "15448" => 3.33, "15449" => 7.49, "15450" => 8.00, "15451" => 7.53, "15452" => 8.09, "15453" => 8.62, "15454" => 9.33, "15456" => 6.85, "15457" => 6.85, "15458" => 6.85, "15459" => 6.85, "15460" => 6.85, "15461" => 11.139999, "15462" => 8.83, "15463" => 9.190001, "15464" => 6.85, "15465" => 6.85, "15466" => 6.85, "15467" => 6.85, "15468" => 6.85, "15469" => 6.85, "15470" => 6.85, "15471" => 6.85, "15472" => 6.85, "15473" => 6.85, "15474" => 6.85, "15475" => 6.85, "15476" => 6.85, "15477" => 9.23, "15478" => 6.85, "15479" => 6.85, "15480" => 6.85, "15481" => 6.85, "15482" => 9.75, "15483" => 9.75, "15484" => 7.92, "15485" => 7.92, "15486" => 9.09, "15487" => 9.09, "15488" => 9.09, "15489" => 6.85, "15490" => 6.85, "15491" => 6.85, "15492" => 6.85, "15493" => 6.48, "15494" => 8.26, "15495" => 6.85, "15496" => 6.85, "15497" => 6.85, "15498" => 6.85, "15499" => 5.71, "15500" => 6.86, "15501" => 6.86, "15502" => 6.85, "15503" => 3.83, "15504" => 6.29, "15505" => 6.85, "15506" => 6.85, "15507" => 6.85, "15508" => 6.85, "15509" => 6.85, "15510" => 6.85, "15511" => 9.75, "15512" => 6.85, "15513" => 7.38, "15514" => 6.46, "15515" => 8.37, "15516" => 5.00, "15517" => 8.77, "15518" => 9.41, "15519" => 8.95, "15520" => 9.52, "15521" => 8.27, "15522" => 8.74, "15523" => 8.56, "15524" => 9.33, "15525" => 9.02, "15526" => 9.62, "15527" => 9.72, "15528" => 9.82, "15529" => 9.09, "15530" => 9.49, "15531" => 7.92, "15532" => 8.50, "15533" => 9.37, "15534" => 9.82, "15535" => 8.65, "15536" => 9.00, "15537" => 9.02, "15538" => 9.30, "15539" => 8.84, "15540" => 8.94, "15541" => 9.33, "15542" => 9.66, "15543" => 9.65, "15544" => 9.86, "15545" => 9.48, "15546" => 9.639999, "15547" => 9.45, "15548" => 9.51, "15549" => 9.049999, "15550" => 9.16, "15551" => 8.84, "15552" => 9.41, "15553" => 9.68, "15554" => 9.12, "15555" => 9.42, "15556" => 8.62, "15557" => 8.780001, "15558" => 9.66, "15559" => 9.42, "15560" => 9.72, "15561" => 9.82, "15562" => 9.599999, "15563" => 9.69, "15564" => 9.85, "15565" => 9.80, "15566" => 9.52, "15567" => 9.700001, "15568" => 9.63, "15569" => 9.62, "15570" => 9.78, "15571" => 9.73, "15572" => 9.76, "15573" => 9.76, "15574" => 9.73, "15575" => 9.73, "15576" => 9.88, "15577" => 9.90, "15578" => 9.24, "15579" => 9.62, "15580" => 9.52, "15581" => 9.54, "15582" => 9.10, "15583" => 8.90, "15584" => 9.49, "15585" => 8.98, "15586" => 9.63, "15587" => 8.360001, "15588" => 8.95, "15589" => 8.809999, "15590" => 8.59, "15591" => 9.110001, "15592" => 9.82, "15593" => 8.94, "15594" => 9.07, "15595" => 9.700001, "15596" => 9.29, "15597" => 9.53, "15598" => 9.33, "15599" => 9.47, "15600" => 9.47, "15601" => 9.06, "15602" => 8.780001, "15603" => 9.83, "15604" => 9.66, "15605" => 8.50, "15606" => 9.83, "15607" => 9.110001, "15608" => 8.61, "15609" => 9.24, "15610" => 8.44, "15611" => 9.13, "15612" => 8.61, "15613" => 9.06, "15614" => 8.83, "15615" => 9.52, "15616" => 8.88, "15617" => 9.39, "15618" => 9.33, "15619" => 9.53, "15620" => 9.45, "15621" => 9.54, "15622" => 8.96, "15623" => 9.57, "15624" => 9.43, "15625" => 9.66, "15626" => 9.150001, "15627" => 9.59, "15628" => 9.42, "15629" => 9.72, "15630" => 9.22, "15631" => 9.50, "15632" => 9.32, "15633" => 9.73, "15634" => 9.36, "15635" => 9.63, "15636" => 8.76, "15637" => 9.190001, "15638" => 9.00, "15639" => 9.65, "15640" => 9.48, "15641" => 9.63, "15642" => 8.40, "15643" => 9.13, "15644" => 9.53, "15645" => 9.38, "15646" => 9.67, "15647" => 8.30, "15648" => 8.48, "15649" => 9.32, "15650" => 9.42, "15651" => 8.70, "15652" => 9.46, "15653" => 8.70, "15654" => 9.66, "15655" => 9.78, "15656" => 9.75, "15657" => 8.88, "15658" => 9.41, "15659" => 9.33, "15660" => 8.809999, "15661" => 9.42, "15662" => 9.309999, "15663" => 9.77, "15664" => 9.73, "15665" => 9.700001, "15666" => 9.67, "15667" => 9.71, "15668" => 9.72, "15669" => 9.190001, "15670" => 8.64, "15671" => 9.40, "15672" => 8.92, "15673" => 9.610001, "15674" => 8.73, "15675" => 9.39, "15676" => 8.65, "15677" => 9.37, "15678" => 8.719999, "15679" => 9.190001, "15680" => 8.97, "15681" => 8.43, "15682" => 9.639999, "15683" => 8.90, "15684" => 9.51, "15685" => 8.51, "15686" => 8.97, "15687" => 9.639999, "15688" => 9.52, "15689" => 8.76, "15690" => 9.12, "15691" => 9.51, "15692" => 8.80, "15693" => 8.74, "15694" => 9.610001, "15695" => 9.73, "15696" => 9.66, "15697" => 9.599999, "15698" => 9.54, "15699" => 9.52, "15700" => 9.47, "15701" => 8.44, "15702" => 8.34, "15703" => 8.67, "15704" => 8.59, "15705" => 7.90, "15706" => 8.349999, "15707" => 8.84, "15708" => 8.43, "15709" => 8.30, "15710" => 8.94, "15711" => 9.09, "15712" => 8.71, "15713" => 8.61, "15714" => 8.54, "15715" => 8.13, "15716" => 8.90, "15717" => 8.41, "15718" => 8.93, "15719" => 9.599999, "15720" => 9.700001, "15721" => 9.700001, "15722" => 9.39, "15723" => 8.18, "15724" => 8.65, "15725" => 6.85, "15726" => 6.85, "15727" => 9.29, "15728" => 8.780001, "15729" => 9.87, "15730" => 10.10, "15731" => 8.21, "15732" => 6.73, "15733" => 6.73, "15734" => 6.73, "15735" => 6.73, "15736" => 6.73, "15737" => 8.08, "15738" => 5.00, "15739" => 6.43, "15740" => 7.15, "15741" => 7.15, "15742" => 7.09, "15743" => 7.07, "15744" => 7.07, "15745" => 6.34, "15746" => 8.04, "15747" => 3.49, "15748" => 5.93, "15749" => 5.00, "15750" => 5.93, "15751" => 4.34, "15752" => 5.41, "15753" => 5.00, "15754" => 5.41, "15755" => 7.73, "15756" => 8.08, "15757" => 6.43, "15758" => 7.93, "15759" => 7.93, "15760" => 6.85, "15761" => 8.059999, "15762" => 8.21, "15763" => 8.21, "15764" => 8.38, "15765" => 7.73, "15766" => 8.29, "15767" => 7.09, "15768" => 4.92, "15769" => 6.34, "15770" => 3.33, "15771" => 6.25, "15772" => 6.25, "15773" => 6.37, "15774" => 7.49, "15775" => 7.19, "15776" => 6.73, "15777" => 6.73, "15778" => 6.70, "15779" => 4.92, "15780" => 6.73, "15781" => 4.34, "15782" => 5.00, "15783" => 7.93, "15784" => 7.90, "15785" => 8.26, "15786" => 5.91, "15787" => 7.15, "15788" => 8.29, "15789" => 6.25, "15790" => 6.92, "15791" => 7.11, "15792" => 3.49, "15793" => 5.93, "15794" => 6.73, "15795" => 10.07, "15796" => 6.15, "15797" => 4.72, "15798" => 5.01, "15799" => 6.93, "15800" => 4.92, "15801" => 4.34, "15802" => 7.07, "15803" => 6.73, "15804" => 4.92, "15805" => 5.93, "15806" => 5.45, "15807" => 4.92, "15808" => 2.71, "15809" => 4.77, "15810" => 6.73, "15811" => 4.86, "15812" => 6.28, "15813" => 6.90, "15814" => 10.10, "15815" => 6.14, "15816" => 6.87, "15817" => 5.93, "15818" => 5.93, "15819" => 6.73, "15820" => 8.38, "15821" => 5.64, "15822" => 7.05, "15823" => 7.74, "15824" => 4.68, "15825" => 7.59, "15826" => 7.90, "15827" => 2.98, "15828" => 7.00, "15829" => 6.37, "15830" => 5.84, "15831" => 6.62, "15832" => 6.34, "15833" => 10.10, "15834" => 6.74, "15835" => 6.48, "15836" => 7.13, "15837" => 8.50, "15838" => 6.73, "15839" => 5.93, "15840" => 5.93, "15841" => 6.16, "15842" => 6.20, "15843" => 4.92, "15844" => 6.70, "15845" => 0.00, "15846" => 1.82, "15847" => 1.82, "15848" => 2.34, "15849" => 0.00, "15850" => 5.00, "15851" => 5.11, "15852" => 5.11, "15853" => 5.11, "15854" => 5.11, "15855" => 5.11, "15856" => 5.38, "15857" => 5.38, "15858" => 5.00, "15859" => 5.00, "15860" => 5.00, "15861" => 5.00, "15862" => 5.00, "15863" => 5.00, "15864" => 5.00, "15865" => 5.00, "15866" => 5.00, "15867" => 1.84, "15868" => 5.00, "15869" => 5.00, "15870" => 5.00, "15871" => 5.00, "15872" => 5.00, "15873" => 5.00, "15874" => 5.00, "15875" => 5.00, "15876" => 5.00, "15877" => 5.00, "15878" => 5.00, "15879" => 4.37, "15880" => 3.83, "15881" => 6.85, "15882" => 6.85, "15883" => 6.62, "15884" => 6.28, "15885" => 2.65, "15886" => 6.58, "15887" => 8.95, "15888" => 7.34, "15889" => 6.14, "15890" => 6.15, "15891" => 6.12, "15892" => 6.73, "15893" => 5.18, "15894" => 3.88, "15895" => 3.03, "15896" => 5.13, "15897" => 3.49, "15898" => 3.83, "15899" => 1.72, "15900" => 6.46, "15901" => 7.07, "15902" => 8.75, "15903" => 6.85, "15904" => 6.85, "15905" => 9.09, "15906" => 9.110001, "15907" => 9.110001, "15908" => 3.88, "15909" => 6.63, "15910" => 6.54, "15911" => 6.31, "15912" => 8.57, "15913" => 5.00, "15914" => 9.55, "15915" => 9.73, "15916" => 9.92, "15917" => 8.13, "15918" => 6.690001, "15919" => 6.52, "15920" => 6.52, "15921" => 6.52, "15922" => 6.52, "15923" => 7.96, "15924" => 6.39, "15925" => 7.10, "15926" => 7.10, "15927" => 6.94, "15928" => 7.00, "15929" => 7.00, "15930" => 6.44, "15931" => 2.85, "15932" => 5.66, "15933" => 5.66, "15934" => 4.24, "15935" => 5.49, "15936" => 5.49, "15937" => 7.63, "15938" => 7.96, "15939" => 6.39, "15940" => 7.63, "15941" => 7.63, "15942" => 6.82, "15943" => 7.98, "15944" => 8.13, "15945" => 8.13, "15946" => 8.27, "15947" => 7.63, "15948" => 8.20, "15949" => 6.94, "15950" => 4.61, "15951" => 6.44, "15952" => 2.85, "15953" => 5.97, "15954" => 5.97, "15955" => 6.54, "15956" => 6.90, "15957" => 6.90, "15958" => 6.690001, "15959" => 6.690001, "15960" => 6.56, "15961" => 4.61, "15962" => 6.52, "15963" => 4.24, "15964" => 7.63, "15965" => 7.82, "15966" => 8.18, "15967" => 5.90, "15968" => 7.10, "15969" => 8.20, "15970" => 5.97, "15971" => 6.73, "15972" => 6.690001, "15973" => 2.96, "15974" => 5.66, "15975" => 6.52);
+%maru_w4=("1" => 3.33, "2" => 3.02, "3" => 3.74, "4" => 6.44, "5" => 6.39, "6" => 8.89, "7" => 7.71, "8" => 2.90, "9" => 3.66, "10" => 3.66, "11" => 4.03, "12" => 6.690001, "13" => 3.01, "14" => 4.44, "15" => 3.01, "16" => 4.74, "17" => 6.52, "18" => 6.52, "19" => 6.52, "20" => 6.52, "21" => 6.52, "22" => 6.52, "23" => 6.52, "24" => 6.52, "25" => 6.52, "26" => 6.52, "27" => 3.06, "28" => 3.06, "29" => 5.45, "30" => 6.690001, "31" => 5.45, "32" => 5.79, "33" => 9.08, "34" => 7.60, "35" => 7.26, "36" => 7.42, "37" => 7.71, "38" => 6.47, "39" => 6.53, "40" => 7.65, "41" => 7.93, "42" => 2.70, "43" => 5.23, "44" => 6.92, "45" => 6.30, "46" => 9.54, "47" => 7.79, "48" => 8.05, "49" => 6.99, "50" => 8.03, "51" => 7.20, "52" => 6.71, "53" => 6.76, "54" => 7.74, "55" => 7.26, "56" => 10.33, "57" => 7.20, "58" => 7.08, "59" => 6.81, "60" => 3.81, "61" => 6.70, "62" => 3.81, "63" => 5.69, "64" => 5.00, "65" => 5.00, "66" => 5.73, "67" => 6.24, "68" => 5.54, "69" => 6.25, "70" => 5.74, "71" => 4.00, "72" => 6.18, "73" => 6.01, "74" => 2.34, "75" => 2.81, "76" => 5.36, "77" => 2.33, "78" => 8.77, "79" => 6.00, "80" => 6.03, "81" => 6.24, "82" => 6.24, "83" => 4.32, "84" => 5.35, "85" => 4.03, "86" => 5.97, "87" => 5.50, "88" => 8.07, "89" => 5.25, "90" => 5.51, "91" => 5.16, "92" => 3.96, "93" => 3.72, "94" => 3.97, "95" => 6.49, "96" => 2.96, "97" => 4.74, "98" => 2.96, "99" => 3.72, "100" => 6.49, "101" => 3.02, "102" => 5.54, "103" => 6.46, "104" => 1.28, "105" => 5.39, "106" => 6.10, "107" => 5.74, "108" => 4.30, "109" => 4.82, "110" => 3.09, "111" => 3.09, "112" => 6.34, "113" => 6.34, "114" => 5.00, "115" => 5.94, "116" => 5.94, "117" => 3.01, "118" => 6.14, "119" => 4.94, "120" => 3.01, "121" => 4.30, "122" => 4.30, "123" => 4.82, "124" => 9.04, "125" => 12.940001, "126" => 5.79, "127" => 5.00, "128" => 5.00, "129" => 5.00, "130" => 5.00, "131" => 5.00, "132" => 5.00, "133" => 5.00, "134" => 7.42, "135" => 5.00, "136" => 7.42, "137" => 5.00, "139" => 10.80, "140" => 4.15, "141" => 6.60, "142" => 8.05, "143" => 10.809999, "144" => 4.37, "145" => 9.34, "146" => 2.34, "147" => 3.20, "148" => 6.03, "149" => 9.90, "150" => 6.33, "151" => 6.690001, "152" => 5.70, "153" => 6.690001, "154" => 5.71, "155" => 2.77, "156" => 6.690001, "157" => 4.03, "158" => 4.03, "159" => 6.03, "160" => 4.03, "161" => 8.29, "162" => 8.29, "163" => 8.29, "164" => 7.60, "165" => 7.60, "166" => 7.60, "167" => 7.60, "168" => 7.60, "169" => 7.60, "170" => 7.42, "171" => 6.47, "172" => 6.47, "173" => 6.47, "174" => 6.47, "175" => 2.70, "176" => 2.70, "177" => 3.08, "178" => 2.95, "179" => 7.81, "180" => 7.79, "181" => 8.05, "182" => 8.05, "183" => 8.05, "184" => 8.05, "185" => 8.05, "186" => 6.690001, "187" => 7.74, "188" => 7.74, "189" => 7.74, "190" => 7.74, "191" => 7.08, "192" => 6.95, "193" => 5.73, "194" => 5.73, "195" => 5.73, "196" => 5.73, "197" => 5.73, "198" => 5.73, "199" => 5.54, "200" => 5.74, "201" => 5.74, "202" => 5.74, "203" => 5.74, "204" => 2.34, "205" => 2.34, "206" => 2.78, "207" => 2.88, "208" => 5.92, "209" => 6.00, "210" => 6.03, "211" => 6.03, "212" => 6.03, "213" => 6.03, "214" => 6.03, "215" => 6.690001, "216" => 5.97, "217" => 5.97, "218" => 5.97, "219" => 5.97, "220" => 5.51, "221" => 6.24, "222" => 5.51, "223" => 6.71, "224" => 7.08, "225" => 6.81, "226" => 5.00, "227" => 5.35, "228" => 9.559999, "229" => 5.16, "230" => 6.52, "231" => 5.00, "232" => 5.00, "233" => 5.00, "234" => 5.00, "235" => 5.00, "236" => 5.00, "237" => 5.00, "238" => 5.00, "239" => 5.00, "240" => 5.00, "241" => 5.00, "242" => 5.00, "243" => 5.00, "244" => 5.00, "245" => 5.00, "246" => 5.00, "247" => 5.00, "248" => 5.00, "249" => 5.00, "250" => 5.00, "251" => 5.00, "252" => 5.00, "253" => 5.00, "254" => 5.00, "255" => 5.00, "256" => 5.00, "257" => 5.00, "258" => 5.00, "259" => 5.00, "260" => 5.00, "261" => 5.00, "262" => 5.00, "263" => 5.00, "264" => 5.00, "265" => 5.00, "266" => 5.00, "267" => 5.00, "268" => 5.00, "269" => 5.00, "270" => 5.00, "271" => 5.00, "272" => 5.00, "273" => 5.00, "274" => 5.00, "275" => 5.00, "276" => 5.00, "277" => 5.00, "278" => 5.00, "279" => 5.00, "280" => 5.00, "281" => 5.00, "282" => 5.00, "283" => 5.00, "284" => 5.00, "285" => 5.00, "286" => 5.00, "287" => 5.00, "288" => 5.00, "289" => 5.00, "290" => 5.00, "291" => 5.00, "292" => 5.00, "293" => 5.00, "294" => 5.00, "295" => 5.00, "296" => 5.00, "297" => 5.00, "298" => 5.00, "299" => 5.00, "300" => 5.00, "301" => 5.00, "302" => 5.00, "303" => 5.00, "304" => 5.00, "305" => 5.00, "306" => 5.00, "307" => 5.00, "308" => 5.00, "309" => 5.00, "310" => 5.00, "311" => 5.00, "312" => 5.00, "313" => 5.00, "314" => 5.00, "315" => 5.00, "316" => 5.00, "317" => 5.00, "318" => 5.00, "319" => 5.00, "320" => 5.00, "321" => 5.00, "322" => 5.00, "323" => 5.00, "324" => 5.00, "325" => 5.00, "326" => 5.00, "327" => 5.00, "328" => 5.00, "329" => 5.00, "330" => 5.00, "331" => 5.00, "332" => 5.00, "333" => 5.00, "334" => 5.00, "335" => 5.00, "336" => 5.00, "337" => 5.00, "338" => 5.00, "339" => 5.00, "340" => 5.00, "341" => 5.00, "342" => 5.00, "343" => 5.00, "344" => 5.00, "345" => 5.00, "346" => 5.00, "347" => 5.00, "348" => 5.00, "349" => 5.00, "350" => 5.00, "351" => 5.00, "352" => 5.00, "353" => 5.00, "354" => 5.00, "355" => 5.00, "356" => 5.00, "357" => 5.00, "358" => 5.00, "359" => 5.00, "360" => 5.00, "361" => 5.00, "362" => 5.00, "363" => 5.00, "364" => 5.00, "365" => 5.00, "366" => 5.00, "367" => 5.00, "368" => 5.00, "369" => 5.00, "370" => 5.00, "371" => 5.00, "372" => 5.00, "373" => 5.00, "374" => 5.00, "375" => 5.00, "376" => 5.00, "377" => 5.00, "378" => 5.00, "379" => 5.00, "380" => 5.00, "381" => 5.00, "382" => 5.00, "383" => 5.00, "384" => 5.00, "385" => 5.00, "386" => 5.00, "387" => 5.00, "388" => 5.00, "389" => 5.00, "390" => 5.00, "391" => 5.00, "392" => 5.00, "393" => 5.00, "394" => 5.00, "395" => 5.00, "396" => 5.00, "397" => 5.00, "398" => 5.00, "399" => 5.00, "400" => 5.00, "401" => 5.00, "402" => 5.00, "403" => 5.00, "404" => 5.00, "405" => 5.00, "406" => 5.00, "407" => 5.00, "408" => 5.00, "409" => 5.00, "410" => 5.00, "411" => 5.00, "412" => 5.00, "413" => 5.00, "414" => 5.00, "415" => 5.00, "416" => 5.00, "417" => 5.00, "418" => 5.00, "419" => 5.00, "420" => 5.00, "421" => 5.00, "422" => 5.00, "423" => 5.00, "424" => 5.00, "425" => 5.00, "426" => 5.00, "427" => 5.00, "428" => 5.00, "429" => 5.00, "430" => 5.00, "431" => 5.00, "432" => 5.00, "433" => 5.00, "434" => 5.00, "435" => 5.00, "436" => 5.00, "437" => 5.00, "438" => 5.00, "439" => 5.00, "440" => 5.00, "441" => 5.00, "442" => 5.00, "443" => 5.00, "444" => 5.00, "445" => 5.00, "446" => 5.00, "447" => 5.00, "448" => 5.00, "449" => 5.00, "450" => 5.00, "451" => 5.00, "452" => 5.00, "453" => 5.00, "454" => 5.00, "455" => 5.00, "456" => 5.00, "457" => 5.00, "458" => 5.00, "459" => 5.00, "460" => 5.00, "461" => 5.00, "462" => 5.00, "463" => 5.00, "464" => 5.00, "465" => 5.00, "466" => 5.00, "467" => 5.00, "468" => 5.00, "469" => 5.00, "470" => 5.00, "471" => 5.00, "472" => 5.00, "473" => 5.00, "474" => 5.00, "475" => 5.00, "476" => 5.00, "477" => 5.00, "478" => 5.00, "479" => 5.00, "480" => 5.00, "481" => 5.00, "482" => 5.00, "483" => 5.00, "484" => 5.00, "485" => 5.00, "486" => 5.00, "487" => 5.00, "488" => 5.00, "489" => 5.00, "490" => 5.00, "491" => 5.00, "492" => 5.00, "493" => 5.00, "494" => 5.00, "495" => 5.00, "496" => 5.00, "497" => 5.00, "498" => 5.00, "499" => 5.00, "500" => 5.00, "501" => 5.00, "502" => 5.00, "503" => 5.00, "504" => 5.00, "505" => 5.00, "506" => 5.00, "507" => 5.00, "508" => 5.00, "509" => 5.00, "510" => 5.00, "511" => 5.00, "512" => 5.00, "513" => 5.00, "514" => 5.00, "515" => 5.00, "516" => 5.00, "517" => 5.00, "518" => 5.00, "519" => 5.00, "520" => 5.00, "521" => 5.00, "522" => 5.00, "523" => 5.00, "524" => 5.00, "525" => 5.00, "526" => 5.00, "527" => 5.00, "528" => 5.00, "529" => 5.00, "530" => 5.00, "531" => 5.00, "532" => 5.00, "533" => 5.00, "534" => 5.00, "535" => 5.00, "536" => 5.00, "537" => 5.00, "538" => 5.00, "539" => 5.00, "540" => 5.00, "541" => 5.00, "542" => 5.00, "543" => 5.00, "544" => 5.00, "545" => 5.00, "546" => 5.00, "547" => 5.00, "548" => 5.00, "549" => 5.00, "550" => 5.00, "551" => 5.00, "552" => 5.00, "553" => 5.00, "554" => 5.00, "555" => 5.00, "556" => 5.00, "557" => 5.00, "558" => 5.00, "559" => 5.00, "560" => 5.00, "561" => 5.00, "562" => 5.00, "563" => 5.00, "564" => 5.00, "565" => 5.00, "566" => 5.00, "567" => 5.00, "568" => 5.00, "569" => 5.00, "570" => 5.00, "571" => 5.00, "572" => 5.00, "573" => 5.00, "574" => 5.00, "575" => 5.00, "576" => 5.00, "577" => 5.00, "578" => 5.00, "579" => 5.00, "580" => 5.00, "581" => 5.00, "582" => 5.00, "583" => 5.00, "584" => 5.00, "585" => 5.00, "586" => 5.00, "587" => 5.00, "588" => 5.00, "589" => 5.00, "590" => 5.00, "591" => 5.00, "592" => 5.00, "593" => 5.00, "594" => 5.00, "595" => 5.00, "596" => 5.00, "597" => 5.00, "598" => 5.00, "599" => 5.00, "600" => 5.00, "601" => 5.00, "602" => 5.00, "603" => 5.00, "604" => 5.00, "605" => 5.00, "606" => 5.00, "607" => 5.00, "608" => 5.00, "609" => 5.00, "610" => 5.00, "611" => 5.00, "612" => 5.00, "613" => 5.00, "614" => 5.00, "615" => 5.00, "616" => 5.00, "617" => 5.00, "618" => 5.00, "619" => 5.00, "620" => 5.00, "621" => 5.00, "622" => 5.00, "623" => 5.00, "624" => 5.00, "625" => 5.00, "626" => 5.00, "627" => 5.00, "628" => 5.00, "629" => 5.00, "630" => 5.00, "631" => 5.00, "632" => 5.00, "8718" => 5.00, "8719" => 5.00, "9354" => 7.09, "9355" => 8.46, "9356" => 2.55, "9357" => 4.25, "9358" => 7.29, "9359" => 9.63, "9360" => 9.63, "9361" => 5.73, "9362" => 2.78, "9363" => 5.97, "9364" => 5.74, "9365" => 6.03, "9366" => 7.60, "9367" => 2.70, "9368" => 7.74, "9369" => 6.47, "9370" => 8.05, "9371" => 8.29, "9372" => 8.690001, "9373" => 8.690001, "9374" => 8.29, "9375" => 8.29, "9376" => 8.690001, "9377" => 4.03, "9378" => 4.03, "9379" => 4.03, "9380" => 4.03, "9381" => 4.03, "9382" => 4.03, "9383" => 4.03, "9384" => 4.03, "9385" => 4.03, "9386" => 4.03, "9387" => 4.03, "9388" => 4.03, "9389" => 4.03, "9390" => 4.03, "9391" => 4.03, "9392" => 4.03, "9393" => 4.03, "9394" => 7.60, "9395" => 6.47, "9396" => 6.47, "9397" => 6.47, "9398" => 3.08, "9399" => 2.70, "9400" => 3.06, "9401" => 8.05, "9402" => 8.05, "9403" => 7.74, "9404" => 7.74, "9405" => 7.74, "9406" => 5.73, "9407" => 5.74, "9408" => 5.74, "9409" => 5.74, "9410" => 2.78, "9411" => 2.34, "9412" => 2.99, "9413" => 6.03, "9414" => 6.03, "9415" => 5.97, "9416" => 5.97, "9417" => 5.97, "9418" => 6.25, "9419" => 6.25, "9420" => 6.25, "9421" => 9.34, "9422" => 9.34, "9423" => 5.54, "9424" => 5.54, "9425" => 5.54, "9426" => 5.74, "9427" => 5.74, "9428" => 5.74, "9429" => 7.47, "9430" => 7.47, "9431" => 7.47, "9432" => 5.54, "9433" => 5.54, "9434" => 5.54, "9435" => 2.81, "9436" => 6.00, "9437" => 6.03, "9438" => 5.50, "9439" => 5.50, "9440" => 5.50, "9441" => 5.33, "9442" => 4.08, "9443" => 3.06, "9444" => 3.33, "9445" => 3.02, "9446" => 3.86, "9447" => 6.52, "9448" => 6.52, "9449" => 8.89, "9450" => 7.71, "9451" => 2.15, "9452" => 3.74, "9453" => 3.74, "9454" => 4.03, "9455" => 6.690001, "9456" => 3.01, "9457" => 4.44, "9458" => 3.01, "9459" => 4.35, "9460" => 6.52, "9461" => 6.52, "9462" => 6.52, "9463" => 6.52, "9464" => 6.52, "9465" => 6.52, "9466" => 6.52, "9467" => 6.52, "9468" => 6.52, "9469" => 6.52, "9470" => 3.01, "9471" => 3.01, "9472" => 5.45, "9473" => 6.690001, "9474" => 5.45, "9475" => 5.79, "9476" => 9.04, "9477" => 7.56, "9478" => 7.25, "9479" => 7.41, "9480" => 7.71, "9481" => 6.46, "9482" => 6.52, "9483" => 7.65, "9484" => 7.90, "9485" => 2.68, "9486" => 5.20, "9487" => 6.88, "9488" => 6.30, "9489" => 9.52, "9490" => 7.75, "9491" => 8.05, "9492" => 6.97, "9493" => 8.05, "9494" => 7.08, "9495" => 6.64, "9496" => 6.74, "9497" => 7.72, "9498" => 7.15, "9499" => 10.34, "9500" => 7.12, "9501" => 6.85, "9502" => 6.81, "9503" => 3.74, "9504" => 6.52, "9505" => 3.74, "9506" => 5.69, "9507" => 5.00, "9508" => 5.00, "9509" => 5.62, "9510" => 6.24, "9511" => 5.46, "9512" => 6.25, "9513" => 5.80, "9514" => 4.00, "9515" => 6.16, "9516" => 6.00, "9517" => 2.32, "9518" => 2.47, "9519" => 5.26, "9520" => 2.31, "9521" => 8.76, "9522" => 6.00, "9523" => 6.03, "9524" => 6.25, "9525" => 6.25, "9526" => 4.30, "9527" => 5.35, "9528" => 4.03, "9529" => 5.93, "9530" => 5.440001, "9531" => 7.98, "9532" => 5.25, "9533" => 5.51, "9534" => 5.12, "9535" => 3.74, "9536" => 3.72, "9537" => 3.74, "9538" => 5.00, "9539" => 3.01, "9540" => 4.35, "9541" => 3.01, "9542" => 3.72, "9543" => 6.52, "9544" => 3.02, "9545" => 5.84, "9546" => 6.52, "9547" => 0.77, "9548" => 5.84, "9549" => 6.10, "9550" => 5.74, "9551" => 4.30, "9552" => 4.82, "9553" => 3.09, "9554" => 3.09, "9555" => 6.34, "9556" => 6.33, "9557" => 5.00, "9558" => 5.94, "9559" => 5.93, "9560" => 3.01, "9561" => 6.14, "9562" => 4.94, "9563" => 3.01, "9564" => 4.30, "9565" => 4.30, "9566" => 4.82, "9567" => 9.03, "9568" => 12.92, "9569" => 5.79, "9570" => 5.00, "9571" => 5.00, "9572" => 5.00, "9573" => 5.00, "9574" => 5.00, "9575" => 5.00, "9576" => 5.00, "9577" => 5.00, "9578" => 5.00, "9579" => 5.00, "9580" => 5.00, "9582" => 10.80, "9583" => 4.15, "9584" => 6.30, "9585" => 8.09, "9586" => 10.83, "9587" => 4.37, "9588" => 9.34, "9589" => 2.31, "9590" => 3.20, "9591" => 6.07, "9592" => 9.940001, "9593" => 6.29, "9594" => 6.690001, "9595" => 5.70, "9596" => 6.690001, "9597" => 5.71, "9598" => 2.77, "9599" => 6.690001, "9600" => 4.03, "9601" => 4.03, "9602" => 6.52, "9603" => 4.03, "9604" => 8.71, "9605" => 8.71, "9606" => 8.71, "9607" => 7.56, "9608" => 7.56, "9609" => 7.56, "9610" => 7.57, "9611" => 7.56, "9612" => 7.56, "9613" => 7.41, "9614" => 6.46, "9615" => 6.46, "9616" => 6.46, "9617" => 6.46, "9618" => 2.68, "9619" => 2.68, "9620" => 2.68, "9621" => 2.68, "9622" => 7.71, "9623" => 7.75, "9624" => 8.05, "9625" => 8.05, "9626" => 8.05, "9627" => 8.05, "9628" => 8.05, "9629" => 6.690001, "9630" => 7.72, "9631" => 7.72, "9632" => 7.72, "9633" => 7.72, "9634" => 6.85, "9635" => 6.94, "9636" => 5.62, "9637" => 5.62, "9638" => 5.62, "9639" => 5.62, "9640" => 5.62, "9641" => 5.62, "9642" => 5.46, "9643" => 5.80, "9644" => 5.80, "9645" => 5.80, "9646" => 5.80, "9647" => 2.31, "9648" => 2.31, "9649" => 2.31, "9650" => 2.31, "9651" => 5.93, "9652" => 6.00, "9653" => 6.03, "9654" => 6.03, "9655" => 6.03, "9656" => 6.03, "9657" => 6.03, "9658" => 6.690001, "9659" => 5.93, "9660" => 5.93, "9661" => 5.93, "9662" => 5.93, "9663" => 5.51, "9664" => 6.30, "9665" => 5.51, "9666" => 6.64, "9667" => 6.85, "9668" => 6.81, "9669" => 5.00, "9670" => 5.35, "9671" => 9.55, "9672" => 5.12, "9673" => 6.52, "9674" => 6.97, "9675" => 8.57, "9676" => 2.55, "9677" => 4.25, "9678" => 7.37, "9679" => 9.71, "9680" => 9.71, "9681" => 5.62, "9682" => 2.31, "9683" => 5.93, "9684" => 5.80, "9685" => 6.03, "9686" => 7.57, "9687" => 2.68, "9688" => 7.72, "9689" => 6.46, "9690" => 8.05, "9691" => 8.71, "9692" => 8.71, "9693" => 8.71, "9694" => 8.71, "9695" => 8.71, "9696" => 8.71, "9697" => 4.03, "9698" => 4.03, "9699" => 4.03, "9700" => 4.03, "9701" => 4.03, "9702" => 4.03, "9703" => 4.03, "9704" => 4.03, "9705" => 4.03, "9706" => 4.03, "9707" => 4.03, "9708" => 4.03, "9709" => 4.03, "9710" => 4.03, "9711" => 4.03, "9712" => 4.03, "9713" => 4.03, "9714" => 7.56, "9715" => 6.46, "9716" => 6.46, "9717" => 6.46, "9718" => 2.68, "9719" => 2.68, "9720" => 2.68, "9721" => 8.05, "9722" => 8.05, "9723" => 7.72, "9724" => 7.72, "9725" => 7.72, "9726" => 5.62, "9727" => 5.80, "9728" => 5.80, "9729" => 5.80, "9730" => 2.32, "9731" => 2.32, "9732" => 2.32, "9733" => 6.03, "9734" => 6.03, "9735" => 5.93, "9736" => 5.93, "9737" => 5.93, "9738" => 2.50, "9739" => 2.50, "9740" => 2.50, "9741" => 2.50, "9742" => 2.50, "9743" => 2.50, "9744" => 2.50, "9745" => 2.50, "9746" => 2.50, "9747" => 2.50, "9748" => 2.50, "9749" => 2.50, "9750" => 2.50, "9751" => 2.50, "9752" => 2.50, "9753" => 2.50, "9754" => 2.50, "9755" => 2.50, "9756" => 2.50, "9757" => 2.50, "9758" => 3.33, "9759" => 3.33, "9760" => 3.33, "9761" => 3.33, "9762" => 3.33, "9763" => 3.33, "9764" => 3.33, "9765" => 3.33, "9766" => 3.33, "9767" => 3.33, "9768" => 3.33, "9769" => 3.33, "9770" => 3.33, "9771" => 3.33, "9772" => 3.33, "9773" => 3.33, "9774" => 3.33, "9775" => 3.33, "9776" => 3.33, "9777" => 3.33, "9778" => 3.33, "12063" => 5.00, "12064" => 5.00, "12065" => 5.00, "12066" => 5.00, "12067" => 5.00, "12068" => 5.00, "12069" => 5.00, "12070" => 5.00, "12071" => 5.00, "12072" => 5.00, "12073" => 5.00, "12074" => 5.00, "12075" => 5.00, "12076" => 5.00, "12077" => 5.00, "12078" => 5.00, "12079" => 5.00, "12080" => 5.00, "12081" => 5.00, "12082" => 5.00, "12083" => 5.00, "12084" => 5.00, "12085" => 5.00, "12086" => 5.00, "12087" => 5.00, "15444" => 3.33, "15445" => 3.33, "15446" => 3.33, "15447" => 3.33, "15448" => 3.33, "15449" => 7.45, "15450" => 8.15, "15451" => 7.63, "15452" => 8.08, "15453" => 8.360001, "15454" => 9.150001, "15456" => 6.690001, "15457" => 6.690001, "15458" => 6.690001, "15459" => 6.690001, "15460" => 6.690001, "15461" => 10.02, "15462" => 8.87, "15463" => 8.93, "15464" => 6.690001, "15465" => 6.690001, "15466" => 6.690001, "15467" => 6.690001, "15468" => 6.690001, "15469" => 6.690001, "15470" => 6.690001, "15471" => 6.690001, "15472" => 6.690001, "15473" => 6.690001, "15474" => 6.690001, "15475" => 6.690001, "15476" => 6.690001, "15477" => 9.10, "15478" => 6.690001, "15479" => 6.690001, "15480" => 6.690001, "15481" => 6.690001, "15482" => 9.25, "15483" => 9.25, "15484" => 7.78, "15485" => 7.77, "15486" => 9.12, "15487" => 9.12, "15488" => 9.12, "15489" => 6.690001, "15490" => 6.690001, "15491" => 6.690001, "15492" => 6.690001, "15493" => 6.17, "15494" => 7.95, "15495" => 6.690001, "15496" => 6.690001, "15497" => 6.690001, "15498" => 6.690001, "15499" => 6.39, "15500" => 6.690001, "15501" => 6.690001, "15502" => 6.690001, "15503" => 3.83, "15504" => 6.29, "15505" => 6.690001, "15506" => 6.690001, "15507" => 6.690001, "15508" => 6.690001, "15509" => 6.690001, "15510" => 6.690001, "15511" => 9.25, "15512" => 6.690001, "15513" => 7.10, "15514" => 6.17, "15515" => 8.46, "15516" => 5.00, "15517" => 8.719999, "15518" => 9.32, "15519" => 8.97, "15520" => 9.58, "15521" => 8.32, "15522" => 8.780001, "15523" => 8.61, "15524" => 9.36, "15525" => 8.97, "15526" => 9.54, "15527" => 9.58, "15528" => 9.79, "15529" => 9.150001, "15530" => 9.66, "15531" => 8.04, "15532" => 8.719999, "15533" => 9.39, "15534" => 9.78, "15535" => 8.88, "15536" => 9.27, "15537" => 9.03, "15538" => 9.34, "15539" => 8.91, "15540" => 9.00, "15541" => 9.41, "15542" => 9.72, "15543" => 9.610001, "15544" => 9.87, "15545" => 9.43, "15546" => 9.69, "15547" => 9.37, "15548" => 9.57, "15549" => 9.110001, "15550" => 9.28, "15551" => 8.83, "15552" => 9.440001, "15553" => 9.71, "15554" => 9.25, "15555" => 9.50, "15556" => 8.66, "15557" => 8.88, "15558" => 9.55, "15559" => 9.38, "15560" => 9.62, "15561" => 9.83, "15562" => 9.58, "15563" => 9.559999, "15564" => 9.80, "15565" => 9.75, "15566" => 9.52, "15567" => 9.62, "15568" => 9.63, "15569" => 9.52, "15570" => 9.74, "15571" => 9.74, "15572" => 9.73, "15573" => 9.72, "15574" => 9.69, "15575" => 9.62, "15576" => 9.929999, "15577" => 9.88, "15578" => 9.28, "15579" => 9.57, "15580" => 9.48, "15581" => 9.48, "15582" => 9.150001, "15583" => 8.90, "15584" => 9.46, "15585" => 9.00, "15586" => 9.62, "15587" => 8.450001, "15588" => 9.04, "15589" => 8.94, "15590" => 8.71, "15591" => 9.12, "15592" => 9.81, "15593" => 9.09, "15594" => 9.02, "15595" => 9.66, "15596" => 9.35, "15597" => 9.50, "15598" => 9.45, "15599" => 9.39, "15600" => 9.440001, "15601" => 8.95, "15602" => 8.73, "15603" => 9.78, "15604" => 9.63, "15605" => 8.65, "15606" => 9.78, "15607" => 9.22, "15608" => 8.50, "15609" => 9.17, "15610" => 8.33, "15611" => 8.96, "15612" => 8.719999, "15613" => 9.18, "15614" => 8.73, "15615" => 9.36, "15616" => 8.690001, "15617" => 9.32, "15618" => 9.23, "15619" => 9.55, "15620" => 9.34, "15621" => 9.55, "15622" => 8.90, "15623" => 9.67, "15624" => 9.41, "15625" => 9.69, "15626" => 9.16, "15627" => 9.55, "15628" => 9.46, "15629" => 9.80, "15630" => 9.32, "15631" => 9.74, "15632" => 9.25, "15633" => 9.67, "15634" => 9.33, "15635" => 9.63, "15636" => 8.80, "15637" => 9.440001, "15638" => 8.95, "15639" => 9.73, "15640" => 9.36, "15641" => 9.610001, "15642" => 8.48, "15643" => 9.04, "15644" => 9.57, "15645" => 9.33, "15646" => 9.74, "15647" => 8.57, "15648" => 8.70, "15649" => 9.26, "15650" => 9.22, "15651" => 8.79, "15652" => 9.40, "15653" => 8.66, "15654" => 9.41, "15655" => 9.559999, "15656" => 9.55, "15657" => 8.84, "15658" => 9.46, "15659" => 9.40, "15660" => 8.91, "15661" => 9.73, "15662" => 9.73, "15663" => 9.66, "15664" => 9.62, "15665" => 9.59, "15666" => 9.52, "15667" => 9.69, "15668" => 9.700001, "15669" => 9.17, "15670" => 8.87, "15671" => 9.39, "15672" => 8.809999, "15673" => 9.49, "15674" => 8.73, "15675" => 9.309999, "15676" => 8.61, "15677" => 9.35, "15678" => 8.74, "15679" => 9.22, "15680" => 8.95, "15681" => 8.63, "15682" => 9.49, "15683" => 9.01, "15684" => 9.54, "15685" => 8.71, "15686" => 9.02, "15687" => 9.57, "15688" => 9.35, "15689" => 8.93, "15690" => 9.04, "15691" => 9.66, "15692" => 8.74, "15693" => 8.73, "15694" => 9.610001, "15695" => 9.610001, "15696" => 9.66, "15697" => 9.66, "15698" => 9.55, "15699" => 9.58, "15700" => 9.57, "15701" => 8.679999, "15702" => 8.43, "15703" => 8.66, "15704" => 8.55, "15705" => 8.16, "15706" => 8.38, "15707" => 8.63, "15708" => 8.41, "15709" => 8.389999, "15710" => 8.83, "15711" => 8.97, "15712" => 9.01, "15713" => 8.62, "15714" => 8.55, "15715" => 8.309999, "15716" => 8.809999, "15717" => 8.55, "15718" => 8.98, "15719" => 9.81, "15720" => 9.75, "15721" => 9.80, "15722" => 9.73, "15723" => 8.33, "15724" => 8.65, "15725" => 6.690001, "15726" => 6.690001, "15727" => 8.29, "15728" => 8.62, "15729" => 9.54, "15730" => 8.77, "15731" => 7.79, "15732" => 6.00, "15733" => 5.97, "15734" => 5.97, "15735" => 5.97, "15736" => 5.97, "15737" => 7.60, "15738" => 5.00, "15739" => 6.46, "15740" => 6.71, "15741" => 6.71, "15742" => 6.76, "15743" => 6.81, "15744" => 6.81, "15745" => 5.73, "15746" => 7.42, "15747" => 2.78, "15748" => 5.35, "15749" => 5.00, "15750" => 5.35, "15751" => 4.03, "15752" => 5.16, "15753" => 5.00, "15754" => 5.16, "15755" => 7.20, "15756" => 7.60, "15757" => 6.30, "15758" => 7.42, "15759" => 7.42, "15760" => 6.47, "15761" => 7.71, "15762" => 7.79, "15763" => 7.79, "15764" => 8.05, "15765" => 7.20, "15766" => 7.74, "15767" => 6.76, "15768" => 4.32, "15769" => 5.73, "15770" => 2.34, "15771" => 5.54, "15772" => 5.54, "15773" => 5.74, "15774" => 6.45, "15775" => 6.31, "15776" => 6.00, "15777" => 6.00, "15778" => 6.03, "15779" => 4.32, "15780" => 5.97, "15781" => 4.03, "15782" => 5.00, "15783" => 7.42, "15784" => 7.65, "15785" => 7.93, "15786" => 5.39, "15787" => 6.71, "15788" => 7.74, "15789" => 5.54, "15790" => 6.18, "15791" => 6.19, "15792" => 2.94, "15793" => 5.35, "15794" => 5.97, "15795" => 8.780001, "15796" => 5.74, "15797" => 3.65, "15798" => 4.62, "15799" => 6.23, "15800" => 4.32, "15801" => 4.01, "15802" => 6.26, "15803" => 6.04, "15804" => 4.30, "15805" => 5.35, "15806" => 5.24, "15807" => 4.30, "15808" => 2.33, "15809" => 4.00, "15810" => 6.03, "15811" => 3.95, "15812" => 5.51, "15813" => 6.15, "15814" => 8.780001, "15815" => 5.69, "15816" => 6.06, "15817" => 5.37, "15818" => 5.37, "15819" => 6.00, "15820" => 8.05, "15821" => 4.90, "15822" => 6.22, "15823" => 7.03, "15824" => 4.20, "15825" => 6.96, "15826" => 7.65, "15827" => 2.54, "15828" => 6.17, "15829" => 5.74, "15830" => 5.48, "15831" => 6.14, "15832" => 5.73, "15833" => 8.77, "15834" => 6.09, "15835" => 6.23, "15836" => 6.25, "15837" => 8.07, "15838" => 6.01, "15839" => 5.37, "15840" => 5.37, "15841" => 5.54, "15842" => 5.61, "15843" => 4.32, "15844" => 6.00, "15845" => 0.00, "15846" => 1.60, "15847" => 1.60, "15848" => 3.06, "15849" => 0.00, "15850" => 5.00, "15851" => 4.35, "15852" => 4.35, "15853" => 4.35, "15854" => 4.35, "15855" => 4.35, "15856" => 4.50, "15857" => 4.50, "15858" => 5.00, "15859" => 5.00, "15860" => 5.00, "15861" => 5.00, "15862" => 5.00, "15863" => 5.00, "15864" => 5.00, "15865" => 5.00, "15866" => 5.00, "15867" => 1.65, "15868" => 5.00, "15869" => 5.00, "15870" => 5.00, "15871" => 5.00, "15872" => 5.00, "15873" => 5.00, "15874" => 5.00, "15875" => 5.00, "15876" => 5.00, "15877" => 5.00, "15878" => 5.00, "15879" => 3.81, "15880" => 3.83, "15881" => 6.690001, "15882" => 6.690001, "15883" => 5.76, "15884" => 5.51, "15885" => 2.32, "15886" => 5.92, "15887" => 8.30, "15888" => 6.82, "15889" => 5.69, "15890" => 5.38, "15891" => 5.82, "15892" => 5.98, "15893" => 4.90, "15894" => 3.48, "15895" => 2.14, "15896" => 4.69, "15897" => 3.17, "15898" => 3.10, "15899" => 1.47, "15900" => 5.67, "15901" => 6.89, "15902" => 8.75, "15903" => 6.690001, "15904" => 6.690001, "15905" => 9.12, "15906" => 9.47, "15907" => 9.47, "15908" => 3.49, "15909" => 6.33, "15910" => 5.70, "15911" => 5.63, "15912" => 8.57, "15913" => 5.00, "15914" => 8.71, "15915" => 9.52, "15916" => 8.76, "15917" => 7.75, "15918" => 6.00, "15919" => 5.93, "15920" => 5.93, "15921" => 5.93, "15922" => 5.93, "15923" => 7.56, "15924" => 6.30, "15925" => 6.64, "15926" => 6.64, "15927" => 6.74, "15928" => 6.81, "15929" => 6.81, "15930" => 5.62, "15931" => 2.31, "15932" => 5.35, "15933" => 5.35, "15934" => 4.03, "15935" => 5.12, "15936" => 5.12, "15937" => 7.08, "15938" => 7.56, "15939" => 6.30, "15940" => 7.41, "15941" => 7.41, "15942" => 6.46, "15943" => 7.71, "15944" => 7.75, "15945" => 7.75, "15946" => 8.05, "15947" => 7.08, "15948" => 7.72, "15949" => 6.74, "15950" => 4.30, "15951" => 5.62, "15952" => 2.31, "15953" => 5.46, "15954" => 5.46, "15955" => 5.80, "15956" => 6.25, "15957" => 6.25, "15958" => 6.00, "15959" => 6.00, "15960" => 6.03, "15961" => 4.30, "15962" => 5.93, "15963" => 4.03, "15964" => 7.41, "15965" => 7.65, "15966" => 7.90, "15967" => 5.20, "15968" => 6.64, "15969" => 7.72, "15970" => 5.46, "15971" => 6.16, "15972" => 6.00, "15973" => 2.47, "15974" => 5.35, "15975" => 5.93, "16194" => 9.99);
+%min_w3_v=("8720" => 333, "8721" => 332, "8722" => 339, "8723" => 678, "8724" => 627, "8725" => 827, "8726" => 805, "8727" => 188, "8728" => 314, "8729" => 314, "8730" => 392, "8731" => 678, "8732" => 314, "8733" => 330, "8734" => 314, "8735" => 392, "8736" => 588, "8737" => 588, "8738" => 588, "8739" => 588, "8740" => 588, "8741" => 588, "8742" => 588, "8743" => 588, "8744" => 588, "8745" => 588, "8746" => 314, "8747" => 314, "8748" => 500, "8749" => 678, "8750" => 500, "8751" => 595, "8752" => 842, "8753" => 738, "8754" => 664, "8755" => 706, "8756" => 761, "8757" => 633, "8758" => 592, "8759" => 760, "8760" => 797, "8761" => 352, "8762" => 476, "8763" => 701, "8764" => 590, "8765" => 929, "8766" => 796, "8767" => 798, "8768" => 618, "8769" => 798, "8770" => 681, "8771" => 563, "8772" => 657, "8773" => 769, "8774" => 732, "8775" => 1001, "8776" => 720, "8777" => 717, "8778" => 659, "8779" => 314, "8780" => 650, "8781" => 314, "8782" => 500, "8783" => 500, "8784" => 500, "8785" => 545, "8786" => 601, "8787" => 526, "8788" => 607, "8789" => 535, "8790" => 328, "8791" => 533, "8792" => 619, "8793" => 295, "8794" => 291, "8795" => 554, "8796" => 296, "8797" => 899, "8798" => 616, "8799" => 583, "8800" => 597, "8801" => 593, "8802" => 411, "8803" => 445, "8804" => 336, "8805" => 593, "8806" => 560, "8807" => 793, "8808" => 539, "8809" => 547, "8810" => 492, "8811" => 314, "8812" => 500, "8813" => 314, "8814" => 500, "8815" => 294, "8816" => 392, "8817" => 294, "8818" => 500, "8819" => 500, "8820" => 332, "8821" => 627, "8822" => 650, "8823" => 152, "8824" => 627, "8825" => 627, "8826" => 545, "8827" => 490, "8828" => 418, "8829" => 255, "8830" => 255, "8831" => 578, "8832" => 578, "8833" => 500, "8834" => 627, "8835" => 627, "8836" => 314, "8837" => 598, "8838" => 627, "8839" => 294, "8840" => 490, "8841" => 490, "8842" => 418, "8843" => 941, "8844" => 1211, "8845" => 595, "8846" => 500, "8847" => 500, "8848" => 500, "8849" => 500, "8850" => 500, "8851" => 500, "8852" => 500, "8853" => 500, "8854" => 500, "8855" => 500, "8856" => 500, "8858" => 969, "8859" => 392, "8860" => 590, "8861" => 798, "8862" => 1021, "8863" => 392, "8864" => 823, "8865" => 295, "8866" => 296, "8867" => 583, "8868" => 883, "8869" => 595, "8870" => 678, "8871" => 713, "8872" => 678, "8873" => 713, "8874" => 355, "8875" => 678, "8876" => 392, "8877" => 392, "8878" => 627, "8879" => 314, "8880" => 941, "8881" => 941, "8882" => 941, "8883" => 738, "8884" => 738, "8885" => 738, "8886" => 738, "8887" => 738, "8888" => 738, "8889" => 706, "8890" => 633, "8891" => 633, "8892" => 633, "8893" => 633, "8894" => 352, "8895" => 352, "8896" => 352, "8897" => 352, "8898" => 761, "8899" => 796, "8900" => 798, "8901" => 798, "8902" => 798, "8903" => 798, "8904" => 798, "8905" => 678, "8906" => 769, "8907" => 769, "8908" => 769, "8909" => 769, "8910" => 717, "8911" => 637, "8912" => 545, "8913" => 545, "8914" => 545, "8915" => 545, "8916" => 545, "8917" => 545, "8918" => 526, "8919" => 535, "8920" => 535, "8921" => 535, "8922" => 535, "8923" => 295, "8924" => 295, "8925" => 295, "8926" => 295, "8927" => 581, "8928" => 616, "8929" => 583, "8930" => 583, "8931" => 583, "8932" => 583, "8933" => 583, "8934" => 678, "8935" => 593, "8936" => 593, "8937" => 593, "8938" => 593, "8939" => 547, "8940" => 597, "8941" => 547, "8942" => 563, "8943" => 717, "8944" => 659, "8945" => 500, "8946" => 445, "8947" => 989, "8948" => 492, "8949" => 588, "8950" => 500, "8951" => 500, "8952" => 500, "8953" => 500, "8954" => 500, "8955" => 500, "8956" => 500, "8957" => 500, "8958" => 500, "8959" => 500, "8960" => 500, "8961" => 500, "8962" => 500, "8963" => 500, "8964" => 500, "8965" => 500, "8966" => 500, "8967" => 500, "8968" => 500, "8969" => 500, "8970" => 500, "8971" => 500, "8972" => 500, "8973" => 500, "8974" => 500, "8975" => 500, "8976" => 500, "8977" => 500, "8978" => 500, "8979" => 500, "8980" => 500, "8981" => 500, "8982" => 500, "8983" => 500, "8984" => 500, "8985" => 500, "8986" => 500, "8987" => 500, "8988" => 500, "8989" => 500, "8990" => 500, "8991" => 500, "8992" => 500, "8993" => 500, "8994" => 500, "8995" => 500, "8996" => 500, "8997" => 500, "8998" => 500, "8999" => 500, "9000" => 500, "9001" => 500, "9002" => 500, "9003" => 500, "9004" => 500, "9005" => 500, "9006" => 500, "9007" => 500, "9008" => 500, "9009" => 500, "9010" => 500, "9011" => 500, "9012" => 500, "9013" => 500, "9014" => 500, "9015" => 500, "9016" => 500, "9017" => 500, "9018" => 500, "9019" => 500, "9020" => 500, "9021" => 500, "9022" => 500, "9023" => 500, "9024" => 500, "9025" => 500, "9026" => 500, "9027" => 500, "9028" => 500, "9029" => 500, "9030" => 500, "9031" => 500, "9032" => 500, "9033" => 500, "9034" => 500, "9035" => 500, "9036" => 500, "9037" => 500, "9038" => 500, "9039" => 500, "9040" => 500, "9041" => 500, "9042" => 500, "9043" => 500, "9044" => 500, "9045" => 500, "9046" => 500, "9047" => 500, "9048" => 500, "9049" => 500, "9050" => 500, "9051" => 500, "9052" => 500, "9053" => 500, "9054" => 500, "9055" => 500, "9056" => 500, "9057" => 500, "9058" => 500, "9059" => 500, "9060" => 500, "9061" => 500, "9062" => 500, "9063" => 500, "9064" => 500, "9065" => 500, "9066" => 500, "9067" => 500, "9068" => 500, "9069" => 500, "9070" => 500, "9071" => 500, "9072" => 500, "9073" => 500, "9074" => 500, "9075" => 500, "9076" => 500, "9077" => 500, "9078" => 500, "9079" => 500, "9080" => 500, "9081" => 500, "9082" => 500, "9083" => 500, "9084" => 500, "9085" => 500, "9086" => 500, "9087" => 500, "9088" => 500, "9089" => 500, "9090" => 500, "9091" => 500, "9092" => 500, "9093" => 500, "9094" => 500, "9095" => 500, "9096" => 500, "9097" => 500, "9098" => 500, "9099" => 500, "9100" => 500, "9101" => 500, "9102" => 500, "9103" => 500, "9104" => 500, "9105" => 500, "9106" => 500, "9107" => 500, "9108" => 500, "9109" => 500, "9110" => 500, "9111" => 500, "9112" => 500, "9113" => 500, "9114" => 500, "9115" => 500, "9116" => 500, "9117" => 500, "9118" => 500, "9119" => 500, "9120" => 500, "9121" => 500, "9122" => 500, "9123" => 500, "9124" => 500, "9125" => 500, "9126" => 500, "9127" => 500, "9128" => 500, "9129" => 500, "9130" => 500, "9131" => 500, "9132" => 500, "9133" => 500, "9134" => 500, "9135" => 500, "9136" => 500, "9137" => 500, "9138" => 500, "9139" => 500, "9140" => 500, "9141" => 500, "9142" => 500, "9143" => 500, "9144" => 500, "9145" => 500, "9146" => 500, "9147" => 500, "9148" => 500, "9149" => 500, "9150" => 500, "9151" => 500, "9152" => 500, "9153" => 500, "9154" => 500, "9155" => 500, "9156" => 500, "9157" => 500, "9158" => 500, "9159" => 500, "9160" => 500, "9161" => 500, "9162" => 500, "9163" => 500, "9164" => 500, "9165" => 500, "9166" => 500, "9167" => 500, "9168" => 500, "9169" => 500, "9170" => 500, "9171" => 500, "9172" => 500, "9173" => 500, "9174" => 500, "9175" => 500, "9176" => 500, "9177" => 500, "9178" => 500, "9179" => 500, "9180" => 500, "9181" => 500, "9182" => 500, "9183" => 500, "9184" => 500, "9185" => 500, "9186" => 500, "9187" => 500, "9188" => 500, "9189" => 500, "9190" => 500, "9191" => 500, "9192" => 500, "9193" => 500, "9194" => 500, "9195" => 500, "9196" => 500, "9197" => 500, "9198" => 500, "9199" => 500, "9200" => 500, "9201" => 500, "9202" => 500, "9203" => 500, "9204" => 500, "9205" => 500, "9206" => 500, "9207" => 500, "9208" => 500, "9209" => 500, "9210" => 500, "9211" => 500, "9212" => 500, "9213" => 500, "9214" => 500, "9215" => 500, "9216" => 500, "9217" => 500, "9218" => 500, "9219" => 500, "9220" => 500, "9221" => 500, "9222" => 500, "9223" => 500, "9224" => 500, "9225" => 500, "9226" => 500, "9227" => 500, "9228" => 500, "9229" => 500, "9230" => 500, "9231" => 500, "9232" => 500, "9233" => 500, "9234" => 500, "9235" => 500, "9236" => 500, "9237" => 500, "9238" => 500, "9239" => 500, "9240" => 500, "9241" => 500, "9242" => 500, "9243" => 500, "9244" => 500, "9245" => 500, "9246" => 500, "9247" => 500, "9248" => 500, "9249" => 500, "9250" => 500, "9251" => 500, "9252" => 500, "9253" => 500, "9254" => 500, "9255" => 500, "9256" => 500, "9257" => 500, "9258" => 500, "9259" => 500, "9260" => 500, "9261" => 500, "9262" => 500, "9263" => 500, "9264" => 500, "9265" => 500, "9266" => 500, "9267" => 500, "9268" => 500, "9269" => 500, "9270" => 500, "9271" => 500, "9272" => 500, "9273" => 500, "9274" => 500, "9275" => 500, "9276" => 500, "9277" => 500, "9278" => 500, "9279" => 500, "9280" => 500, "9281" => 500, "9282" => 500, "9283" => 500, "9284" => 500, "9285" => 500, "9286" => 500, "9287" => 500, "9288" => 500, "9289" => 500, "9290" => 500, "9291" => 500, "9292" => 500, "9293" => 500, "9294" => 500, "9295" => 500, "9296" => 500, "9297" => 500, "9298" => 500, "9299" => 500, "9300" => 500, "9301" => 500, "9302" => 500, "9303" => 500, "9304" => 500, "9305" => 500, "9306" => 500, "9307" => 500, "9308" => 500, "9309" => 500, "9310" => 500, "9311" => 500, "9312" => 500, "9313" => 500, "9314" => 500, "9315" => 500, "9316" => 500, "9317" => 500, "9318" => 500, "9319" => 500, "9320" => 500, "9321" => 500, "9322" => 500, "9323" => 500, "9324" => 500, "9325" => 500, "9326" => 500, "9327" => 500, "9328" => 500, "9329" => 500, "9330" => 500, "9331" => 500, "9332" => 500, "9333" => 500, "9334" => 500, "9335" => 500, "9336" => 500, "9337" => 500, "9338" => 500, "9339" => 500, "9340" => 500, "9341" => 500, "9342" => 500, "9343" => 500, "9344" => 500, "9345" => 500, "9346" => 500, "9347" => 500, "9348" => 500, "9349" => 500, "9350" => 500, "9351" => 500, "9352" => 500, "9353" => 500, "12870" => 650, "12871" => 853, "12872" => 213, "12873" => 361, "12874" => 613, "12875" => 863, "12876" => 863, "12877" => 545, "12878" => 295, "12879" => 593, "12880" => 535, "12881" => 583, "12882" => 738, "12883" => 352, "12884" => 769, "12885" => 633, "12886" => 798, "12887" => 941, "12888" => 941, "12889" => 941, "12890" => 941, "12891" => 941, "12892" => 941, "12893" => 392, "12894" => 392, "12895" => 392, "12896" => 392, "12897" => 392, "12898" => 392, "12899" => 392, "12900" => 392, "12901" => 314, "12902" => 392, "12903" => 392, "12904" => 392, "12905" => 392, "12906" => 392, "12907" => 392, "12908" => 392, "12909" => 392, "12910" => 738, "12911" => 633, "12912" => 633, "12913" => 633, "12914" => 352, "12915" => 352, "12916" => 352, "12917" => 798, "12918" => 798, "12919" => 769, "12920" => 769, "12921" => 769, "12922" => 545, "12923" => 535, "12924" => 535, "12925" => 535, "12926" => 295, "12927" => 295, "12928" => 295, "12929" => 583, "12930" => 583, "12931" => 593, "12932" => 593, "12933" => 593, "12934" => 598, "12935" => 598, "12936" => 598, "12937" => 823, "12938" => 823, "12939" => 526, "12940" => 526, "12941" => 526, "12942" => 535, "12943" => 535, "12944" => 535, "12945" => 694, "12946" => 694, "12947" => 694, "12948" => 490, "12949" => 490, "12950" => 490, "12951" => 291, "12952" => 606, "12953" => 583, "12954" => 560, "12955" => 560, "12956" => 560, "12957" => 504, "12958" => 334, "12959" => 300, "12960" => 333, "12961" => 330, "12962" => 334, "12963" => 603, "12964" => 603, "12965" => 810, "12966" => 820, "12967" => 187, "12968" => 310, "12969" => 310, "12970" => 385, "12971" => 678, "12972" => 310, "12973" => 362, "12974" => 310, "12975" => 383, "12976" => 603, "12977" => 603, "12978" => 603, "12979" => 603, "12980" => 603, "12981" => 603, "12982" => 603, "12983" => 603, "12984" => 603, "12985" => 603, "12986" => 310, "12987" => 310, "12988" => 547, "12989" => 678, "12990" => 547, "12991" => 586, "12992" => 825, "12993" => 745, "12994" => 652, "12995" => 691, "12996" => 746, "12997" => 621, "12998" => 581, "12999" => 745, "13000" => 781, "13001" => 346, "13002" => 467, "13003" => 695, "13004" => 582, "13005" => 909, "13006" => 779, "13007" => 782, "13008" => 607, "13009" => 781, "13010" => 686, "13011" => 552, "13012" => 652, "13013" => 753, "13014" => 729, "13015" => 997, "13016" => 711, "13017" => 712, "13018" => 645, "13019" => 310, "13020" => 641, "13021" => 310, "13022" => 500, "13023" => 485, "13024" => 500, "13025" => 580, "13026" => 538, "13027" => 467, "13028" => 582, "13029" => 501, "13030" => 339, "13031" => 541, "13032" => 604, "13033" => 296, "13034" => 284, "13035" => 547, "13036" => 291, "13037" => 887, "13038" => 628, "13039" => 556, "13040" => 579, "13041" => 544, "13042" => 451, "13043" => 434, "13044" => 333, "13045" => 595, "13046" => 532, "13047" => 796, "13048" => 596, "13049" => 570, "13050" => 447, "13051" => 310, "13052" => 500, "13053" => 310, "13054" => 500, "13055" => 291, "13056" => 383, "13057" => 291, "13058" => 500, "13059" => 502, "13060" => 329, "13061" => 603, "13062" => 603, "13063" => 144, "13064" => 494, "13065" => 617, "13066" => 545, "13067" => 483, "13068" => 423, "13069" => 264, "13070" => 264, "13071" => 594, "13072" => 597, "13073" => 500, "13074" => 615, "13075" => 616, "13076" => 310, "13077" => 580, "13078" => 603, "13079" => 291, "13080" => 483, "13081" => 483, "13082" => 423, "13083" => 931, "13084" => 1185, "13085" => 583, "13086" => 500, "13087" => 500, "13088" => 500, "13089" => 500, "13090" => 500, "13091" => 500, "13092" => 500, "13093" => 500, "13094" => 500, "13095" => 500, "13096" => 500, "13098" => 953, "13099" => 380, "13100" => 582, "13101" => 782, "13102" => 989, "13103" => 380, "13104" => 809, "13105" => 296, "13106" => 303, "13107" => 556, "13108" => 868, "13109" => 576, "13110" => 678, "13111" => 713, "13112" => 678, "13113" => 713, "13114" => 355, "13115" => 678, "13116" => 380, "13117" => 380, "13118" => 591, "13119" => 380, "13120" => 899, "13121" => 899, "13122" => 899, "13123" => 745, "13124" => 745, "13125" => 745, "13126" => 745, "13127" => 745, "13128" => 745, "13129" => 691, "13130" => 621, "13131" => 621, "13132" => 621, "13133" => 621, "13134" => 346, "13135" => 346, "13136" => 346, "13137" => 346, "13138" => 746, "13139" => 779, "13140" => 782, "13141" => 782, "13142" => 782, "13143" => 782, "13144" => 782, "13145" => 678, "13146" => 753, "13147" => 753, "13148" => 753, "13149" => 753, "13150" => 712, "13151" => 631, "13152" => 580, "13153" => 580, "13154" => 580, "13155" => 580, "13156" => 580, "13157" => 580, "13158" => 465, "13159" => 501, "13160" => 501, "13161" => 501, "13162" => 501, "13163" => 296, "13164" => 296, "13165" => 296, "13166" => 296, "13167" => 556, "13168" => 628, "13169" => 556, "13170" => 556, "13171" => 556, "13172" => 556, "13173" => 556, "13174" => 678, "13175" => 595, "13176" => 595, "13177" => 595, "13178" => 595, "13179" => 570, "13180" => 580, "13181" => 570, "13182" => 552, "13183" => 712, "13184" => 645, "13185" => 485, "13186" => 434, "13187" => 1004, "13188" => 447, "13189" => 603, "13190" => 635, "13191" => 861, "13192" => 213, "13193" => 361, "13194" => 635, "13195" => 893, "13196" => 894, "13197" => 580, "13198" => 296, "13199" => 595, "13200" => 501, "13201" => 556, "13202" => 745, "13203" => 346, "13204" => 753, "13205" => 621, "13206" => 782, "13207" => 900, "13208" => 899, "13209" => 899, "13210" => 899, "13211" => 899, "13212" => 899, "13213" => 380, "13214" => 380, "13215" => 380, "13216" => 380, "13217" => 380, "13218" => 380, "13219" => 380, "13220" => 380, "13221" => 380, "13222" => 380, "13223" => 380, "13224" => 380, "13225" => 380, "13226" => 380, "13227" => 380, "13228" => 380, "13229" => 380, "13230" => 745, "13231" => 621, "13232" => 621, "13233" => 621, "13234" => 346, "13235" => 346, "13236" => 346, "13237" => 782, "13238" => 782, "13239" => 753, "13240" => 753, "13241" => 753, "13242" => 580, "13243" => 501, "13244" => 501, "13245" => 501, "13246" => 296, "13247" => 296, "13248" => 296, "13249" => 556, "13250" => 556, "13251" => 595, "13252" => 595, "13253" => 595, "13254" => 250, "13255" => 250, "13256" => 250, "13257" => 250, "13258" => 250, "13259" => 250, "13260" => 250, "13261" => 250, "13262" => 250, "13263" => 250, "13264" => 250, "13265" => 250, "13266" => 250, "13267" => 250, "13268" => 250, "13269" => 250, "13270" => 250, "13271" => 250, "13272" => 250, "13273" => 250, "13274" => 333, "13275" => 333, "13276" => 333, "13277" => 333, "13278" => 333, "13279" => 333, "13280" => 333, "13281" => 333, "13282" => 333, "13283" => 333, "13284" => 333, "13285" => 333, "13286" => 333, "13287" => 333, "13288" => 333, "13289" => 333, "13290" => 333, "13291" => 333, "13292" => 333, "13293" => 333, "13294" => 333, "13295" => 500, "13296" => 500, "13297" => 500, "13298" => 500, "13299" => 500, "13300" => 500, "13301" => 500, "13302" => 500, "13303" => 500, "13304" => 500, "13305" => 500, "13306" => 500, "13307" => 500, "13308" => 500, "13309" => 500, "13310" => 500, "13311" => 500, "13312" => 500, "13313" => 500, "13314" => 500, "13315" => 500, "13316" => 500, "13317" => 500, "13318" => 500, "13319" => 500, "15976" => 717, "15977" => 834, "15978" => 777, "15979" => 832, "15980" => 816, "15981" => 894, "15982" => 996, "15983" => 936, "15984" => 981, "15985" => 903, "15986" => 960, "15987" => 775, "15988" => 819, "15989" => 942, "15990" => 998, "15991" => 889, "15992" => 947, "15993" => 865, "15994" => 914, "15995" => 899, "15996" => 910, "15997" => 971, "15998" => 971, "15999" => 999, "16000" => 979, "16001" => 952, "16002" => 976, "16003" => 926, "16004" => 944, "16005" => 967, "16006" => 971, "16007" => 942, "16008" => 963, "16009" => 939, "16010" => 961, "16011" => 918, "16012" => 947, "16013" => 945, "16014" => 956, "16015" => 923, "16016" => 948, "16017" => 961, "16018" => 967, "16019" => 796, "16020" => 824, "16021" => 899, "16022" => 869, "16023" => 876, "16024" => 975, "16025" => 969, "16026" => 948, "16027" => 895, "16028" => 898, "16029" => 925, "16030" => 882, "16031" => 928, "16032" => 957, "16033" => 970, "16034" => 919, "16035" => 946, "16036" => 972, "16037" => 905, "16038" => 916, "16039" => 915, "16040" => 721, "16041" => 813, "16042" => 843, "16043" => 923, "16044" => 961, "16045" => 965, "16046" => 976, "16047" => 917, "16048" => 937, "16049" => 918, "16050" => 976, "16051" => 869, "16052" => 938, "16053" => 873, "16054" => 922, "16055" => 895, "16056" => 963, "16057" => 966, "16058" => 982, "16059" => 959, "16060" => 921, "16061" => 966, "16062" => 858, "16063" => 928, "16064" => 937, "16065" => 965, "16066" => 964, "16067" => 920, "16068" => 963, "16069" => 841, "16070" => 890, "16071" => 933, "16072" => 988, "16073" => 971, "16074" => 991, "16075" => 967, "16076" => 845, "16077" => 896, "16078" => 881, "16079" => 929, "16080" => 889, "16081" => 938, "16082" => 781, "16083" => 812, "16084" => 876, "16085" => 921, "16086" => 926, "16087" => 927, "16088" => 925, "16089" => 956, "16090" => 925, "16091" => 949, "16092" => 919, "16093" => 960, "16094" => 832, "16095" => 883, "16096" => 917, "16097" => 953, "16098" => 839, "16099" => 910, "16100" => 861, "16101" => 924, "16102" => 867, "16103" => 926, "16104" => 889, "16105" => 952, "16106" => 931, "16107" => 956, "16108" => 920, "16109" => 935, "16110" => 833, "16111" => 880, "16112" => 948, "16113" => 913, "16114" => 938, "16115" => 958, "16116" => 963, "16117" => 911, "16118" => 801, "16119" => 906, "16120" => 945, "16121" => 880, "16122" => 742, "16123" => 816, "16124" => 855, "16125" => 879, "16126" => 920, "16127" => 939, "16128" => 891, "16129" => 947, "16130" => 956, "16131" => 709, "16132" => 805, "16133" => 835, "16134" => 907, "16135" => 939, "16136" => 964, "16137" => 810, "16138" => 925, "16139" => 879, "16140" => 888, "16141" => 874, "16142" => 852, "16143" => 898, "16144" => 776, "16145" => 809, "16146" => 838, "16147" => 880, "16148" => 929, "16149" => 975, "16150" => 850, "16151" => 835, "16152" => 842, "16153" => 856, "16154" => 903, "16155" => 935, "16156" => 834, "16157" => 917, "16158" => 811, "16159" => 947, "16160" => 873, "16161" => 853, "16162" => 944, "16163" => 962, "16164" => 964, "16165" => 974, "16166" => 913, "16167" => 935, "16168" => 958, "16169" => 982, "16170" => 865, "16171" => 786, "16172" => 822, "16173" => 901, "16174" => 851, "16175" => 714, "16176" => 829, "16177" => 842, "16178" => 679, "16179" => 857, "16180" => 896, "16181" => 834, "16182" => 880, "16183" => 913, "16184" => 802, "16185" => 789, "16186" => 811, "16187" => 942, "16188" => 961, "16189" => 894, "16190" => 954, "16191" => 872, "16192" => 800, "16469" => 678, "16470" => 678, "16471" => 678, "16472" => 678, "16473" => 678, "16474" => 1043, "16475" => 678, "16476" => 678, "16477" => 678, "16478" => 678, "16479" => 678, "16480" => 678, "16481" => 678, "16482" => 678, "16483" => 678, "16484" => 678, "16485" => 678, "16486" => 678, "16487" => 678, "16488" => 808, "16489" => 678, "16490" => 678, "16491" => 678, "16492" => 678, "16493" => 867, "16494" => 867, "16495" => 718, "16496" => 718, "16497" => 867, "16498" => 867, "16499" => 867, "16500" => 678, "16501" => 678, "16502" => 678, "16503" => 678, "16504" => 603, "16505" => 745, "16506" => 678, "16507" => 678, "16508" => 678, "16509" => 678, "16510" => 571, "16511" => 678, "16512" => 678, "16513" => 678, "16514" => 383, "16515" => 629, "16516" => 678, "16517" => 678, "16518" => 678, "16519" => 678, "16520" => 678, "16521" => 678, "16522" => 867, "16523" => 678, "16524" => 697, "16525" => 604, "16526" => 853, "16527" => 500, "16528" => 678, "16529" => 678, "16530" => 941, "16531" => 832, "16532" => 929, "16533" => 899, "16534" => 796, "16535" => 616, "16536" => 593, "16537" => 593, "16538" => 593, "16539" => 593, "16540" => 738, "16541" => 500, "16542" => 590, "16543" => 563, "16544" => 563, "16545" => 657, "16546" => 659, "16547" => 659, "16548" => 545, "16549" => 500, "16550" => 296, "16551" => 445, "16552" => 500, "16553" => 445, "16554" => 336, "16555" => 492, "16556" => 500, "16557" => 492, "16558" => 681, "16559" => 738, "16560" => 590, "16561" => 706, "16562" => 706, "16563" => 633, "16564" => 761, "16565" => 796, "16566" => 796, "16567" => 798, "16568" => 681, "16569" => 769, "16570" => 657, "16571" => 411, "16572" => 545, "16573" => 296, "16574" => 526, "16575" => 526, "16576" => 535, "16577" => 607, "16578" => 607, "16579" => 616, "16580" => 616, "16581" => 583, "16582" => 411, "16583" => 593, "16584" => 336, "16585" => 500, "16586" => 706, "16587" => 760, "16588" => 797, "16589" => 476, "16590" => 563, "16591" => 769, "16592" => 526, "16593" => 533, "16594" => 619, "16595" => 291, "16596" => 445, "16597" => 593, "16598" => 888, "16599" => 540, "16600" => 373, "16601" => 427, "16602" => 612, "16603" => 411, "16604" => 336, "16605" => 610, "16606" => 613, "16607" => 403, "16608" => 445, "16609" => 522, "16610" => 411, "16611" => 276, "16612" => 328, "16613" => 616, "16614" => 351, "16615" => 547, "16616" => 593, "16617" => 887, "16618" => 547, "16619" => 621, "16620" => 465, "16621" => 465, "16622" => 619, "16623" => 798, "16624" => 445, "16625" => 601, "16626" => 619, "16627" => 342, "16628" => 612, "16629" => 760, "16630" => 302, "16631" => 600, "16632" => 535, "16633" => 490, "16634" => 583, "16635" => 545, "16636" => 899, "16637" => 597, "16638" => 565, "16639" => 598, "16640" => 793, "16641" => 619, "16642" => 465, "16643" => 465, "16644" => 526, "16645" => 505, "16646" => 414, "16647" => 609, "16648" => 0, "16649" => 145, "16650" => 145, "16651" => 300, "16652" => 0, "16653" => 500, "16654" => 407, "16655" => 407, "16656" => 407, "16657" => 407, "16658" => 407, "16659" => 415, "16660" => 415, "16661" => 500, "16662" => 500, "16663" => 500, "16664" => 500, "16665" => 500, "16666" => 500, "16667" => 500, "16668" => 500, "16669" => 500, "16670" => 162, "16671" => 500, "16672" => 500, "16673" => 500, "16674" => 500, "16675" => 500, "16676" => 500, "16677" => 500, "16678" => 500, "16679" => 500, "16680" => 500, "16681" => 500, "16682" => 381, "16683" => 383, "16684" => 678, "16685" => 678, "16686" => 561, "16687" => 563, "16688" => 295, "16689" => 590, "16690" => 826, "16691" => 655, "16692" => 547, "16693" => 535, "16694" => 546, "16695" => 637, "16696" => 473, "16697" => 371, "16698" => 253, "16699" => 472, "16700" => 281, "16701" => 332, "16702" => 184, "16703" => 491, "16704" => 679, "16705" => 875, "16706" => 678, "16707" => 678, "16708" => 867, "16709" => 905, "16710" => 904, "16711" => 366, "16712" => 594, "16713" => 539, "16714" => 516, "16715" => 861, "16716" => 500, "16717" => 899, "16718" => 909, "16719" => 887, "16720" => 779, "16721" => 628, "16722" => 595, "16723" => 595, "16724" => 595, "16725" => 595, "16726" => 745, "16727" => 582, "16728" => 552, "16729" => 552, "16730" => 652, "16731" => 645, "16732" => 645, "16733" => 580, "16734" => 291, "16735" => 434, "16736" => 434, "16737" => 333, "16738" => 447, "16739" => 447, "16740" => 686, "16741" => 745, "16742" => 582, "16743" => 691, "16744" => 691, "16745" => 621, "16746" => 746, "16747" => 779, "16748" => 779, "16749" => 782, "16750" => 686, "16751" => 753, "16752" => 652, "16753" => 451, "16754" => 580, "16755" => 291, "16756" => 467, "16757" => 467, "16758" => 501, "16759" => 582, "16760" => 582, "16761" => 628, "16762" => 628, "16763" => 556, "16764" => 451, "16765" => 595, "16766" => 333, "16767" => 691, "16768" => 745, "16769" => 781, "16770" => 467, "16771" => 552, "16772" => 753, "16773" => 467, "16774" => 541, "16775" => 604, "16776" => 284, "16777" => 434, "16778" => 595);
+%min_w6_v=("8720" => 333, "8721" => 328, "8722" => 379, "8723" => 685, "8724" => 640, "8725" => 863, "8726" => 819, "8727" => 207, "8728" => 320, "8729" => 320, "8730" => 402, "8731" => 685, "8732" => 320, "8733" => 339, "8734" => 320, "8735" => 394, "8736" => 614, "8737" => 614, "8738" => 614, "8739" => 614, "8740" => 614, "8741" => 614, "8742" => 614, "8743" => 614, "8744" => 614, "8745" => 614, "8746" => 320, "8747" => 320, "8748" => 500, "8749" => 685, "8750" => 500, "8751" => 626, "8752" => 875, "8753" => 787, "8754" => 704, "8755" => 741, "8756" => 797, "8757" => 660, "8758" => 624, "8759" => 785, "8760" => 833, "8761" => 389, "8762" => 507, "8763" => 758, "8764" => 614, "8765" => 975, "8766" => 805, "8767" => 815, "8768" => 653, "8769" => 815, "8770" => 726, "8771" => 594, "8772" => 698, "8773" => 791, "8774" => 782, "8775" => 1050, "8776" => 752, "8777" => 759, "8778" => 667, "8779" => 320, "8780" => 729, "8781" => 320, "8782" => 500, "8783" => 500, "8784" => 500, "8785" => 575, "8786" => 629, "8787" => 544, "8788" => 626, "8789" => 560, "8790" => 361, "8791" => 548, "8792" => 666, "8793" => 333, "8794" => 325, "8795" => 607, "8796" => 335, "8797" => 971, "8798" => 663, "8799" => 606, "8800" => 633, "8801" => 629, "8802" => 455, "8803" => 474, "8804" => 368, "8805" => 627, "8806" => 594, "8807" => 834, "8808" => 572, "8809" => 589, "8810" => 508, "8811" => 320, "8812" => 500, "8813" => 320, "8814" => 500, "8815" => 311, "8816" => 394, "8817" => 311, "8818" => 500, "8819" => 500, "8820" => 328, "8821" => 640, "8822" => 690, "8823" => 155, "8824" => 640, "8825" => 640, "8826" => 565, "8827" => 535, "8828" => 444, "8829" => 271, "8830" => 271, "8831" => 653, "8832" => 652, "8833" => 500, "8834" => 640, "8835" => 640, "8836" => 320, "8837" => 614, "8838" => 640, "8839" => 311, "8840" => 535, "8841" => 535, "8842" => 444, "8843" => 960, "8844" => 1278, "8845" => 626, "8846" => 500, "8847" => 500, "8848" => 500, "8849" => 500, "8850" => 500, "8851" => 500, "8852" => 500, "8853" => 500, "8854" => 500, "8855" => 500, "8856" => 500, "8858" => 1026, "8859" => 402, "8860" => 614, "8861" => 815, "8862" => 1083, "8863" => 402, "8864" => 855, "8865" => 333, "8866" => 335, "8867" => 606, "8868" => 926, "8869" => 665, "8870" => 685, "8871" => 739, "8872" => 685, "8873" => 739, "8874" => 357, "8875" => 685, "8876" => 402, "8877" => 402, "8878" => 640, "8879" => 366, "8880" => 960, "8881" => 960, "8882" => 960, "8883" => 787, "8884" => 787, "8885" => 787, "8886" => 787, "8887" => 787, "8888" => 787, "8889" => 741, "8890" => 660, "8891" => 660, "8892" => 660, "8893" => 660, "8894" => 389, "8895" => 389, "8896" => 389, "8897" => 389, "8898" => 797, "8899" => 805, "8900" => 815, "8901" => 815, "8902" => 815, "8903" => 815, "8904" => 815, "8905" => 685, "8906" => 791, "8907" => 791, "8908" => 791, "8909" => 791, "8910" => 759, "8911" => 686, "8912" => 575, "8913" => 575, "8914" => 575, "8915" => 575, "8916" => 575, "8917" => 575, "8918" => 544, "8919" => 560, "8920" => 560, "8921" => 560, "8922" => 560, "8923" => 333, "8924" => 333, "8925" => 333, "8926" => 333, "8927" => 605, "8928" => 663, "8929" => 606, "8930" => 606, "8931" => 606, "8932" => 606, "8933" => 606, "8934" => 685, "8935" => 627, "8936" => 627, "8937" => 627, "8938" => 627, "8939" => 589, "8940" => 637, "8941" => 589, "8942" => 594, "8943" => 759, "8944" => 667, "8945" => 500, "8946" => 474, "8947" => 1044, "8948" => 508, "8949" => 612, "8950" => 500, "8951" => 500, "8952" => 500, "8953" => 500, "8954" => 500, "8955" => 500, "8956" => 500, "8957" => 500, "8958" => 500, "8959" => 500, "8960" => 500, "8961" => 500, "8962" => 500, "8963" => 500, "8964" => 500, "8965" => 500, "8966" => 500, "8967" => 500, "8968" => 500, "8969" => 500, "8970" => 500, "8971" => 500, "8972" => 500, "8973" => 500, "8974" => 500, "8975" => 500, "8976" => 500, "8977" => 500, "8978" => 500, "8979" => 500, "8980" => 500, "8981" => 500, "8982" => 500, "8983" => 500, "8984" => 500, "8985" => 500, "8986" => 500, "8987" => 500, "8988" => 500, "8989" => 500, "8990" => 500, "8991" => 500, "8992" => 500, "8993" => 500, "8994" => 500, "8995" => 500, "8996" => 500, "8997" => 500, "8998" => 500, "8999" => 500, "9000" => 500, "9001" => 500, "9002" => 500, "9003" => 500, "9004" => 500, "9005" => 500, "9006" => 500, "9007" => 500, "9008" => 500, "9009" => 500, "9010" => 500, "9011" => 500, "9012" => 500, "9013" => 500, "9014" => 500, "9015" => 500, "9016" => 500, "9017" => 500, "9018" => 500, "9019" => 500, "9020" => 500, "9021" => 500, "9022" => 500, "9023" => 500, "9024" => 500, "9025" => 500, "9026" => 500, "9027" => 500, "9028" => 500, "9029" => 500, "9030" => 500, "9031" => 500, "9032" => 500, "9033" => 500, "9034" => 500, "9035" => 500, "9036" => 500, "9037" => 500, "9038" => 500, "9039" => 500, "9040" => 500, "9041" => 500, "9042" => 500, "9043" => 500, "9044" => 500, "9045" => 500, "9046" => 500, "9047" => 500, "9048" => 500, "9049" => 500, "9050" => 500, "9051" => 500, "9052" => 500, "9053" => 500, "9054" => 500, "9055" => 500, "9056" => 500, "9057" => 500, "9058" => 500, "9059" => 500, "9060" => 500, "9061" => 500, "9062" => 500, "9063" => 500, "9064" => 500, "9065" => 500, "9066" => 500, "9067" => 500, "9068" => 500, "9069" => 500, "9070" => 500, "9071" => 500, "9072" => 500, "9073" => 500, "9074" => 500, "9075" => 500, "9076" => 500, "9077" => 500, "9078" => 500, "9079" => 500, "9080" => 500, "9081" => 500, "9082" => 500, "9083" => 500, "9084" => 500, "9085" => 500, "9086" => 500, "9087" => 500, "9088" => 500, "9089" => 500, "9090" => 500, "9091" => 500, "9092" => 500, "9093" => 500, "9094" => 500, "9095" => 500, "9096" => 500, "9097" => 500, "9098" => 500, "9099" => 500, "9100" => 500, "9101" => 500, "9102" => 500, "9103" => 500, "9104" => 500, "9105" => 500, "9106" => 500, "9107" => 500, "9108" => 500, "9109" => 500, "9110" => 500, "9111" => 500, "9112" => 500, "9113" => 500, "9114" => 500, "9115" => 500, "9116" => 500, "9117" => 500, "9118" => 500, "9119" => 500, "9120" => 500, "9121" => 500, "9122" => 500, "9123" => 500, "9124" => 500, "9125" => 500, "9126" => 500, "9127" => 500, "9128" => 500, "9129" => 500, "9130" => 500, "9131" => 500, "9132" => 500, "9133" => 500, "9134" => 500, "9135" => 500, "9136" => 500, "9137" => 500, "9138" => 500, "9139" => 500, "9140" => 500, "9141" => 500, "9142" => 500, "9143" => 500, "9144" => 500, "9145" => 500, "9146" => 500, "9147" => 500, "9148" => 500, "9149" => 500, "9150" => 500, "9151" => 500, "9152" => 500, "9153" => 500, "9154" => 500, "9155" => 500, "9156" => 500, "9157" => 500, "9158" => 500, "9159" => 500, "9160" => 500, "9161" => 500, "9162" => 500, "9163" => 500, "9164" => 500, "9165" => 500, "9166" => 500, "9167" => 500, "9168" => 500, "9169" => 500, "9170" => 500, "9171" => 500, "9172" => 500, "9173" => 500, "9174" => 500, "9175" => 500, "9176" => 500, "9177" => 500, "9178" => 500, "9179" => 500, "9180" => 500, "9181" => 500, "9182" => 500, "9183" => 500, "9184" => 500, "9185" => 500, "9186" => 500, "9187" => 500, "9188" => 500, "9189" => 500, "9190" => 500, "9191" => 500, "9192" => 500, "9193" => 500, "9194" => 500, "9195" => 500, "9196" => 500, "9197" => 500, "9198" => 500, "9199" => 500, "9200" => 500, "9201" => 500, "9202" => 500, "9203" => 500, "9204" => 500, "9205" => 500, "9206" => 500, "9207" => 500, "9208" => 500, "9209" => 500, "9210" => 500, "9211" => 500, "9212" => 500, "9213" => 500, "9214" => 500, "9215" => 500, "9216" => 500, "9217" => 500, "9218" => 500, "9219" => 500, "9220" => 500, "9221" => 500, "9222" => 500, "9223" => 500, "9224" => 500, "9225" => 500, "9226" => 500, "9227" => 500, "9228" => 500, "9229" => 500, "9230" => 500, "9231" => 500, "9232" => 500, "9233" => 500, "9234" => 500, "9235" => 500, "9236" => 500, "9237" => 500, "9238" => 500, "9239" => 500, "9240" => 500, "9241" => 500, "9242" => 500, "9243" => 500, "9244" => 500, "9245" => 500, "9246" => 500, "9247" => 500, "9248" => 500, "9249" => 500, "9250" => 500, "9251" => 500, "9252" => 500, "9253" => 500, "9254" => 500, "9255" => 500, "9256" => 500, "9257" => 500, "9258" => 500, "9259" => 500, "9260" => 500, "9261" => 500, "9262" => 500, "9263" => 500, "9264" => 500, "9265" => 500, "9266" => 500, "9267" => 500, "9268" => 500, "9269" => 500, "9270" => 500, "9271" => 500, "9272" => 500, "9273" => 500, "9274" => 500, "9275" => 500, "9276" => 500, "9277" => 500, "9278" => 500, "9279" => 500, "9280" => 500, "9281" => 500, "9282" => 500, "9283" => 500, "9284" => 500, "9285" => 500, "9286" => 500, "9287" => 500, "9288" => 500, "9289" => 500, "9290" => 500, "9291" => 500, "9292" => 500, "9293" => 500, "9294" => 500, "9295" => 500, "9296" => 500, "9297" => 500, "9298" => 500, "9299" => 500, "9300" => 500, "9301" => 500, "9302" => 500, "9303" => 500, "9304" => 500, "9305" => 500, "9306" => 500, "9307" => 500, "9308" => 500, "9309" => 500, "9310" => 500, "9311" => 500, "9312" => 500, "9313" => 500, "9314" => 500, "9315" => 500, "9316" => 500, "9317" => 500, "9318" => 500, "9319" => 500, "9320" => 500, "9321" => 500, "9322" => 500, "9323" => 500, "9324" => 500, "9325" => 500, "9326" => 500, "9327" => 500, "9328" => 500, "9329" => 500, "9330" => 500, "9331" => 500, "9332" => 500, "9333" => 500, "9334" => 500, "9335" => 500, "9336" => 500, "9337" => 500, "9338" => 500, "9339" => 500, "9340" => 500, "9341" => 500, "9342" => 500, "9343" => 500, "9344" => 500, "9345" => 500, "9346" => 500, "9347" => 500, "9348" => 500, "9349" => 500, "9350" => 500, "9351" => 500, "9352" => 500, "9353" => 500, "12870" => 652, "12871" => 864, "12872" => 234, "12873" => 405, "12874" => 688, "12875" => 971, "12876" => 977, "12877" => 575, "12878" => 333, "12879" => 627, "12880" => 560, "12881" => 606, "12882" => 787, "12883" => 389, "12884" => 791, "12885" => 660, "12886" => 815, "12887" => 960, "12888" => 960, "12889" => 960, "12890" => 960, "12891" => 960, "12892" => 960, "12893" => 402, "12894" => 402, "12895" => 402, "12896" => 402, "12897" => 402, "12898" => 402, "12899" => 402, "12900" => 402, "12901" => 366, "12902" => 402, "12903" => 402, "12904" => 402, "12905" => 402, "12906" => 402, "12907" => 402, "12908" => 402, "12909" => 402, "12910" => 787, "12911" => 660, "12912" => 660, "12913" => 660, "12914" => 389, "12915" => 389, "12916" => 389, "12917" => 815, "12918" => 815, "12919" => 791, "12920" => 791, "12921" => 791, "12922" => 575, "12923" => 560, "12924" => 560, "12925" => 560, "12926" => 333, "12927" => 333, "12928" => 333, "12929" => 606, "12930" => 606, "12931" => 627, "12932" => 627, "12933" => 627, "12934" => 625, "12935" => 625, "12936" => 625, "12937" => 855, "12938" => 855, "12939" => 544, "12940" => 544, "12941" => 544, "12942" => 560, "12943" => 560, "12944" => 560, "12945" => 773, "12946" => 773, "12947" => 773, "12948" => 508, "12949" => 508, "12950" => 508, "12951" => 325, "12952" => 652, "12953" => 606, "12954" => 594, "12955" => 594, "12956" => 594, "12957" => 524, "12958" => 373, "12959" => 320, "12960" => 333, "12961" => 328, "12962" => 379, "12963" => 685, "12964" => 640, "12965" => 864, "12966" => 829, "12967" => 207, "12968" => 320, "12969" => 320, "12970" => 402, "12971" => 685, "12972" => 320, "12973" => 339, "12974" => 320, "12975" => 394, "12976" => 614, "12977" => 614, "12978" => 614, "12979" => 614, "12980" => 614, "12981" => 614, "12982" => 614, "12983" => 614, "12984" => 614, "12985" => 614, "12986" => 320, "12987" => 320, "12988" => 554, "12989" => 685, "12990" => 554, "12991" => 626, "12992" => 875, "12993" => 782, "12994" => 704, "12995" => 707, "12996" => 798, "12997" => 681, "12998" => 619, "12999" => 773, "13000" => 829, "13001" => 395, "13002" => 498, "13003" => 776, "13004" => 606, "13005" => 953, "13006" => 775, "13007" => 809, "13008" => 651, "13009" => 808, "13010" => 743, "13011" => 597, "13012" => 682, "13013" => 784, "13014" => 779, "13015" => 1043, "13016" => 752, "13017" => 755, "13018" => 631, "13019" => 320, "13020" => 729, "13021" => 320, "13022" => 500, "13023" => 500, "13024" => 500, "13025" => 617, "13026" => 587, "13027" => 491, "13028" => 634, "13029" => 554, "13030" => 373, "13031" => 586, "13032" => 646, "13033" => 346, "13034" => 316, "13035" => 608, "13036" => 354, "13037" => 964, "13038" => 678, "13039" => 581, "13040" => 640, "13041" => 585, "13042" => 474, "13043" => 482, "13044" => 363, "13045" => 650, "13046" => 578, "13047" => 868, "13048" => 635, "13049" => 613, "13050" => 516, "13051" => 320, "13052" => 500, "13053" => 320, "13054" => 500, "13055" => 311, "13056" => 394, "13057" => 311, "13058" => 500, "13059" => 614, "13060" => 328, "13061" => 640, "13062" => 690, "13063" => 157, "13064" => 581, "13065" => 640, "13066" => 565, "13067" => 535, "13068" => 444, "13069" => 271, "13070" => 271, "13071" => 673, "13072" => 686, "13073" => 500, "13074" => 640, "13075" => 640, "13076" => 320, "13077" => 614, "13078" => 640, "13079" => 311, "13080" => 535, "13081" => 535, "13082" => 444, "13083" => 948, "13084" => 1279, "13085" => 626, "13086" => 500, "13087" => 500, "13088" => 500, "13089" => 500, "13090" => 500, "13091" => 500, "13092" => 500, "13093" => 500, "13094" => 500, "13095" => 500, "13096" => 500, "13098" => 1006, "13099" => 406, "13100" => 606, "13101" => 809, "13102" => 1082, "13103" => 406, "13104" => 840, "13105" => 346, "13106" => 360, "13107" => 581, "13108" => 897, "13109" => 634, "13110" => 685, "13111" => 739, "13112" => 685, "13113" => 739, "13114" => 357, "13115" => 685, "13116" => 386, "13117" => 386, "13118" => 661, "13119" => 386, "13120" => 943, "13121" => 943, "13122" => 943, "13123" => 782, "13124" => 782, "13125" => 782, "13126" => 782, "13127" => 782, "13128" => 782, "13129" => 707, "13130" => 681, "13131" => 681, "13132" => 681, "13133" => 681, "13134" => 395, "13135" => 395, "13136" => 395, "13137" => 395, "13138" => 798, "13139" => 775, "13140" => 809, "13141" => 809, "13142" => 809, "13143" => 809, "13144" => 809, "13145" => 685, "13146" => 784, "13147" => 784, "13148" => 784, "13149" => 784, "13150" => 755, "13151" => 678, "13152" => 617, "13153" => 617, "13154" => 617, "13155" => 617, "13156" => 617, "13157" => 617, "13158" => 491, "13159" => 554, "13160" => 554, "13161" => 554, "13162" => 554, "13163" => 346, "13164" => 346, "13165" => 346, "13166" => 346, "13167" => 581, "13168" => 678, "13169" => 581, "13170" => 581, "13171" => 581, "13172" => 581, "13173" => 581, "13174" => 685, "13175" => 650, "13176" => 650, "13177" => 650, "13178" => 650, "13179" => 613, "13180" => 624, "13181" => 613, "13182" => 597, "13183" => 755, "13184" => 631, "13185" => 500, "13186" => 482, "13187" => 1037, "13188" => 516, "13189" => 614, "13190" => 680, "13191" => 881, "13192" => 234, "13193" => 405, "13194" => 704, "13195" => 988, "13196" => 1017, "13197" => 617, "13198" => 346, "13199" => 650, "13200" => 554, "13201" => 581, "13202" => 782, "13203" => 395, "13204" => 784, "13205" => 681, "13206" => 809, "13207" => 943, "13208" => 943, "13209" => 943, "13210" => 943, "13211" => 943, "13212" => 943, "13213" => 386, "13214" => 386, "13215" => 386, "13216" => 386, "13217" => 386, "13218" => 386, "13219" => 386, "13220" => 386, "13221" => 386, "13222" => 386, "13223" => 386, "13224" => 386, "13225" => 386, "13226" => 386, "13227" => 386, "13228" => 386, "13229" => 386, "13230" => 782, "13231" => 681, "13232" => 681, "13233" => 681, "13234" => 395, "13235" => 395, "13236" => 395, "13237" => 809, "13238" => 809, "13239" => 784, "13240" => 784, "13241" => 784, "13242" => 617, "13243" => 554, "13244" => 554, "13245" => 554, "13246" => 346, "13247" => 346, "13248" => 346, "13249" => 581, "13250" => 581, "13251" => 650, "13252" => 650, "13253" => 650, "13254" => 250, "13255" => 250, "13256" => 250, "13257" => 250, "13258" => 250, "13259" => 250, "13260" => 250, "13261" => 250, "13262" => 250, "13263" => 250, "13264" => 250, "13265" => 250, "13266" => 250, "13267" => 250, "13268" => 250, "13269" => 250, "13270" => 250, "13271" => 250, "13272" => 250, "13273" => 250, "13274" => 333, "13275" => 333, "13276" => 333, "13277" => 333, "13278" => 333, "13279" => 333, "13280" => 333, "13281" => 333, "13282" => 333, "13283" => 333, "13284" => 333, "13285" => 333, "13286" => 333, "13287" => 333, "13288" => 333, "13289" => 333, "13290" => 333, "13291" => 333, "13292" => 333, "13293" => 333, "13294" => 333, "13295" => 500, "13296" => 500, "13297" => 500, "13298" => 500, "13299" => 500, "13300" => 500, "13301" => 500, "13302" => 500, "13303" => 500, "13304" => 500, "13305" => 500, "13306" => 500, "13307" => 500, "13308" => 500, "13309" => 500, "13310" => 500, "13311" => 500, "13312" => 500, "13313" => 500, "13314" => 500, "13315" => 500, "13316" => 500, "13317" => 500, "13318" => 500, "13319" => 500, "15976" => 746, "15977" => 844, "15978" => 798, "15979" => 854, "15980" => 840, "15981" => 909, "15982" => 998, "15983" => 959, "15984" => 996, "15985" => 915, "15986" => 979, "15987" => 792, "15988" => 847, "15989" => 947, "15990" => 999, "15991" => 912, "15992" => 974, "15993" => 889, "15994" => 948, "15995" => 924, "15996" => 939, "15997" => 993, "15998" => 986, "15999" => 999, "16000" => 998, "16001" => 964, "16002" => 982, "16003" => 947, "16004" => 960, "16005" => 984, "16006" => 985, "16007" => 953, "16008" => 974, "16009" => 961, "16010" => 983, "16011" => 945, "16012" => 966, "16013" => 966, "16014" => 974, "16015" => 947, "16016" => 968, "16017" => 978, "16018" => 980, "16019" => 804, "16020" => 842, "16021" => 915, "16022" => 892, "16023" => 895, "16024" => 989, "16025" => 989, "16026" => 966, "16027" => 917, "16028" => 923, "16029" => 954, "16030" => 899, "16031" => 955, "16032" => 976, "16033" => 982, "16034" => 936, "16035" => 964, "16036" => 980, "16037" => 939, "16038" => 947, "16039" => 943, "16040" => 743, "16041" => 833, "16042" => 858, "16043" => 946, "16044" => 974, "16045" => 981, "16046" => 988, "16047" => 936, "16048" => 958, "16049" => 941, "16050" => 991, "16051" => 883, "16052" => 954, "16053" => 882, "16054" => 940, "16055" => 917, "16056" => 983, "16057" => 982, "16058" => 985, "16059" => 980, "16060" => 943, "16061" => 979, "16062" => 873, "16063" => 945, "16064" => 959, "16065" => 982, "16066" => 979, "16067" => 940, "16068" => 972, "16069" => 860, "16070" => 903, "16071" => 963, "16072" => 995, "16073" => 994, "16074" => 989, "16075" => 980, "16076" => 850, "16077" => 920, "16078" => 892, "16079" => 946, "16080" => 893, "16081" => 956, "16082" => 804, "16083" => 839, "16084" => 884, "16085" => 941, "16086" => 948, "16087" => 950, "16088" => 941, "16089" => 965, "16090" => 937, "16091" => 957, "16092" => 932, "16093" => 965, "16094" => 859, "16095" => 913, "16096" => 937, "16097" => 965, "16098" => 861, "16099" => 921, "16100" => 885, "16101" => 944, "16102" => 893, "16103" => 940, "16104" => 906, "16105" => 964, "16106" => 942, "16107" => 961, "16108" => 940, "16109" => 951, "16110" => 843, "16111" => 897, "16112" => 961, "16113" => 934, "16114" => 962, "16115" => 974, "16116" => 975, "16117" => 935, "16118" => 831, "16119" => 933, "16120" => 964, "16121" => 913, "16122" => 765, "16123" => 844, "16124" => 874, "16125" => 906, "16126" => 935, "16127" => 955, "16128" => 906, "16129" => 963, "16130" => 967, "16131" => 738, "16132" => 832, "16133" => 858, "16134" => 932, "16135" => 958, "16136" => 973, "16137" => 838, "16138" => 947, "16139" => 910, "16140" => 918, "16141" => 900, "16142" => 868, "16143" => 919, "16144" => 799, "16145" => 833, "16146" => 855, "16147" => 905, "16148" => 947, "16149" => 989, "16150" => 883, "16151" => 871, "16152" => 871, "16153" => 865, "16154" => 915, "16155" => 958, "16156" => 865, "16157" => 939, "16158" => 830, "16159" => 962, "16160" => 890, "16161" => 864, "16162" => 964, "16163" => 972, "16164" => 966, "16165" => 975, "16166" => 938, "16167" => 958, "16168" => 970, "16169" => 992, "16170" => 867, "16171" => 808, "16172" => 840, "16173" => 906, "16174" => 865, "16175" => 731, "16176" => 852, "16177" => 850, "16178" => 701, "16179" => 877, "16180" => 901, "16181" => 862, "16182" => 886, "16183" => 922, "16184" => 830, "16185" => 808, "16186" => 824, "16187" => 966, "16188" => 980, "16189" => 928, "16190" => 971, "16191" => 888, "16192" => 823, "16469" => 685, "16470" => 685, "16471" => 685, "16472" => 685, "16473" => 685, "16474" => 1069, "16475" => 685, "16476" => 685, "16477" => 685, "16478" => 685, "16479" => 685, "16480" => 685, "16481" => 685, "16482" => 685, "16483" => 685, "16484" => 685, "16485" => 685, "16486" => 685, "16487" => 685, "16488" => 825, "16489" => 685, "16490" => 685, "16491" => 685, "16492" => 685, "16493" => 907, "16494" => 907, "16495" => 740, "16496" => 740, "16497" => 890, "16498" => 890, "16499" => 890, "16500" => 685, "16501" => 685, "16502" => 685, "16503" => 685, "16504" => 648, "16505" => 772, "16506" => 685, "16507" => 685, "16508" => 685, "16509" => 685, "16510" => 571, "16511" => 685, "16512" => 685, "16513" => 685, "16514" => 383, "16515" => 629, "16516" => 685, "16517" => 685, "16518" => 685, "16519" => 685, "16520" => 685, "16521" => 685, "16522" => 907, "16523" => 685, "16524" => 741, "16525" => 646, "16526" => 864, "16527" => 500, "16528" => 685, "16529" => 685, "16530" => 960, "16531" => 867, "16532" => 975, "16533" => 971, "16534" => 805, "16535" => 663, "16536" => 627, "16537" => 627, "16538" => 627, "16539" => 627, "16540" => 787, "16541" => 500, "16542" => 614, "16543" => 594, "16544" => 594, "16545" => 698, "16546" => 667, "16547" => 667, "16548" => 575, "16549" => 500, "16550" => 335, "16551" => 474, "16552" => 500, "16553" => 474, "16554" => 355, "16555" => 508, "16556" => 500, "16557" => 508, "16558" => 726, "16559" => 787, "16560" => 614, "16561" => 741, "16562" => 741, "16563" => 660, "16564" => 797, "16565" => 805, "16566" => 805, "16567" => 815, "16568" => 726, "16569" => 791, "16570" => 698, "16571" => 455, "16572" => 575, "16573" => 335, "16574" => 544, "16575" => 544, "16576" => 560, "16577" => 626, "16578" => 626, "16579" => 663, "16580" => 663, "16581" => 606, "16582" => 455, "16583" => 627, "16584" => 355, "16585" => 500, "16586" => 741, "16587" => 785, "16588" => 833, "16589" => 507, "16590" => 594, "16591" => 791, "16592" => 544, "16593" => 548, "16594" => 666, "16595" => 325, "16596" => 474, "16597" => 627, "16598" => 960, "16599" => 563, "16600" => 428, "16601" => 457, "16602" => 639, "16603" => 455, "16604" => 361, "16605" => 626, "16606" => 659, "16607" => 451, "16608" => 474, "16609" => 526, "16610" => 455, "16611" => 321, "16612" => 361, "16613" => 663, "16614" => 381, "16615" => 589, "16616" => 629, "16617" => 958, "16618" => 614, "16619" => 666, "16620" => 498, "16621" => 498, "16622" => 666, "16623" => 815, "16624" => 484, "16625" => 629, "16626" => 626, "16627" => 367, "16628" => 629, "16629" => 785, "16630" => 333, "16631" => 627, "16632" => 560, "16633" => 508, "16634" => 612, "16635" => 575, "16636" => 971, "16637" => 611, "16638" => 614, "16639" => 625, "16640" => 834, "16641" => 666, "16642" => 498, "16643" => 498, "16644" => 544, "16645" => 529, "16646" => 459, "16647" => 654, "16648" => 0, "16649" => 160, "16650" => 160, "16651" => 320, "16652" => 0, "16653" => 500, "16654" => 441, "16655" => 441, "16656" => 441, "16657" => 441, "16658" => 441, "16659" => 455, "16660" => 455, "16661" => 500, "16662" => 500, "16663" => 500, "16664" => 500, "16665" => 500, "16666" => 500, "16667" => 500, "16668" => 500, "16669" => 500, "16670" => 206, "16671" => 500, "16672" => 500, "16673" => 500, "16674" => 500, "16675" => 500, "16676" => 500, "16677" => 500, "16678" => 500, "16679" => 500, "16680" => 500, "16681" => 500, "16682" => 405, "16683" => 383, "16684" => 685, "16685" => 685, "16686" => 594, "16687" => 589, "16688" => 320, "16689" => 601, "16690" => 850, "16691" => 695, "16692" => 614, "16693" => 578, "16694" => 567, "16695" => 664, "16696" => 496, "16697" => 419, "16698" => 315, "16699" => 504, "16700" => 299, "16701" => 354, "16702" => 217, "16703" => 519, "16704" => 693, "16705" => 875, "16706" => 685, "16707" => 685, "16708" => 890, "16709" => 922, "16710" => 922, "16711" => 414, "16712" => 629, "16713" => 582, "16714" => 574, "16715" => 881, "16716" => 500, "16717" => 943, "16718" => 953, "16719" => 964, "16720" => 775, "16721" => 678, "16722" => 650, "16723" => 650, "16724" => 650, "16725" => 650, "16726" => 782, "16727" => 606, "16728" => 597, "16729" => 597, "16730" => 682, "16731" => 631, "16732" => 631, "16733" => 617, "16734" => 354, "16735" => 482, "16736" => 482, "16737" => 363, "16738" => 516, "16739" => 516, "16740" => 743, "16741" => 782, "16742" => 606, "16743" => 707, "16744" => 707, "16745" => 681, "16746" => 798, "16747" => 775, "16748" => 775, "16749" => 809, "16750" => 743, "16751" => 784, "16752" => 682, "16753" => 474, "16754" => 617, "16755" => 354, "16756" => 491, "16757" => 491, "16758" => 554, "16759" => 634, "16760" => 634, "16761" => 678, "16762" => 678, "16763" => 581, "16764" => 474, "16765" => 650, "16766" => 363, "16767" => 707, "16768" => 773, "16769" => 829, "16770" => 498, "16771" => 597, "16772" => 784, "16773" => 491, "16774" => 586, "16775" => 646, "16776" => 316, "16777" => 482, "16778" => 650);
+%goth_w3_v=("8720" => 333, "8721" => 311, "8722" => 356, "8723" => 657, "8724" => 650, "8725" => 879, "8726" => 797, "8727" => 195, "8728" => 356, "8729" => 356, "8730" => 346, "8731" => 656, "8732" => 240, "8733" => 358, "8734" => 240, "8735" => 474, "8736" => 657, "8737" => 657, "8738" => 657, "8739" => 657, "8740" => 661, "8741" => 657, "8742" => 657, "8743" => 657, "8744" => 657, "8745" => 657, "8746" => 240, "8747" => 240, "8748" => 512, "8749" => 656, "8750" => 512, "8751" => 571, "8752" => 905, "8753" => 750, "8754" => 712, "8755" => 756, "8756" => 758, "8757" => 643, "8758" => 602, "8759" => 754, "8760" => 778, "8761" => 249, "8762" => 508, "8763" => 707, "8764" => 602, "8765" => 945, "8766" => 774, "8767" => 795, "8768" => 662, "8769" => 795, "8770" => 726, "8771" => 669, "8772" => 649, "8773" => 773, "8774" => 717, "8775" => 1006, "8776" => 722, "8777" => 688, "8778" => 669, "8779" => 346, "8780" => 691, "8781" => 346, "8782" => 533, "8783" => 501, "8784" => 500, "8785" => 575, "8786" => 646, "8787" => 578, "8788" => 646, "8789" => 588, "8790" => 417, "8791" => 641, "8792" => 617, "8793" => 238, "8794" => 265, "8795" => 575, "8796" => 232, "8797" => 931, "8798" => 618, "8799" => 625, "8800" => 647, "8801" => 646, "8802" => 430, "8803" => 537, "8804" => 392, "8805" => 618, "8806" => 544, "8807" => 770, "8808" => 536, "8809" => 554, "8810" => 498, "8811" => 347, "8812" => 372, "8813" => 347, "8814" => 543, "8815" => 240, "8816" => 474, "8817" => 240, "8818" => 375, "8819" => 543, "8820" => 311, "8821" => 586, "8822" => 655, "8823" => 145, "8824" => 586, "8825" => 639, "8826" => 565, "8827" => 384, "8828" => 466, "8829" => 303, "8830" => 303, "8831" => 620, "8832" => 616, "8833" => 500, "8834" => 600, "8835" => 600, "8836" => 240, "8837" => 587, "8838" => 479, "8839" => 240, "8840" => 384, "8841" => 384, "8842" => 466, "8843" => 721, "8844" => 1275, "8845" => 571, "8846" => 500, "8847" => 500, "8848" => 500, "8849" => 500, "8850" => 500, "8851" => 500, "8852" => 500, "8853" => 756, "8854" => 500, "8855" => 759, "8856" => 500, "8858" => 1057, "8859" => 394, "8860" => 639, "8861" => 795, "8862" => 1039, "8863" => 430, "8864" => 969, "8865" => 238, "8866" => 300, "8867" => 625, "8868" => 1021, "8869" => 627, "8870" => 656, "8871" => 570, "8872" => 656, "8873" => 570, "8874" => 300, "8875" => 656, "8876" => 394, "8877" => 394, "8878" => 619, "8879" => 394, "8880" => 854, "8881" => 851, "8882" => 884, "8883" => 750, "8884" => 750, "8885" => 750, "8886" => 750, "8887" => 750, "8888" => 750, "8889" => 756, "8890" => 643, "8891" => 643, "8892" => 643, "8893" => 643, "8894" => 249, "8895" => 249, "8896" => 249, "8897" => 249, "8898" => 766, "8899" => 774, "8900" => 795, "8901" => 795, "8902" => 795, "8903" => 795, "8904" => 795, "8905" => 656, "8906" => 773, "8907" => 773, "8908" => 773, "8909" => 773, "8910" => 688, "8911" => 645, "8912" => 575, "8913" => 575, "8914" => 575, "8915" => 575, "8916" => 575, "8917" => 575, "8918" => 578, "8919" => 588, "8920" => 588, "8921" => 588, "8922" => 588, "8923" => 308, "8924" => 304, "8925" => 304, "8926" => 274, "8927" => 644, "8928" => 618, "8929" => 625, "8930" => 625, "8931" => 625, "8932" => 625, "8933" => 625, "8934" => 656, "8935" => 618, "8936" => 618, "8937" => 618, "8938" => 618, "8939" => 554, "8940" => 647, "8941" => 554, "8942" => 669, "8943" => 688, "8944" => 669, "8945" => 500, "8946" => 537, "8947" => 1004, "8948" => 498, "8949" => 657, "8950" => 500, "8951" => 500, "8952" => 500, "8953" => 500, "8954" => 500, "8955" => 500, "8956" => 500, "8957" => 500, "8958" => 500, "8959" => 500, "8960" => 500, "8961" => 500, "8962" => 500, "8963" => 500, "8964" => 500, "8965" => 500, "8966" => 500, "8967" => 500, "8968" => 500, "8969" => 500, "8970" => 500, "8971" => 500, "8972" => 500, "8973" => 500, "8974" => 500, "8975" => 500, "8976" => 500, "8977" => 500, "8978" => 500, "8979" => 500, "8980" => 500, "8981" => 500, "8982" => 500, "8983" => 500, "8984" => 500, "8985" => 500, "8986" => 500, "8987" => 500, "8988" => 500, "8989" => 500, "8990" => 500, "8991" => 500, "8992" => 500, "8993" => 500, "8994" => 500, "8995" => 500, "8996" => 500, "8997" => 500, "8998" => 500, "8999" => 500, "9000" => 500, "9001" => 500, "9002" => 500, "9003" => 500, "9004" => 500, "9005" => 500, "9006" => 500, "9007" => 500, "9008" => 500, "9009" => 500, "9010" => 500, "9011" => 500, "9012" => 500, "9013" => 500, "9014" => 500, "9015" => 500, "9016" => 500, "9017" => 500, "9018" => 500, "9019" => 500, "9020" => 500, "9021" => 500, "9022" => 500, "9023" => 500, "9024" => 500, "9025" => 500, "9026" => 500, "9027" => 500, "9028" => 500, "9029" => 500, "9030" => 500, "9031" => 500, "9032" => 500, "9033" => 500, "9034" => 500, "9035" => 500, "9036" => 500, "9037" => 500, "9038" => 500, "9039" => 500, "9040" => 500, "9041" => 500, "9042" => 500, "9043" => 500, "9044" => 500, "9045" => 500, "9046" => 500, "9047" => 500, "9048" => 500, "9049" => 500, "9050" => 500, "9051" => 500, "9052" => 500, "9053" => 500, "9054" => 500, "9055" => 500, "9056" => 500, "9057" => 500, "9058" => 500, "9059" => 500, "9060" => 500, "9061" => 500, "9062" => 500, "9063" => 500, "9064" => 500, "9065" => 500, "9066" => 500, "9067" => 500, "9068" => 500, "9069" => 500, "9070" => 500, "9071" => 500, "9072" => 500, "9073" => 500, "9074" => 500, "9075" => 500, "9076" => 500, "9077" => 500, "9078" => 500, "9079" => 500, "9080" => 500, "9081" => 500, "9082" => 500, "9083" => 500, "9084" => 500, "9085" => 500, "9086" => 500, "9087" => 500, "9088" => 500, "9089" => 500, "9090" => 500, "9091" => 500, "9092" => 500, "9093" => 500, "9094" => 500, "9095" => 500, "9096" => 500, "9097" => 500, "9098" => 500, "9099" => 500, "9100" => 500, "9101" => 500, "9102" => 500, "9103" => 500, "9104" => 500, "9105" => 500, "9106" => 500, "9107" => 500, "9108" => 500, "9109" => 500, "9110" => 500, "9111" => 500, "9112" => 500, "9113" => 500, "9114" => 500, "9115" => 500, "9116" => 500, "9117" => 500, "9118" => 500, "9119" => 500, "9120" => 500, "9121" => 500, "9122" => 500, "9123" => 500, "9124" => 500, "9125" => 500, "9126" => 500, "9127" => 500, "9128" => 500, "9129" => 500, "9130" => 500, "9131" => 500, "9132" => 500, "9133" => 500, "9134" => 500, "9135" => 500, "9136" => 500, "9137" => 500, "9138" => 500, "9139" => 500, "9140" => 500, "9141" => 500, "9142" => 500, "9143" => 500, "9144" => 500, "9145" => 500, "9146" => 500, "9147" => 500, "9148" => 500, "9149" => 500, "9150" => 500, "9151" => 500, "9152" => 500, "9153" => 500, "9154" => 500, "9155" => 500, "9156" => 500, "9157" => 500, "9158" => 500, "9159" => 500, "9160" => 500, "9161" => 500, "9162" => 500, "9163" => 500, "9164" => 500, "9165" => 500, "9166" => 500, "9167" => 500, "9168" => 500, "9169" => 500, "9170" => 500, "9171" => 500, "9172" => 500, "9173" => 500, "9174" => 500, "9175" => 500, "9176" => 500, "9177" => 500, "9178" => 500, "9179" => 500, "9180" => 500, "9181" => 500, "9182" => 500, "9183" => 500, "9184" => 500, "9185" => 500, "9186" => 500, "9187" => 500, "9188" => 500, "9189" => 500, "9190" => 500, "9191" => 500, "9192" => 500, "9193" => 500, "9194" => 500, "9195" => 500, "9196" => 500, "9197" => 500, "9198" => 500, "9199" => 500, "9200" => 500, "9201" => 500, "9202" => 500, "9203" => 500, "9204" => 500, "9205" => 500, "9206" => 500, "9207" => 500, "9208" => 500, "9209" => 500, "9210" => 500, "9211" => 500, "9212" => 500, "9213" => 500, "9214" => 500, "9215" => 500, "9216" => 500, "9217" => 500, "9218" => 500, "9219" => 500, "9220" => 500, "9221" => 500, "9222" => 500, "9223" => 500, "9224" => 500, "9225" => 500, "9226" => 500, "9227" => 500, "9228" => 500, "9229" => 500, "9230" => 500, "9231" => 500, "9232" => 500, "9233" => 500, "9234" => 500, "9235" => 500, "9236" => 500, "9237" => 500, "9238" => 500, "9239" => 500, "9240" => 500, "9241" => 500, "9242" => 500, "9243" => 500, "9244" => 500, "9245" => 500, "9246" => 500, "9247" => 500, "9248" => 500, "9249" => 500, "9250" => 500, "9251" => 500, "9252" => 500, "9253" => 500, "9254" => 500, "9255" => 500, "9256" => 500, "9257" => 500, "9258" => 500, "9259" => 500, "9260" => 500, "9261" => 500, "9262" => 500, "9263" => 500, "9264" => 500, "9265" => 500, "9266" => 500, "9267" => 500, "9268" => 500, "9269" => 500, "9270" => 500, "9271" => 500, "9272" => 500, "9273" => 500, "9274" => 500, "9275" => 500, "9276" => 500, "9277" => 500, "9278" => 500, "9279" => 500, "9280" => 500, "9281" => 500, "9282" => 500, "9283" => 500, "9284" => 500, "9285" => 500, "9286" => 500, "9287" => 500, "9288" => 500, "9289" => 500, "9290" => 500, "9291" => 500, "9292" => 500, "9293" => 500, "9294" => 500, "9295" => 500, "9296" => 500, "9297" => 500, "9298" => 500, "9299" => 500, "9300" => 500, "9301" => 500, "9302" => 500, "9303" => 500, "9304" => 500, "9305" => 500, "9306" => 500, "9307" => 500, "9308" => 500, "9309" => 500, "9310" => 500, "9311" => 500, "9312" => 500, "9313" => 500, "9314" => 500, "9315" => 500, "9316" => 500, "9317" => 500, "9318" => 500, "9319" => 500, "9320" => 500, "9321" => 500, "9322" => 500, "9323" => 500, "9324" => 500, "9325" => 500, "9326" => 500, "9327" => 500, "9328" => 500, "9329" => 500, "9330" => 500, "9331" => 500, "9332" => 500, "9333" => 500, "9334" => 500, "9335" => 500, "9336" => 500, "9337" => 500, "9338" => 500, "9339" => 500, "9340" => 500, "9341" => 500, "9342" => 500, "9343" => 500, "9344" => 500, "9345" => 500, "9346" => 500, "9347" => 500, "9348" => 500, "9349" => 500, "9350" => 500, "9351" => 500, "9352" => 500, "9353" => 500, "12870" => 714, "12871" => 803, "12872" => 215, "12873" => 370, "12874" => 737, "12875" => 939, "12876" => 933, "12877" => 575, "12878" => 292, "12879" => 618, "12880" => 588, "12881" => 625, "12882" => 750, "12883" => 249, "12884" => 773, "12885" => 643, "12886" => 795, "12887" => 884, "12888" => 884, "12889" => 884, "12890" => 884, "12891" => 884, "12892" => 884, "12893" => 394, "12894" => 394, "12895" => 394, "12896" => 394, "12897" => 394, "12898" => 394, "12899" => 394, "12900" => 394, "12901" => 394, "12902" => 394, "12903" => 394, "12904" => 394, "12905" => 394, "12906" => 394, "12907" => 394, "12908" => 394, "12909" => 394, "12910" => 750, "12911" => 643, "12912" => 643, "12913" => 643, "12914" => 249, "12915" => 249, "12916" => 249, "12917" => 795, "12918" => 795, "12919" => 773, "12920" => 773, "12921" => 773, "12922" => 575, "12923" => 588, "12924" => 588, "12925" => 588, "12926" => 304, "12927" => 238, "12928" => 325, "12929" => 625, "12930" => 625, "12931" => 618, "12932" => 618, "12933" => 618, "12934" => 646, "12935" => 646, "12936" => 646, "12937" => 969, "12938" => 969, "12939" => 578, "12940" => 578, "12941" => 578, "12942" => 588, "12943" => 588, "12944" => 588, "12945" => 748, "12946" => 748, "12947" => 748, "12948" => 526, "12949" => 526, "12950" => 526, "12951" => 265, "12952" => 615, "12953" => 625, "12954" => 544, "12955" => 544, "12956" => 544, "12957" => 533, "12958" => 388, "12959" => 256, "12960" => 333, "12961" => 297, "12962" => 343, "12963" => 657, "12964" => 657, "12965" => 864, "12966" => 785, "12967" => 188, "12968" => 365, "12969" => 365, "12970" => 350, "12971" => 656, "12972" => 248, "12973" => 363, "12974" => 248, "12975" => 473, "12976" => 657, "12977" => 657, "12978" => 657, "12979" => 657, "12980" => 657, "12981" => 657, "12982" => 657, "12983" => 657, "12984" => 657, "12985" => 657, "12986" => 248, "12987" => 248, "12988" => 543, "12989" => 657, "12990" => 543, "12991" => 567, "12992" => 889, "12993" => 725, "12994" => 698, "12995" => 704, "12996" => 740, "12997" => 639, "12998" => 599, "12999" => 748, "13000" => 775, "13001" => 266, "13002" => 491, "13003" => 701, "13004" => 603, "13005" => 936, "13006" => 769, "13007" => 784, "13008" => 640, "13009" => 784, "13010" => 703, "13011" => 664, "13012" => 639, "13013" => 765, "13014" => 706, "13015" => 984, "13016" => 709, "13017" => 678, "13018" => 661, "13019" => 345, "13020" => 657, "13021" => 345, "13022" => 533, "13023" => 456, "13024" => 500, "13025" => 568, "13026" => 621, "13027" => 531, "13028" => 624, "13029" => 580, "13030" => 384, "13031" => 620, "13032" => 615, "13033" => 250, "13034" => 261, "13035" => 573, "13036" => 245, "13037" => 916, "13038" => 616, "13039" => 622, "13040" => 621, "13041" => 618, "13042" => 432, "13043" => 535, "13044" => 377, "13045" => 604, "13046" => 543, "13047" => 757, "13048" => 533, "13049" => 540, "13050" => 497, "13051" => 345, "13052" => 372, "13053" => 345, "13054" => 500, "13055" => 215, "13056" => 473, "13057" => 215, "13058" => 375, "13059" => 570, "13060" => 297, "13061" => 580, "13062" => 657, "13063" => 91, "13064" => 589, "13065" => 636, "13066" => 565, "13067" => 353, "13068" => 467, "13069" => 311, "13070" => 311, "13071" => 606, "13072" => 600, "13073" => 500, "13074" => 595, "13075" => 595, "13076" => 248, "13077" => 573, "13078" => 479, "13079" => 215, "13080" => 353, "13081" => 353, "13082" => 467, "13083" => 744, "13084" => 1256, "13085" => 567, "13086" => 500, "13087" => 500, "13088" => 500, "13089" => 500, "13090" => 500, "13091" => 500, "13092" => 500, "13093" => 500, "13094" => 500, "13095" => 500, "13096" => 500, "13098" => 1028, "13099" => 412, "13100" => 603, "13101" => 784, "13102" => 1020, "13103" => 412, "13104" => 932, "13105" => 250, "13106" => 245, "13107" => 621, "13108" => 1001, "13109" => 630, "13110" => 656, "13111" => 570, "13112" => 656, "13113" => 570, "13114" => 300, "13115" => 656, "13116" => 394, "13117" => 394, "13118" => 657, "13119" => 394, "13120" => 879, "13121" => 879, "13122" => 879, "13123" => 725, "13124" => 725, "13125" => 725, "13126" => 725, "13127" => 725, "13128" => 725, "13129" => 704, "13130" => 639, "13131" => 639, "13132" => 639, "13133" => 639, "13134" => 266, "13135" => 266, "13136" => 266, "13137" => 266, "13138" => 740, "13139" => 769, "13140" => 784, "13141" => 784, "13142" => 784, "13143" => 784, "13144" => 784, "13145" => 656, "13146" => 765, "13147" => 765, "13148" => 765, "13149" => 765, "13150" => 678, "13151" => 645, "13152" => 568, "13153" => 568, "13154" => 568, "13155" => 568, "13156" => 568, "13157" => 568, "13158" => 531, "13159" => 580, "13160" => 580, "13161" => 580, "13162" => 580, "13163" => 250, "13164" => 250, "13165" => 250, "13166" => 250, "13167" => 639, "13168" => 616, "13169" => 622, "13170" => 622, "13171" => 622, "13172" => 622, "13173" => 622, "13174" => 656, "13175" => 604, "13176" => 604, "13177" => 604, "13178" => 604, "13179" => 540, "13180" => 642, "13181" => 540, "13182" => 664, "13183" => 678, "13184" => 661, "13185" => 456, "13186" => 536, "13187" => 1019, "13188" => 497, "13189" => 657, "13190" => 700, "13191" => 815, "13192" => 215, "13193" => 370, "13194" => 689, "13195" => 910, "13196" => 905, "13197" => 568, "13198" => 250, "13199" => 604, "13200" => 580, "13201" => 622, "13202" => 725, "13203" => 266, "13204" => 765, "13205" => 639, "13206" => 784, "13207" => 879, "13208" => 879, "13209" => 879, "13210" => 879, "13211" => 879, "13212" => 879, "13213" => 394, "13214" => 394, "13215" => 394, "13216" => 394, "13217" => 394, "13218" => 394, "13219" => 394, "13220" => 394, "13221" => 394, "13222" => 394, "13223" => 394, "13224" => 394, "13225" => 394, "13226" => 394, "13227" => 394, "13228" => 394, "13229" => 394, "13230" => 725, "13231" => 639, "13232" => 639, "13233" => 639, "13234" => 266, "13235" => 266, "13236" => 266, "13237" => 784, "13238" => 784, "13239" => 765, "13240" => 765, "13241" => 765, "13242" => 568, "13243" => 580, "13244" => 580, "13245" => 580, "13246" => 250, "13247" => 250, "13248" => 250, "13249" => 622, "13250" => 622, "13251" => 604, "13252" => 604, "13253" => 604, "13254" => 250, "13255" => 250, "13256" => 250, "13257" => 250, "13258" => 250, "13259" => 250, "13260" => 250, "13261" => 250, "13262" => 250, "13263" => 250, "13264" => 250, "13265" => 250, "13266" => 250, "13267" => 250, "13268" => 250, "13269" => 250, "13270" => 250, "13271" => 250, "13272" => 250, "13273" => 250, "13274" => 333, "13275" => 333, "13276" => 333, "13277" => 333, "13278" => 333, "13279" => 333, "13280" => 333, "13281" => 333, "13282" => 333, "13283" => 333, "13284" => 333, "13285" => 333, "13286" => 333, "13287" => 333, "13288" => 333, "13289" => 333, "13290" => 333, "13291" => 333, "13292" => 333, "13293" => 333, "13294" => 333, "13295" => 500, "13296" => 500, "13297" => 500, "13298" => 500, "13299" => 500, "13300" => 500, "13301" => 500, "13302" => 500, "13303" => 500, "13304" => 500, "13305" => 500, "13306" => 500, "13307" => 500, "13308" => 500, "13309" => 500, "13310" => 500, "13311" => 500, "13312" => 500, "13313" => 500, "13314" => 500, "13315" => 500, "13316" => 500, "13317" => 500, "13318" => 500, "13319" => 500, "15976" => 792, "15977" => 846, "15978" => 844, "15979" => 880, "15980" => 874, "15981" => 899, "15982" => 999, "15983" => 959, "15984" => 975, "15985" => 901, "15986" => 960, "15987" => 809, "15988" => 846, "15989" => 897, "15990" => 958, "15991" => 884, "15992" => 942, "15993" => 886, "15994" => 939, "15995" => 926, "15996" => 941, "15997" => 973, "15998" => 980, "15999" => 956, "16000" => 949, "16001" => 954, "16002" => 956, "16003" => 938, "16004" => 923, "16005" => 967, "16006" => 986, "16007" => 938, "16008" => 971, "16009" => 930, "16010" => 960, "16011" => 944, "16012" => 953, "16013" => 940, "16014" => 943, "16015" => 939, "16016" => 959, "16017" => 963, "16018" => 985, "16019" => 823, "16020" => 862, "16021" => 926, "16022" => 889, "16023" => 892, "16024" => 959, "16025" => 981, "16026" => 948, "16027" => 919, "16028" => 934, "16029" => 952, "16030" => 902, "16031" => 950, "16032" => 967, "16033" => 984, "16034" => 918, "16035" => 940, "16036" => 971, "16037" => 925, "16038" => 929, "16039" => 933, "16040" => 784, "16041" => 821, "16042" => 856, "16043" => 945, "16044" => 965, "16045" => 970, "16046" => 957, "16047" => 924, "16048" => 949, "16049" => 938, "16050" => 948, "16051" => 889, "16052" => 952, "16053" => 888, "16054" => 940, "16055" => 903, "16056" => 963, "16057" => 950, "16058" => 975, "16059" => 955, "16060" => 940, "16061" => 955, "16062" => 871, "16063" => 938, "16064" => 946, "16065" => 964, "16066" => 962, "16067" => 932, "16068" => 928, "16069" => 861, "16070" => 892, "16071" => 972, "16072" => 995, "16073" => 926, "16074" => 981, "16075" => 918, "16076" => 855, "16077" => 919, "16078" => 863, "16079" => 928, "16080" => 882, "16081" => 940, "16082" => 833, "16083" => 877, "16084" => 876, "16085" => 929, "16086" => 946, "16087" => 966, "16088" => 940, "16089" => 978, "16090" => 933, "16091" => 939, "16092" => 914, "16093" => 947, "16094" => 913, "16095" => 952, "16096" => 934, "16097" => 939, "16098" => 888, "16099" => 931, "16100" => 900, "16101" => 944, "16102" => 917, "16103" => 963, "16104" => 898, "16105" => 956, "16106" => 941, "16107" => 953, "16108" => 914, "16109" => 918, "16110" => 855, "16111" => 901, "16112" => 950, "16113" => 928, "16114" => 927, "16115" => 935, "16116" => 945, "16117" => 908, "16118" => 862, "16119" => 917, "16120" => 953, "16121" => 877, "16122" => 871, "16123" => 882, "16124" => 909, "16125" => 933, "16126" => 970, "16127" => 983, "16128" => 901, "16129" => 958, "16130" => 931, "16131" => 779, "16132" => 830, "16133" => 847, "16134" => 947, "16135" => 974, "16136" => 983, "16137" => 895, "16138" => 925, "16139" => 919, "16140" => 895, "16141" => 925, "16142" => 879, "16143" => 937, "16144" => 831, "16145" => 870, "16146" => 883, "16147" => 938, "16148" => 935, "16149" => 964, "16150" => 933, "16151" => 900, "16152" => 923, "16153" => 869, "16154" => 921, "16155" => 931, "16156" => 895, "16157" => 927, "16158" => 851, "16159" => 949, "16160" => 893, "16161" => 841, "16162" => 977, "16163" => 970, "16164" => 961, "16165" => 959, "16166" => 960, "16167" => 971, "16168" => 958, "16169" => 989, "16170" => 878, "16171" => 825, "16172" => 857, "16173" => 881, "16174" => 864, "16175" => 829, "16176" => 876, "16177" => 852, "16178" => 732, "16179" => 883, "16180" => 878, "16181" => 866, "16182" => 884, "16183" => 899, "16184" => 871, "16185" => 841, "16186" => 871, "16187" => 944, "16188" => 973, "16189" => 956, "16190" => 967, "16191" => 883, "16192" => 865, "16469" => 656, "16470" => 656, "16471" => 656, "16472" => 656, "16473" => 656, "16474" => 1039, "16475" => 656, "16476" => 656, "16477" => 656, "16478" => 656, "16479" => 656, "16480" => 656, "16481" => 656, "16482" => 656, "16483" => 656, "16484" => 656, "16485" => 656, "16486" => 656, "16487" => 656, "16488" => 871, "16489" => 656, "16490" => 656, "16491" => 656, "16492" => 656, "16493" => 916, "16494" => 916, "16495" => 748, "16496" => 748, "16497" => 870, "16498" => 870, "16499" => 870, "16500" => 656, "16501" => 656, "16502" => 656, "16503" => 656, "16504" => 603, "16505" => 787, "16506" => 656, "16507" => 656, "16508" => 656, "16509" => 656, "16510" => 571, "16511" => 656, "16512" => 656, "16513" => 656, "16514" => 383, "16515" => 629, "16516" => 656, "16517" => 656, "16518" => 656, "16519" => 656, "16520" => 656, "16521" => 656, "16522" => 916, "16523" => 656, "16524" => 697, "16525" => 604, "16526" => 803, "16527" => 500, "16528" => 656, "16529" => 656, "16530" => 884, "16531" => 842, "16532" => 945, "16533" => 931, "16534" => 774, "16535" => 618, "16536" => 618, "16537" => 618, "16538" => 618, "16539" => 618, "16540" => 750, "16541" => 500, "16542" => 602, "16543" => 669, "16544" => 669, "16545" => 649, "16546" => 669, "16547" => 669, "16548" => 575, "16549" => 759, "16550" => 304, "16551" => 537, "16552" => 500, "16553" => 537, "16554" => 392, "16555" => 498, "16556" => 500, "16557" => 498, "16558" => 726, "16559" => 750, "16560" => 602, "16561" => 756, "16562" => 756, "16563" => 643, "16564" => 758, "16565" => 774, "16566" => 774, "16567" => 795, "16568" => 726, "16569" => 773, "16570" => 649, "16571" => 430, "16572" => 575, "16573" => 304, "16574" => 578, "16575" => 578, "16576" => 588, "16577" => 681, "16578" => 646, "16579" => 618, "16580" => 618, "16581" => 625, "16582" => 430, "16583" => 618, "16584" => 392, "16585" => 500, "16586" => 756, "16587" => 754, "16588" => 778, "16589" => 508, "16590" => 669, "16591" => 773, "16592" => 578, "16593" => 641, "16594" => 653, "16595" => 304, "16596" => 537, "16597" => 618, "16598" => 927, "16599" => 578, "16600" => 389, "16601" => 437, "16602" => 609, "16603" => 430, "16604" => 392, "16605" => 652, "16606" => 625, "16607" => 430, "16608" => 537, "16609" => 500, "16610" => 436, "16611" => 239, "16612" => 417, "16613" => 625, "16614" => 385, "16615" => 554, "16616" => 639, "16617" => 931, "16618" => 562, "16619" => 617, "16620" => 519, "16621" => 519, "16622" => 617, "16623" => 795, "16624" => 496, "16625" => 646, "16626" => 692, "16627" => 412, "16628" => 686, "16629" => 761, "16630" => 251, "16631" => 631, "16632" => 588, "16633" => 526, "16634" => 607, "16635" => 575, "16636" => 931, "16637" => 617, "16638" => 611, "16639" => 646, "16640" => 770, "16641" => 617, "16642" => 519, "16643" => 519, "16644" => 572, "16645" => 551, "16646" => 430, "16647" => 610, "16648" => 0, "16649" => 145, "16650" => 145, "16651" => 256, "16652" => 0, "16653" => 500, "16654" => 457, "16655" => 457, "16656" => 457, "16657" => 457, "16658" => 457, "16659" => 473, "16660" => 473, "16661" => 500, "16662" => 500, "16663" => 500, "16664" => 500, "16665" => 500, "16666" => 500, "16667" => 500, "16668" => 500, "16669" => 500, "16670" => 151, "16671" => 500, "16672" => 500, "16673" => 500, "16674" => 500, "16675" => 500, "16676" => 500, "16677" => 500, "16678" => 500, "16679" => 500, "16680" => 500, "16681" => 500, "16682" => 420, "16683" => 383, "16684" => 656, "16685" => 656, "16686" => 606, "16687" => 554, "16688" => 232, "16689" => 617, "16690" => 835, "16691" => 674, "16692" => 562, "16693" => 548, "16694" => 570, "16695" => 623, "16696" => 462, "16697" => 374, "16698" => 267, "16699" => 463, "16700" => 304, "16701" => 334, "16702" => 165, "16703" => 584, "16704" => 672, "16705" => 875, "16706" => 656, "16707" => 656, "16708" => 870, "16709" => 875, "16710" => 875, "16711" => 374, "16712" => 621, "16713" => 575, "16714" => 561, "16715" => 815, "16716" => 500, "16717" => 879, "16718" => 936, "16719" => 916, "16720" => 769, "16721" => 616, "16722" => 604, "16723" => 604, "16724" => 604, "16725" => 604, "16726" => 725, "16727" => 603, "16728" => 664, "16729" => 664, "16730" => 639, "16731" => 661, "16732" => 661, "16733" => 568, "16734" => 245, "16735" => 535, "16736" => 535, "16737" => 377, "16738" => 497, "16739" => 497, "16740" => 703, "16741" => 725, "16742" => 603, "16743" => 704, "16744" => 704, "16745" => 639, "16746" => 740, "16747" => 769, "16748" => 769, "16749" => 784, "16750" => 703, "16751" => 765, "16752" => 639, "16753" => 432, "16754" => 568, "16755" => 245, "16756" => 531, "16757" => 531, "16758" => 580, "16759" => 624, "16760" => 624, "16761" => 616, "16762" => 616, "16763" => 622, "16764" => 432, "16765" => 604, "16766" => 377, "16767" => 704, "16768" => 748, "16769" => 775, "16770" => 491, "16771" => 664, "16772" => 765, "16773" => 531, "16774" => 620, "16775" => 615, "16776" => 261, "16777" => 535, "16778" => 604);
+%goth_w6_v=("8720" => 333, "8721" => 339, "8722" => 406, "8723" => 719, "8724" => 712, "8725" => 935, "8726" => 860, "8727" => 234, "8728" => 406, "8729" => 406, "8730" => 382, "8731" => 685, "8732" => 270, "8733" => 412, "8734" => 270, "8735" => 520, "8736" => 712, "8737" => 712, "8738" => 712, "8739" => 712, "8740" => 712, "8741" => 712, "8742" => 712, "8743" => 712, "8744" => 712, "8745" => 712, "8746" => 270, "8747" => 270, "8748" => 540, "8749" => 685, "8750" => 540, "8751" => 617, "8752" => 937, "8753" => 808, "8754" => 754, "8755" => 793, "8756" => 806, "8757" => 685, "8758" => 644, "8759" => 790, "8760" => 826, "8761" => 293, "8762" => 591, "8763" => 780, "8764" => 643, "8765" => 987, "8766" => 821, "8767" => 838, "8768" => 711, "8769" => 838, "8770" => 773, "8771" => 715, "8772" => 709, "8773" => 829, "8774" => 784, "8775" => 1058, "8776" => 811, "8777" => 758, "8778" => 707, "8779" => 406, "8780" => 767, "8781" => 406, "8782" => 588, "8783" => 504, "8784" => 500, "8785" => 634, "8786" => 706, "8787" => 625, "8788" => 707, "8789" => 637, "8790" => 477, "8791" => 692, "8792" => 673, "8793" => 271, "8794" => 309, "8795" => 652, "8796" => 271, "8797" => 1010, "8798" => 673, "8799" => 670, "8800" => 708, "8801" => 706, "8802" => 492, "8803" => 593, "8804" => 434, "8805" => 673, "8806" => 621, "8807" => 850, "8808" => 617, "8809" => 628, "8810" => 541, "8811" => 411, "8812" => 415, "8813" => 411, "8814" => 609, "8815" => 270, "8816" => 520, "8817" => 270, "8818" => 424, "8819" => 609, "8820" => 339, "8821" => 652, "8822" => 725, "8823" => 141, "8824" => 663, "8825" => 708, "8826" => 597, "8827" => 472, "8828" => 571, "8829" => 361, "8830" => 361, "8831" => 716, "8832" => 715, "8833" => 500, "8834" => 640, "8835" => 640, "8836" => 270, "8837" => 628, "8838" => 532, "8839" => 270, "8840" => 472, "8841" => 472, "8842" => 571, "8843" => 810, "8844" => 1366, "8845" => 617, "8846" => 500, "8847" => 500, "8848" => 500, "8849" => 500, "8850" => 500, "8851" => 500, "8852" => 500, "8853" => 793, "8854" => 500, "8855" => 804, "8856" => 500, "8858" => 1153, "8859" => 440, "8860" => 686, "8861" => 838, "8862" => 1117, "8863" => 465, "8864" => 1039, "8865" => 271, "8866" => 271, "8867" => 670, "8868" => 1081, "8869" => 660, "8870" => 685, "8871" => 571, "8872" => 685, "8873" => 571, "8874" => 339, "8875" => 685, "8876" => 423, "8877" => 423, "8878" => 675, "8879" => 423, "8880" => 897, "8881" => 895, "8882" => 929, "8883" => 808, "8884" => 808, "8885" => 808, "8886" => 808, "8887" => 808, "8888" => 808, "8889" => 793, "8890" => 685, "8891" => 685, "8892" => 685, "8893" => 685, "8894" => 293, "8895" => 293, "8896" => 293, "8897" => 293, "8898" => 813, "8899" => 821, "8900" => 838, "8901" => 838, "8902" => 838, "8903" => 838, "8904" => 838, "8905" => 685, "8906" => 829, "8907" => 829, "8908" => 829, "8909" => 829, "8910" => 758, "8911" => 698, "8912" => 634, "8913" => 634, "8914" => 634, "8915" => 634, "8916" => 634, "8917" => 634, "8918" => 625, "8919" => 637, "8920" => 637, "8921" => 637, "8922" => 637, "8923" => 335, "8924" => 333, "8925" => 349, "8926" => 336, "8927" => 699, "8928" => 673, "8929" => 670, "8930" => 670, "8931" => 670, "8932" => 670, "8933" => 670, "8934" => 685, "8935" => 673, "8936" => 673, "8937" => 673, "8938" => 673, "8939" => 628, "8940" => 711, "8941" => 628, "8942" => 715, "8943" => 758, "8944" => 707, "8945" => 500, "8946" => 593, "8947" => 1070, "8948" => 541, "8949" => 712, "8950" => 500, "8951" => 500, "8952" => 500, "8953" => 500, "8954" => 500, "8955" => 500, "8956" => 500, "8957" => 500, "8958" => 500, "8959" => 500, "8960" => 500, "8961" => 500, "8962" => 500, "8963" => 500, "8964" => 500, "8965" => 500, "8966" => 500, "8967" => 500, "8968" => 500, "8969" => 500, "8970" => 500, "8971" => 500, "8972" => 500, "8973" => 500, "8974" => 500, "8975" => 500, "8976" => 500, "8977" => 500, "8978" => 500, "8979" => 500, "8980" => 500, "8981" => 500, "8982" => 500, "8983" => 500, "8984" => 500, "8985" => 500, "8986" => 500, "8987" => 500, "8988" => 500, "8989" => 500, "8990" => 500, "8991" => 500, "8992" => 500, "8993" => 500, "8994" => 500, "8995" => 500, "8996" => 500, "8997" => 500, "8998" => 500, "8999" => 500, "9000" => 500, "9001" => 500, "9002" => 500, "9003" => 500, "9004" => 500, "9005" => 500, "9006" => 500, "9007" => 500, "9008" => 500, "9009" => 500, "9010" => 500, "9011" => 500, "9012" => 500, "9013" => 500, "9014" => 500, "9015" => 500, "9016" => 500, "9017" => 500, "9018" => 500, "9019" => 500, "9020" => 500, "9021" => 500, "9022" => 500, "9023" => 500, "9024" => 500, "9025" => 500, "9026" => 500, "9027" => 500, "9028" => 500, "9029" => 500, "9030" => 500, "9031" => 500, "9032" => 500, "9033" => 500, "9034" => 500, "9035" => 500, "9036" => 500, "9037" => 500, "9038" => 500, "9039" => 500, "9040" => 500, "9041" => 500, "9042" => 500, "9043" => 500, "9044" => 500, "9045" => 500, "9046" => 500, "9047" => 500, "9048" => 500, "9049" => 500, "9050" => 500, "9051" => 500, "9052" => 500, "9053" => 500, "9054" => 500, "9055" => 500, "9056" => 500, "9057" => 500, "9058" => 500, "9059" => 500, "9060" => 500, "9061" => 500, "9062" => 500, "9063" => 500, "9064" => 500, "9065" => 500, "9066" => 500, "9067" => 500, "9068" => 500, "9069" => 500, "9070" => 500, "9071" => 500, "9072" => 500, "9073" => 500, "9074" => 500, "9075" => 500, "9076" => 500, "9077" => 500, "9078" => 500, "9079" => 500, "9080" => 500, "9081" => 500, "9082" => 500, "9083" => 500, "9084" => 500, "9085" => 500, "9086" => 500, "9087" => 500, "9088" => 500, "9089" => 500, "9090" => 500, "9091" => 500, "9092" => 500, "9093" => 500, "9094" => 500, "9095" => 500, "9096" => 500, "9097" => 500, "9098" => 500, "9099" => 500, "9100" => 500, "9101" => 500, "9102" => 500, "9103" => 500, "9104" => 500, "9105" => 500, "9106" => 500, "9107" => 500, "9108" => 500, "9109" => 500, "9110" => 500, "9111" => 500, "9112" => 500, "9113" => 500, "9114" => 500, "9115" => 500, "9116" => 500, "9117" => 500, "9118" => 500, "9119" => 500, "9120" => 500, "9121" => 500, "9122" => 500, "9123" => 500, "9124" => 500, "9125" => 500, "9126" => 500, "9127" => 500, "9128" => 500, "9129" => 500, "9130" => 500, "9131" => 500, "9132" => 500, "9133" => 500, "9134" => 500, "9135" => 500, "9136" => 500, "9137" => 500, "9138" => 500, "9139" => 500, "9140" => 500, "9141" => 500, "9142" => 500, "9143" => 500, "9144" => 500, "9145" => 500, "9146" => 500, "9147" => 500, "9148" => 500, "9149" => 500, "9150" => 500, "9151" => 500, "9152" => 500, "9153" => 500, "9154" => 500, "9155" => 500, "9156" => 500, "9157" => 500, "9158" => 500, "9159" => 500, "9160" => 500, "9161" => 500, "9162" => 500, "9163" => 500, "9164" => 500, "9165" => 500, "9166" => 500, "9167" => 500, "9168" => 500, "9169" => 500, "9170" => 500, "9171" => 500, "9172" => 500, "9173" => 500, "9174" => 500, "9175" => 500, "9176" => 500, "9177" => 500, "9178" => 500, "9179" => 500, "9180" => 500, "9181" => 500, "9182" => 500, "9183" => 500, "9184" => 500, "9185" => 500, "9186" => 500, "9187" => 500, "9188" => 500, "9189" => 500, "9190" => 500, "9191" => 500, "9192" => 500, "9193" => 500, "9194" => 500, "9195" => 500, "9196" => 500, "9197" => 500, "9198" => 500, "9199" => 500, "9200" => 500, "9201" => 500, "9202" => 500, "9203" => 500, "9204" => 500, "9205" => 500, "9206" => 500, "9207" => 500, "9208" => 500, "9209" => 500, "9210" => 500, "9211" => 500, "9212" => 500, "9213" => 500, "9214" => 500, "9215" => 500, "9216" => 500, "9217" => 500, "9218" => 500, "9219" => 500, "9220" => 500, "9221" => 500, "9222" => 500, "9223" => 500, "9224" => 500, "9225" => 500, "9226" => 500, "9227" => 500, "9228" => 500, "9229" => 500, "9230" => 500, "9231" => 500, "9232" => 500, "9233" => 500, "9234" => 500, "9235" => 500, "9236" => 500, "9237" => 500, "9238" => 500, "9239" => 500, "9240" => 500, "9241" => 500, "9242" => 500, "9243" => 500, "9244" => 500, "9245" => 500, "9246" => 500, "9247" => 500, "9248" => 500, "9249" => 500, "9250" => 500, "9251" => 500, "9252" => 500, "9253" => 500, "9254" => 500, "9255" => 500, "9256" => 500, "9257" => 500, "9258" => 500, "9259" => 500, "9260" => 500, "9261" => 500, "9262" => 500, "9263" => 500, "9264" => 500, "9265" => 500, "9266" => 500, "9267" => 500, "9268" => 500, "9269" => 500, "9270" => 500, "9271" => 500, "9272" => 500, "9273" => 500, "9274" => 500, "9275" => 500, "9276" => 500, "9277" => 500, "9278" => 500, "9279" => 500, "9280" => 500, "9281" => 500, "9282" => 500, "9283" => 500, "9284" => 500, "9285" => 500, "9286" => 500, "9287" => 500, "9288" => 500, "9289" => 500, "9290" => 500, "9291" => 500, "9292" => 500, "9293" => 500, "9294" => 500, "9295" => 500, "9296" => 500, "9297" => 500, "9298" => 500, "9299" => 500, "9300" => 500, "9301" => 500, "9302" => 500, "9303" => 500, "9304" => 500, "9305" => 500, "9306" => 500, "9307" => 500, "9308" => 500, "9309" => 500, "9310" => 500, "9311" => 500, "9312" => 500, "9313" => 500, "9314" => 500, "9315" => 500, "9316" => 500, "9317" => 500, "9318" => 500, "9319" => 500, "9320" => 500, "9321" => 500, "9322" => 500, "9323" => 500, "9324" => 500, "9325" => 500, "9326" => 500, "9327" => 500, "9328" => 500, "9329" => 500, "9330" => 500, "9331" => 500, "9332" => 500, "9333" => 500, "9334" => 500, "9335" => 500, "9336" => 500, "9337" => 500, "9338" => 500, "9339" => 500, "9340" => 500, "9341" => 500, "9342" => 500, "9343" => 500, "9344" => 500, "9345" => 500, "9346" => 500, "9347" => 500, "9348" => 500, "9349" => 500, "9350" => 500, "9351" => 500, "9352" => 500, "9353" => 500, "12870" => 772, "12871" => 837, "12872" => 246, "12873" => 432, "12874" => 840, "12875" => 1073, "12876" => 1072, "12877" => 634, "12878" => 313, "12879" => 673, "12880" => 637, "12881" => 670, "12882" => 808, "12883" => 293, "12884" => 829, "12885" => 685, "12886" => 838, "12887" => 929, "12888" => 949, "12889" => 949, "12890" => 929, "12891" => 929, "12892" => 949, "12893" => 423, "12894" => 423, "12895" => 423, "12896" => 423, "12897" => 423, "12898" => 423, "12899" => 423, "12900" => 423, "12901" => 423, "12902" => 423, "12903" => 423, "12904" => 423, "12905" => 423, "12906" => 423, "12907" => 423, "12908" => 423, "12909" => 423, "12910" => 808, "12911" => 685, "12912" => 685, "12913" => 685, "12914" => 293, "12915" => 293, "12916" => 293, "12917" => 838, "12918" => 838, "12919" => 829, "12920" => 829, "12921" => 829, "12922" => 634, "12923" => 637, "12924" => 637, "12925" => 637, "12926" => 349, "12927" => 271, "12928" => 371, "12929" => 670, "12930" => 670, "12931" => 673, "12932" => 673, "12933" => 673, "12934" => 713, "12935" => 713, "12936" => 713, "12937" => 1039, "12938" => 1039, "12939" => 625, "12940" => 625, "12941" => 625, "12942" => 637, "12943" => 637, "12944" => 637, "12945" => 832, "12946" => 832, "12947" => 832, "12948" => 584, "12949" => 584, "12950" => 584, "12951" => 309, "12952" => 670, "12953" => 670, "12954" => 621, "12955" => 621, "12956" => 621, "12957" => 587, "12958" => 464, "12959" => 234, "12960" => 333, "12961" => 339, "12962" => 406, "12963" => 713, "12964" => 712, "12965" => 935, "12966" => 847, "12967" => 220, "12968" => 406, "12969" => 406, "12970" => 382, "12971" => 685, "12972" => 270, "12973" => 411, "12974" => 270, "12975" => 520, "12976" => 713, "12977" => 712, "12978" => 712, "12979" => 713, "12980" => 712, "12981" => 712, "12982" => 712, "12983" => 712, "12984" => 712, "12985" => 712, "12986" => 270, "12987" => 270, "12988" => 577, "12989" => 685, "12990" => 577, "12991" => 617, "12992" => 937, "12993" => 796, "12994" => 748, "12995" => 763, "12996" => 798, "12997" => 682, "12998" => 642, "12999" => 782, "13000" => 818, "13001" => 307, "13002" => 590, "13003" => 749, "13004" => 639, "13005" => 973, "13006" => 813, "13007" => 827, "13008" => 687, "13009" => 828, "13010" => 763, "13011" => 710, "13012" => 694, "13013" => 820, "13014" => 773, "13015" => 1031, "13016" => 799, "13017" => 748, "13018" => 700, "13019" => 406, "13020" => 767, "13021" => 406, "13022" => 588, "13023" => 580, "13024" => 500, "13025" => 644, "13026" => 687, "13027" => 597, "13028" => 690, "13029" => 654, "13030" => 418, "13031" => 673, "13032" => 669, "13033" => 285, "13034" => 296, "13035" => 625, "13036" => 285, "13037" => 992, "13038" => 669, "13039" => 656, "13040" => 690, "13041" => 687, "13042" => 461, "13043" => 566, "13044" => 424, "13045" => 652, "13046" => 616, "13047" => 836, "13048" => 613, "13049" => 624, "13050" => 549, "13051" => 406, "13052" => 415, "13053" => 406, "13054" => 500, "13055" => 270, "13056" => 520, "13057" => 270, "13058" => 424, "13059" => 685, "13060" => 339, "13061" => 712, "13062" => 725, "13063" => 95, "13064" => 712, "13065" => 708, "13066" => 597, "13067" => 468, "13068" => 571, "13069" => 361, "13070" => 361, "13071" => 689, "13072" => 688, "13073" => 500, "13074" => 640, "13075" => 640, "13076" => 270, "13077" => 628, "13078" => 520, "13079" => 270, "13080" => 468, "13081" => 468, "13082" => 571, "13083" => 810, "13084" => 1352, "13085" => 617, "13086" => 500, "13087" => 500, "13088" => 500, "13089" => 500, "13090" => 500, "13091" => 500, "13092" => 500, "13093" => 500, "13094" => 500, "13095" => 500, "13096" => 500, "13098" => 1128, "13099" => 465, "13100" => 639, "13101" => 828, "13102" => 1096, "13103" => 465, "13104" => 1043, "13105" => 285, "13106" => 358, "13107" => 666, "13108" => 1080, "13109" => 684, "13110" => 685, "13111" => 571, "13112" => 685, "13113" => 571, "13114" => 339, "13115" => 685, "13116" => 430, "13117" => 430, "13118" => 685, "13119" => 430, "13120" => 955, "13121" => 955, "13122" => 955, "13123" => 796, "13124" => 796, "13125" => 796, "13126" => 796, "13127" => 796, "13128" => 796, "13129" => 763, "13130" => 682, "13131" => 682, "13132" => 682, "13133" => 682, "13134" => 307, "13135" => 307, "13136" => 307, "13137" => 307, "13138" => 798, "13139" => 813, "13140" => 827, "13141" => 827, "13142" => 827, "13143" => 827, "13144" => 827, "13145" => 685, "13146" => 820, "13147" => 820, "13148" => 820, "13149" => 820, "13150" => 748, "13151" => 694, "13152" => 644, "13153" => 644, "13154" => 644, "13155" => 644, "13156" => 644, "13157" => 644, "13158" => 597, "13159" => 654, "13160" => 654, "13161" => 654, "13162" => 654, "13163" => 286, "13164" => 285, "13165" => 285, "13166" => 285, "13167" => 695, "13168" => 669, "13169" => 656, "13170" => 656, "13171" => 656, "13172" => 656, "13173" => 656, "13174" => 685, "13175" => 652, "13176" => 652, "13177" => 652, "13178" => 652, "13179" => 624, "13180" => 703, "13181" => 624, "13182" => 710, "13183" => 748, "13184" => 700, "13185" => 580, "13186" => 566, "13187" => 1039, "13188" => 549, "13189" => 712, "13190" => 771, "13191" => 857, "13192" => 246, "13193" => 432, "13194" => 783, "13195" => 1054, "13196" => 1054, "13197" => 644, "13198" => 285, "13199" => 652, "13200" => 654, "13201" => 656, "13202" => 796, "13203" => 307, "13204" => 820, "13205" => 682, "13206" => 827, "13207" => 955, "13208" => 955, "13209" => 955, "13210" => 955, "13211" => 955, "13212" => 955, "13213" => 430, "13214" => 430, "13215" => 430, "13216" => 430, "13217" => 430, "13218" => 430, "13219" => 430, "13220" => 430, "13221" => 430, "13222" => 430, "13223" => 430, "13224" => 430, "13225" => 430, "13226" => 430, "13227" => 430, "13228" => 430, "13229" => 430, "13230" => 796, "13231" => 682, "13232" => 682, "13233" => 682, "13234" => 307, "13235" => 307, "13236" => 307, "13237" => 827, "13238" => 827, "13239" => 820, "13240" => 820, "13241" => 820, "13242" => 644, "13243" => 654, "13244" => 654, "13245" => 654, "13246" => 285, "13247" => 285, "13248" => 285, "13249" => 656, "13250" => 656, "13251" => 652, "13252" => 652, "13253" => 652, "13254" => 250, "13255" => 250, "13256" => 250, "13257" => 250, "13258" => 250, "13259" => 250, "13260" => 250, "13261" => 250, "13262" => 250, "13263" => 250, "13264" => 250, "13265" => 250, "13266" => 250, "13267" => 250, "13268" => 250, "13269" => 250, "13270" => 250, "13271" => 250, "13272" => 250, "13273" => 250, "13274" => 333, "13275" => 333, "13276" => 333, "13277" => 333, "13278" => 333, "13279" => 333, "13280" => 333, "13281" => 333, "13282" => 333, "13283" => 333, "13284" => 333, "13285" => 333, "13286" => 333, "13287" => 333, "13288" => 333, "13289" => 333, "13290" => 333, "13291" => 333, "13292" => 333, "13293" => 333, "13294" => 333, "13295" => 500, "13296" => 500, "13297" => 500, "13298" => 500, "13299" => 500, "13300" => 500, "13301" => 500, "13302" => 500, "13303" => 500, "13304" => 500, "13305" => 500, "13306" => 500, "13307" => 500, "13308" => 500, "13309" => 500, "13310" => 500, "13311" => 500, "13312" => 500, "13313" => 500, "13314" => 500, "13315" => 500, "13316" => 500, "13317" => 500, "13318" => 500, "13319" => 500, "15976" => 827, "15977" => 862, "15978" => 869, "15979" => 892, "15980" => 890, "15981" => 914, "15982" => 999, "15983" => 975, "15984" => 982, "15985" => 918, "15986" => 977, "15987" => 840, "15988" => 880, "15989" => 920, "15990" => 980, "15991" => 915, "15992" => 970, "15993" => 906, "15994" => 967, "15995" => 947, "15996" => 967, "15997" => 988, "15998" => 996, "15999" => 977, "16000" => 970, "16001" => 979, "16002" => 976, "16003" => 967, "16004" => 960, "16005" => 985, "16006" => 997, "16007" => 953, "16008" => 986, "16009" => 955, "16010" => 984, "16011" => 970, "16012" => 979, "16013" => 965, "16014" => 965, "16015" => 959, "16016" => 981, "16017" => 981, "16018" => 997, "16019" => 847, "16020" => 887, "16021" => 944, "16022" => 919, "16023" => 919, "16024" => 982, "16025" => 996, "16026" => 965, "16027" => 942, "16028" => 957, "16029" => 968, "16030" => 928, "16031" => 975, "16032" => 982, "16033" => 997, "16034" => 940, "16035" => 961, "16036" => 979, "16037" => 950, "16038" => 954, "16039" => 953, "16040" => 820, "16041" => 852, "16042" => 884, "16043" => 971, "16044" => 989, "16045" => 990, "16046" => 974, "16047" => 948, "16048" => 971, "16049" => 958, "16050" => 968, "16051" => 910, "16052" => 970, "16053" => 908, "16054" => 963, "16055" => 928, "16056" => 982, "16057" => 974, "16058" => 988, "16059" => 977, "16060" => 959, "16061" => 979, "16062" => 893, "16063" => 954, "16064" => 968, "16065" => 986, "16066" => 983, "16067" => 954, "16068" => 950, "16069" => 880, "16070" => 913, "16071" => 984, "16072" => 999, "16073" => 951, "16074" => 987, "16075" => 952, "16076" => 876, "16077" => 944, "16078" => 888, "16079" => 948, "16080" => 903, "16081" => 959, "16082" => 865, "16083" => 906, "16084" => 899, "16085" => 951, "16086" => 968, "16087" => 979, "16088" => 960, "16089" => 987, "16090" => 953, "16091" => 969, "16092" => 935, "16093" => 959, "16094" => 940, "16095" => 978, "16096" => 953, "16097" => 958, "16098" => 911, "16099" => 939, "16100" => 930, "16101" => 968, "16102" => 943, "16103" => 978, "16104" => 921, "16105" => 963, "16106" => 960, "16107" => 974, "16108" => 939, "16109" => 940, "16110" => 877, "16111" => 926, "16112" => 964, "16113" => 950, "16114" => 951, "16115" => 951, "16116" => 968, "16117" => 937, "16118" => 893, "16119" => 943, "16120" => 973, "16121" => 902, "16122" => 900, "16123" => 907, "16124" => 923, "16125" => 951, "16126" => 983, "16127" => 992, "16128" => 929, "16129" => 974, "16130" => 951, "16131" => 815, "16132" => 850, "16133" => 885, "16134" => 971, "16135" => 990, "16136" => 998, "16137" => 919, "16138" => 951, "16139" => 942, "16140" => 918, "16141" => 946, "16142" => 894, "16143" => 953, "16144" => 862, "16145" => 901, "16146" => 911, "16147" => 962, "16148" => 964, "16149" => 984, "16150" => 958, "16151" => 918, "16152" => 947, "16153" => 891, "16154" => 943, "16155" => 959, "16156" => 925, "16157" => 949, "16158" => 878, "16159" => 969, "16160" => 911, "16161" => 866, "16162" => 986, "16163" => 991, "16164" => 974, "16165" => 969, "16166" => 982, "16167" => 981, "16168" => 970, "16169" => 999, "16170" => 894, "16171" => 846, "16172" => 880, "16173" => 903, "16174" => 894, "16175" => 856, "16176" => 900, "16177" => 875, "16178" => 765, "16179" => 904, "16180" => 890, "16181" => 890, "16182" => 909, "16183" => 923, "16184" => 897, "16185" => 866, "16186" => 898, "16187" => 978, "16188" => 984, "16189" => 980, "16190" => 982, "16191" => 913, "16192" => 895, "16469" => 685, "16470" => 685, "16471" => 685, "16472" => 685, "16473" => 685, "16474" => 1114, "16475" => 685, "16476" => 685, "16477" => 685, "16478" => 685, "16479" => 685, "16480" => 685, "16481" => 685, "16482" => 685, "16483" => 685, "16484" => 685, "16485" => 685, "16486" => 685, "16487" => 685, "16488" => 923, "16489" => 685, "16490" => 685, "16491" => 685, "16492" => 685, "16493" => 975, "16494" => 975, "16495" => 792, "16496" => 792, "16497" => 909, "16498" => 909, "16499" => 909, "16500" => 685, "16501" => 685, "16502" => 685, "16503" => 685, "16504" => 648, "16505" => 826, "16506" => 685, "16507" => 685, "16508" => 685, "16509" => 685, "16510" => 571, "16511" => 686, "16512" => 686, "16513" => 685, "16514" => 383, "16515" => 629, "16516" => 685, "16517" => 685, "16518" => 685, "16519" => 685, "16520" => 685, "16521" => 685, "16522" => 975, "16523" => 685, "16524" => 738, "16525" => 646, "16526" => 837, "16527" => 500, "16528" => 685, "16529" => 685, "16530" => 929, "16531" => 878, "16532" => 987, "16533" => 1010, "16534" => 821, "16535" => 673, "16536" => 673, "16537" => 673, "16538" => 673, "16539" => 673, "16540" => 808, "16541" => 500, "16542" => 643, "16543" => 715, "16544" => 715, "16545" => 709, "16546" => 707, "16547" => 707, "16548" => 634, "16549" => 804, "16550" => 349, "16551" => 593, "16552" => 500, "16553" => 593, "16554" => 434, "16555" => 541, "16556" => 500, "16557" => 541, "16558" => 773, "16559" => 808, "16560" => 643, "16561" => 793, "16562" => 793, "16563" => 685, "16564" => 806, "16565" => 821, "16566" => 821, "16567" => 838, "16568" => 773, "16569" => 829, "16570" => 709, "16571" => 492, "16572" => 634, "16573" => 333, "16574" => 625, "16575" => 625, "16576" => 637, "16577" => 749, "16578" => 719, "16579" => 673, "16580" => 673, "16581" => 670, "16582" => 492, "16583" => 673, "16584" => 434, "16585" => 500, "16586" => 793, "16587" => 790, "16588" => 826, "16589" => 591, "16590" => 715, "16591" => 829, "16592" => 625, "16593" => 692, "16594" => 711, "16595" => 349, "16596" => 593, "16597" => 673, "16598" => 1007, "16599" => 615, "16600" => 472, "16601" => 501, "16602" => 693, "16603" => 492, "16604" => 434, "16605" => 707, "16606" => 673, "16607" => 492, "16608" => 593, "16609" => 545, "16610" => 492, "16611" => 271, "16612" => 477, "16613" => 673, "16614" => 486, "16615" => 628, "16616" => 690, "16617" => 1010, "16618" => 614, "16619" => 687, "16620" => 593, "16621" => 593, "16622" => 673, "16623" => 838, "16624" => 564, "16625" => 705, "16626" => 774, "16627" => 468, "16628" => 759, "16629" => 790, "16630" => 298, "16631" => 700, "16632" => 637, "16633" => 584, "16634" => 662, "16635" => 634, "16636" => 1010, "16637" => 674, "16638" => 648, "16639" => 713, "16640" => 850, "16641" => 673, "16642" => 593, "16643" => 593, "16644" => 616, "16645" => 620, "16646" => 492, "16647" => 670, "16648" => 0, "16649" => 182, "16650" => 182, "16651" => 234, "16652" => 0, "16653" => 500, "16654" => 511, "16655" => 511, "16656" => 511, "16657" => 511, "16658" => 511, "16659" => 538, "16660" => 538, "16661" => 500, "16662" => 500, "16663" => 500, "16664" => 500, "16665" => 500, "16666" => 500, "16667" => 500, "16668" => 500, "16669" => 500, "16670" => 184, "16671" => 500, "16672" => 500, "16673" => 500, "16674" => 500, "16675" => 500, "16676" => 500, "16677" => 500, "16678" => 500, "16679" => 500, "16680" => 500, "16681" => 500, "16682" => 437, "16683" => 383, "16684" => 685, "16685" => 685, "16686" => 662, "16687" => 628, "16688" => 265, "16689" => 658, "16690" => 895, "16691" => 734, "16692" => 614, "16693" => 615, "16694" => 612, "16695" => 673, "16696" => 518, "16697" => 388, "16698" => 303, "16699" => 513, "16700" => 349, "16701" => 383, "16702" => 172, "16703" => 646, "16704" => 707, "16705" => 875, "16706" => 685, "16707" => 685, "16708" => 909, "16709" => 911, "16710" => 911, "16711" => 388, "16712" => 663, "16713" => 654, "16714" => 631, "16715" => 857, "16716" => 500, "16717" => 955, "16718" => 973, "16719" => 992, "16720" => 813, "16721" => 669, "16722" => 652, "16723" => 652, "16724" => 652, "16725" => 652, "16726" => 796, "16727" => 639, "16728" => 710, "16729" => 710, "16730" => 694, "16731" => 700, "16732" => 700, "16733" => 644, "16734" => 285, "16735" => 566, "16736" => 566, "16737" => 424, "16738" => 549, "16739" => 549, "16740" => 763, "16741" => 796, "16742" => 639, "16743" => 763, "16744" => 763, "16745" => 682, "16746" => 798, "16747" => 813, "16748" => 813, "16749" => 827, "16750" => 763, "16751" => 820, "16752" => 694, "16753" => 461, "16754" => 644, "16755" => 285, "16756" => 597, "16757" => 597, "16758" => 654, "16759" => 690, "16760" => 690, "16761" => 669, "16762" => 669, "16763" => 656, "16764" => 461, "16765" => 652, "16766" => 424, "16767" => 763, "16768" => 782, "16769" => 818, "16770" => 590, "16771" => 710, "16772" => 820, "16773" => 597, "16774" => 673, "16775" => 669, "16776" => 296, "16777" => 566, "16778" => 652);
+%maru_w4_v=("8720" => 333, "8721" => 302, "8722" => 374, "8723" => 644, "8724" => 639, "8725" => 889, "8726" => 771, "8727" => 290, "8728" => 366, "8729" => 366, "8730" => 403, "8731" => 669, "8732" => 301, "8733" => 444, "8734" => 301, "8735" => 474, "8736" => 652, "8737" => 652, "8738" => 652, "8739" => 652, "8740" => 652, "8741" => 652, "8742" => 652, "8743" => 652, "8744" => 652, "8745" => 652, "8746" => 306, "8747" => 306, "8748" => 545, "8749" => 669, "8750" => 545, "8751" => 579, "8752" => 908, "8753" => 760, "8754" => 726, "8755" => 742, "8756" => 771, "8757" => 647, "8758" => 653, "8759" => 765, "8760" => 793, "8761" => 270, "8762" => 523, "8763" => 692, "8764" => 630, "8765" => 954, "8766" => 779, "8767" => 805, "8768" => 699, "8769" => 803, "8770" => 720, "8771" => 671, "8772" => 676, "8773" => 774, "8774" => 726, "8775" => 1033, "8776" => 720, "8777" => 708, "8778" => 681, "8779" => 381, "8780" => 670, "8781" => 381, "8782" => 569, "8783" => 500, "8784" => 500, "8785" => 573, "8786" => 624, "8787" => 554, "8788" => 625, "8789" => 574, "8790" => 400, "8791" => 618, "8792" => 601, "8793" => 234, "8794" => 281, "8795" => 536, "8796" => 233, "8797" => 877, "8798" => 600, "8799" => 603, "8800" => 624, "8801" => 624, "8802" => 432, "8803" => 535, "8804" => 403, "8805" => 597, "8806" => 550, "8807" => 807, "8808" => 525, "8809" => 551, "8810" => 516, "8811" => 396, "8812" => 372, "8813" => 397, "8814" => 649, "8815" => 296, "8816" => 474, "8817" => 296, "8818" => 372, "8819" => 649, "8820" => 302, "8821" => 554, "8822" => 646, "8823" => 128, "8824" => 539, "8825" => 610, "8826" => 574, "8827" => 430, "8828" => 482, "8829" => 309, "8830" => 309, "8831" => 634, "8832" => 634, "8833" => 500, "8834" => 594, "8835" => 594, "8836" => 301, "8837" => 614, "8838" => 494, "8839" => 301, "8840" => 430, "8841" => 430, "8842" => 482, "8843" => 904, "8844" => 1294, "8845" => 579, "8846" => 500, "8847" => 500, "8848" => 500, "8849" => 500, "8850" => 500, "8851" => 500, "8852" => 500, "8853" => 742, "8854" => 500, "8855" => 742, "8856" => 500, "8858" => 1080, "8859" => 415, "8860" => 660, "8861" => 805, "8862" => 1081, "8863" => 437, "8864" => 934, "8865" => 234, "8866" => 320, "8867" => 603, "8868" => 990, "8869" => 633, "8870" => 669, "8871" => 570, "8872" => 669, "8873" => 571, "8874" => 277, "8875" => 669, "8876" => 403, "8877" => 403, "8878" => 603, "8879" => 403, "8880" => 829, "8881" => 829, "8882" => 829, "8883" => 760, "8884" => 760, "8885" => 760, "8886" => 760, "8887" => 760, "8888" => 760, "8889" => 742, "8890" => 647, "8891" => 647, "8892" => 647, "8893" => 647, "8894" => 270, "8895" => 270, "8896" => 308, "8897" => 295, "8898" => 781, "8899" => 779, "8900" => 805, "8901" => 805, "8902" => 805, "8903" => 805, "8904" => 805, "8905" => 669, "8906" => 774, "8907" => 774, "8908" => 774, "8909" => 774, "8910" => 708, "8911" => 695, "8912" => 573, "8913" => 573, "8914" => 573, "8915" => 573, "8916" => 573, "8917" => 573, "8918" => 554, "8919" => 574, "8920" => 574, "8921" => 574, "8922" => 574, "8923" => 234, "8924" => 234, "8925" => 278, "8926" => 288, "8927" => 592, "8928" => 600, "8929" => 603, "8930" => 603, "8931" => 603, "8932" => 603, "8933" => 603, "8934" => 669, "8935" => 597, "8936" => 597, "8937" => 597, "8938" => 597, "8939" => 551, "8940" => 624, "8941" => 551, "8942" => 671, "8943" => 708, "8944" => 681, "8945" => 500, "8946" => 535, "8947" => 956, "8948" => 516, "8949" => 652, "8950" => 500, "8951" => 500, "8952" => 500, "8953" => 500, "8954" => 500, "8955" => 500, "8956" => 500, "8957" => 500, "8958" => 500, "8959" => 500, "8960" => 500, "8961" => 500, "8962" => 500, "8963" => 500, "8964" => 500, "8965" => 500, "8966" => 500, "8967" => 500, "8968" => 500, "8969" => 500, "8970" => 500, "8971" => 500, "8972" => 500, "8973" => 500, "8974" => 500, "8975" => 500, "8976" => 500, "8977" => 500, "8978" => 500, "8979" => 500, "8980" => 500, "8981" => 500, "8982" => 500, "8983" => 500, "8984" => 500, "8985" => 500, "8986" => 500, "8987" => 500, "8988" => 500, "8989" => 500, "8990" => 500, "8991" => 500, "8992" => 500, "8993" => 500, "8994" => 500, "8995" => 500, "8996" => 500, "8997" => 500, "8998" => 500, "8999" => 500, "9000" => 500, "9001" => 500, "9002" => 500, "9003" => 500, "9004" => 500, "9005" => 500, "9006" => 500, "9007" => 500, "9008" => 500, "9009" => 500, "9010" => 500, "9011" => 500, "9012" => 500, "9013" => 500, "9014" => 500, "9015" => 500, "9016" => 500, "9017" => 500, "9018" => 500, "9019" => 500, "9020" => 500, "9021" => 500, "9022" => 500, "9023" => 500, "9024" => 500, "9025" => 500, "9026" => 500, "9027" => 500, "9028" => 500, "9029" => 500, "9030" => 500, "9031" => 500, "9032" => 500, "9033" => 500, "9034" => 500, "9035" => 500, "9036" => 500, "9037" => 500, "9038" => 500, "9039" => 500, "9040" => 500, "9041" => 500, "9042" => 500, "9043" => 500, "9044" => 500, "9045" => 500, "9046" => 500, "9047" => 500, "9048" => 500, "9049" => 500, "9050" => 500, "9051" => 500, "9052" => 500, "9053" => 500, "9054" => 500, "9055" => 500, "9056" => 500, "9057" => 500, "9058" => 500, "9059" => 500, "9060" => 500, "9061" => 500, "9062" => 500, "9063" => 500, "9064" => 500, "9065" => 500, "9066" => 500, "9067" => 500, "9068" => 500, "9069" => 500, "9070" => 500, "9071" => 500, "9072" => 500, "9073" => 500, "9074" => 500, "9075" => 500, "9076" => 500, "9077" => 500, "9078" => 500, "9079" => 500, "9080" => 500, "9081" => 500, "9082" => 500, "9083" => 500, "9084" => 500, "9085" => 500, "9086" => 500, "9087" => 500, "9088" => 500, "9089" => 500, "9090" => 500, "9091" => 500, "9092" => 500, "9093" => 500, "9094" => 500, "9095" => 500, "9096" => 500, "9097" => 500, "9098" => 500, "9099" => 500, "9100" => 500, "9101" => 500, "9102" => 500, "9103" => 500, "9104" => 500, "9105" => 500, "9106" => 500, "9107" => 500, "9108" => 500, "9109" => 500, "9110" => 500, "9111" => 500, "9112" => 500, "9113" => 500, "9114" => 500, "9115" => 500, "9116" => 500, "9117" => 500, "9118" => 500, "9119" => 500, "9120" => 500, "9121" => 500, "9122" => 500, "9123" => 500, "9124" => 500, "9125" => 500, "9126" => 500, "9127" => 500, "9128" => 500, "9129" => 500, "9130" => 500, "9131" => 500, "9132" => 500, "9133" => 500, "9134" => 500, "9135" => 500, "9136" => 500, "9137" => 500, "9138" => 500, "9139" => 500, "9140" => 500, "9141" => 500, "9142" => 500, "9143" => 500, "9144" => 500, "9145" => 500, "9146" => 500, "9147" => 500, "9148" => 500, "9149" => 500, "9150" => 500, "9151" => 500, "9152" => 500, "9153" => 500, "9154" => 500, "9155" => 500, "9156" => 500, "9157" => 500, "9158" => 500, "9159" => 500, "9160" => 500, "9161" => 500, "9162" => 500, "9163" => 500, "9164" => 500, "9165" => 500, "9166" => 500, "9167" => 500, "9168" => 500, "9169" => 500, "9170" => 500, "9171" => 500, "9172" => 500, "9173" => 500, "9174" => 500, "9175" => 500, "9176" => 500, "9177" => 500, "9178" => 500, "9179" => 500, "9180" => 500, "9181" => 500, "9182" => 500, "9183" => 500, "9184" => 500, "9185" => 500, "9186" => 500, "9187" => 500, "9188" => 500, "9189" => 500, "9190" => 500, "9191" => 500, "9192" => 500, "9193" => 500, "9194" => 500, "9195" => 500, "9196" => 500, "9197" => 500, "9198" => 500, "9199" => 500, "9200" => 500, "9201" => 500, "9202" => 500, "9203" => 500, "9204" => 500, "9205" => 500, "9206" => 500, "9207" => 500, "9208" => 500, "9209" => 500, "9210" => 500, "9211" => 500, "9212" => 500, "9213" => 500, "9214" => 500, "9215" => 500, "9216" => 500, "9217" => 500, "9218" => 500, "9219" => 500, "9220" => 500, "9221" => 500, "9222" => 500, "9223" => 500, "9224" => 500, "9225" => 500, "9226" => 500, "9227" => 500, "9228" => 500, "9229" => 500, "9230" => 500, "9231" => 500, "9232" => 500, "9233" => 500, "9234" => 500, "9235" => 500, "9236" => 500, "9237" => 500, "9238" => 500, "9239" => 500, "9240" => 500, "9241" => 500, "9242" => 500, "9243" => 500, "9244" => 500, "9245" => 500, "9246" => 500, "9247" => 500, "9248" => 500, "9249" => 500, "9250" => 500, "9251" => 500, "9252" => 500, "9253" => 500, "9254" => 500, "9255" => 500, "9256" => 500, "9257" => 500, "9258" => 500, "9259" => 500, "9260" => 500, "9261" => 500, "9262" => 500, "9263" => 500, "9264" => 500, "9265" => 500, "9266" => 500, "9267" => 500, "9268" => 500, "9269" => 500, "9270" => 500, "9271" => 500, "9272" => 500, "9273" => 500, "9274" => 500, "9275" => 500, "9276" => 500, "9277" => 500, "9278" => 500, "9279" => 500, "9280" => 500, "9281" => 500, "9282" => 500, "9283" => 500, "9284" => 500, "9285" => 500, "9286" => 500, "9287" => 500, "9288" => 500, "9289" => 500, "9290" => 500, "9291" => 500, "9292" => 500, "9293" => 500, "9294" => 500, "9295" => 500, "9296" => 500, "9297" => 500, "9298" => 500, "9299" => 500, "9300" => 500, "9301" => 500, "9302" => 500, "9303" => 500, "9304" => 500, "9305" => 500, "9306" => 500, "9307" => 500, "9308" => 500, "9309" => 500, "9310" => 500, "9311" => 500, "9312" => 500, "9313" => 500, "9314" => 500, "9315" => 500, "9316" => 500, "9317" => 500, "9318" => 500, "9319" => 500, "9320" => 500, "9321" => 500, "9322" => 500, "9323" => 500, "9324" => 500, "9325" => 500, "9326" => 500, "9327" => 500, "9328" => 500, "9329" => 500, "9330" => 500, "9331" => 500, "9332" => 500, "9333" => 500, "9334" => 500, "9335" => 500, "9336" => 500, "9337" => 500, "9338" => 500, "9339" => 500, "9340" => 500, "9341" => 500, "9342" => 500, "9343" => 500, "9344" => 500, "9345" => 500, "9346" => 500, "9347" => 500, "9348" => 500, "9349" => 500, "9350" => 500, "9351" => 500, "9352" => 500, "9353" => 500, "12870" => 709, "12871" => 846, "12872" => 255, "12873" => 425, "12874" => 729, "12875" => 963, "12876" => 963, "12877" => 573, "12878" => 278, "12879" => 597, "12880" => 574, "12881" => 603, "12882" => 760, "12883" => 270, "12884" => 774, "12885" => 647, "12886" => 805, "12887" => 829, "12888" => 869, "12889" => 869, "12890" => 829, "12891" => 829, "12892" => 869, "12893" => 403, "12894" => 403, "12895" => 403, "12896" => 403, "12897" => 403, "12898" => 403, "12899" => 403, "12900" => 403, "12901" => 403, "12902" => 403, "12903" => 403, "12904" => 403, "12905" => 403, "12906" => 403, "12907" => 403, "12908" => 403, "12909" => 403, "12910" => 760, "12911" => 647, "12912" => 647, "12913" => 647, "12914" => 308, "12915" => 270, "12916" => 306, "12917" => 805, "12918" => 805, "12919" => 774, "12920" => 774, "12921" => 774, "12922" => 573, "12923" => 574, "12924" => 574, "12925" => 574, "12926" => 278, "12927" => 234, "12928" => 299, "12929" => 603, "12930" => 603, "12931" => 597, "12932" => 597, "12933" => 597, "12934" => 625, "12935" => 625, "12936" => 625, "12937" => 934, "12938" => 934, "12939" => 554, "12940" => 554, "12941" => 554, "12942" => 574, "12943" => 574, "12944" => 574, "12945" => 747, "12946" => 747, "12947" => 747, "12948" => 554, "12949" => 554, "12950" => 554, "12951" => 281, "12952" => 600, "12953" => 603, "12954" => 550, "12955" => 550, "12956" => 550, "12957" => 533, "12958" => 408, "12959" => 306, "12960" => 333, "12961" => 302, "12962" => 386, "12963" => 652, "12964" => 652, "12965" => 889, "12966" => 771, "12967" => 215, "12968" => 374, "12969" => 374, "12970" => 403, "12971" => 669, "12972" => 301, "12973" => 444, "12974" => 301, "12975" => 435, "12976" => 652, "12977" => 652, "12978" => 652, "12979" => 652, "12980" => 652, "12981" => 652, "12982" => 652, "12983" => 652, "12984" => 652, "12985" => 652, "12986" => 301, "12987" => 301, "12988" => 545, "12989" => 669, "12990" => 545, "12991" => 579, "12992" => 904, "12993" => 756, "12994" => 725, "12995" => 741, "12996" => 771, "12997" => 646, "12998" => 652, "12999" => 765, "13000" => 790, "13001" => 268, "13002" => 520, "13003" => 688, "13004" => 630, "13005" => 952, "13006" => 775, "13007" => 805, "13008" => 697, "13009" => 805, "13010" => 708, "13011" => 664, "13012" => 674, "13013" => 772, "13014" => 715, "13015" => 1034, "13016" => 712, "13017" => 685, "13018" => 681, "13019" => 374, "13020" => 652, "13021" => 374, "13022" => 569, "13023" => 500, "13024" => 500, "13025" => 562, "13026" => 624, "13027" => 546, "13028" => 625, "13029" => 580, "13030" => 400, "13031" => 616, "13032" => 600, "13033" => 232, "13034" => 247, "13035" => 526, "13036" => 231, "13037" => 876, "13038" => 600, "13039" => 603, "13040" => 625, "13041" => 625, "13042" => 430, "13043" => 535, "13044" => 403, "13045" => 593, "13046" => 544, "13047" => 798, "13048" => 525, "13049" => 551, "13050" => 512, "13051" => 374, "13052" => 372, "13053" => 374, "13054" => 500, "13055" => 301, "13056" => 435, "13057" => 301, "13058" => 372, "13059" => 652, "13060" => 302, "13061" => 584, "13062" => 652, "13063" => 77, "13064" => 584, "13065" => 610, "13066" => 574, "13067" => 430, "13068" => 482, "13069" => 309, "13070" => 309, "13071" => 634, "13072" => 633, "13073" => 500, "13074" => 594, "13075" => 593, "13076" => 301, "13077" => 614, "13078" => 494, "13079" => 301, "13080" => 430, "13081" => 430, "13082" => 482, "13083" => 903, "13084" => 1292, "13085" => 579, "13086" => 500, "13087" => 500, "13088" => 500, "13089" => 500, "13090" => 500, "13091" => 500, "13092" => 500, "13093" => 500, "13094" => 500, "13095" => 500, "13096" => 500, "13098" => 1080, "13099" => 415, "13100" => 630, "13101" => 809, "13102" => 1083, "13103" => 437, "13104" => 934, "13105" => 231, "13106" => 320, "13107" => 607, "13108" => 994, "13109" => 629, "13110" => 669, "13111" => 570, "13112" => 669, "13113" => 571, "13114" => 277, "13115" => 669, "13116" => 403, "13117" => 403, "13118" => 652, "13119" => 403, "13120" => 871, "13121" => 871, "13122" => 871, "13123" => 756, "13124" => 756, "13125" => 756, "13126" => 757, "13127" => 756, "13128" => 756, "13129" => 741, "13130" => 646, "13131" => 646, "13132" => 646, "13133" => 646, "13134" => 268, "13135" => 268, "13136" => 268, "13137" => 268, "13138" => 771, "13139" => 775, "13140" => 805, "13141" => 805, "13142" => 805, "13143" => 805, "13144" => 805, "13145" => 669, "13146" => 772, "13147" => 772, "13148" => 772, "13149" => 772, "13150" => 685, "13151" => 694, "13152" => 562, "13153" => 562, "13154" => 562, "13155" => 562, "13156" => 562, "13157" => 562, "13158" => 546, "13159" => 580, "13160" => 580, "13161" => 580, "13162" => 580, "13163" => 231, "13164" => 231, "13165" => 231, "13166" => 231, "13167" => 593, "13168" => 600, "13169" => 603, "13170" => 603, "13171" => 603, "13172" => 603, "13173" => 603, "13174" => 669, "13175" => 593, "13176" => 593, "13177" => 593, "13178" => 593, "13179" => 551, "13180" => 630, "13181" => 551, "13182" => 664, "13183" => 685, "13184" => 681, "13185" => 500, "13186" => 535, "13187" => 955, "13188" => 512, "13189" => 652, "13190" => 697, "13191" => 857, "13192" => 255, "13193" => 425, "13194" => 737, "13195" => 971, "13196" => 971, "13197" => 562, "13198" => 231, "13199" => 593, "13200" => 580, "13201" => 603, "13202" => 757, "13203" => 268, "13204" => 772, "13205" => 646, "13206" => 805, "13207" => 871, "13208" => 871, "13209" => 871, "13210" => 871, "13211" => 871, "13212" => 871, "13213" => 403, "13214" => 403, "13215" => 403, "13216" => 403, "13217" => 403, "13218" => 403, "13219" => 403, "13220" => 403, "13221" => 403, "13222" => 403, "13223" => 403, "13224" => 403, "13225" => 403, "13226" => 403, "13227" => 403, "13228" => 403, "13229" => 403, "13230" => 756, "13231" => 646, "13232" => 646, "13233" => 646, "13234" => 268, "13235" => 268, "13236" => 268, "13237" => 805, "13238" => 805, "13239" => 772, "13240" => 772, "13241" => 772, "13242" => 562, "13243" => 580, "13244" => 580, "13245" => 580, "13246" => 232, "13247" => 232, "13248" => 232, "13249" => 603, "13250" => 603, "13251" => 593, "13252" => 593, "13253" => 593, "13254" => 250, "13255" => 250, "13256" => 250, "13257" => 250, "13258" => 250, "13259" => 250, "13260" => 250, "13261" => 250, "13262" => 250, "13263" => 250, "13264" => 250, "13265" => 250, "13266" => 250, "13267" => 250, "13268" => 250, "13269" => 250, "13270" => 250, "13271" => 250, "13272" => 250, "13273" => 250, "13274" => 333, "13275" => 333, "13276" => 333, "13277" => 333, "13278" => 333, "13279" => 333, "13280" => 333, "13281" => 333, "13282" => 333, "13283" => 333, "13284" => 333, "13285" => 333, "13286" => 333, "13287" => 333, "13288" => 333, "13289" => 333, "13290" => 333, "13291" => 333, "13292" => 333, "13293" => 333, "13294" => 333, "13295" => 500, "13296" => 500, "13297" => 500, "13298" => 500, "13299" => 500, "13300" => 500, "13301" => 500, "13302" => 500, "13303" => 500, "13304" => 500, "13305" => 500, "13306" => 500, "13307" => 500, "13308" => 500, "13309" => 500, "13310" => 500, "13311" => 500, "13312" => 500, "13313" => 500, "13314" => 500, "13315" => 500, "13316" => 500, "13317" => 500, "13318" => 500, "13319" => 500, "15976" => 813, "15977" => 850, "15978" => 862, "15979" => 898, "15980" => 888, "15981" => 904, "15982" => 998, "15983" => 974, "15984" => 979, "15985" => 917, "15986" => 975, "15987" => 859, "15988" => 883, "15989" => 919, "15990" => 979, "15991" => 905, "15992" => 959, "15993" => 908, "15994" => 961, "15995" => 945, "15996" => 960, "15997" => 982, "15998" => 992, "15999" => 947, "16000" => 950, "16001" => 966, "16002" => 962, "16003" => 957, "16004" => 949, "16005" => 977, "16006" => 995, "16007" => 953, "16008" => 972, "16009" => 943, "16010" => 968, "16011" => 954, "16012" => 963, "16013" => 957, "16014" => 959, "16015" => 959, "16016" => 972, "16017" => 968, "16018" => 992, "16019" => 860, "16020" => 898, "16021" => 942, "16022" => 916, "16023" => 923, "16024" => 965, "16025" => 993, "16026" => 962, "16027" => 940, "16028" => 949, "16029" => 962, "16030" => 924, "16031" => 966, "16032" => 976, "16033" => 992, "16034" => 941, "16035" => 961, "16036" => 981, "16037" => 946, "16038" => 949, "16039" => 952, "16040" => 832, "16041" => 858, "16042" => 878, "16043" => 967, "16044" => 979, "16045" => 987, "16046" => 964, "16047" => 938, "16048" => 964, "16049" => 953, "16050" => 960, "16051" => 899, "16052" => 962, "16053" => 903, "16054" => 958, "16055" => 909, "16056" => 961, "16057" => 979, "16058" => 979, "16059" => 970, "16060" => 955, "16061" => 973, "16062" => 886, "16063" => 954, "16064" => 957, "16065" => 980, "16066" => 971, "16067" => 945, "16068" => 950, "16069" => 885, "16070" => 911, "16071" => 976, "16072" => 998, "16073" => 936, "16074" => 981, "16075" => 947, "16076" => 892, "16077" => 941, "16078" => 875, "16079" => 935, "16080" => 894, "16081" => 946, "16082" => 884, "16083" => 930, "16084" => 890, "16085" => 938, "16086" => 952, "16087" => 971, "16088" => 939, "16089" => 978, "16090" => 944, "16091" => 966, "16092" => 937, "16093" => 964, "16094" => 940, "16095" => 970, "16096" => 949, "16097" => 962, "16098" => 953, "16099" => 984, "16100" => 922, "16101" => 958, "16102" => 940, "16103" => 978, "16104" => 912, "16105" => 961, "16106" => 956, "16107" => 976, "16108" => 931, "16109" => 934, "16110" => 877, "16111" => 920, "16112" => 970, "16113" => 945, "16114" => 964, "16115" => 933, "16116" => 962, "16117" => 931, "16118" => 917, "16119" => 944, "16120" => 949, "16121" => 892, "16122" => 897, "16123" => 934, "16124" => 944, "16125" => 946, "16126" => 974, "16127" => 989, "16128" => 928, "16129" => 961, "16130" => 972, "16131" => 832, "16132" => 859, "16133" => 886, "16134" => 950, "16135" => 980, "16136" => 992, "16137" => 916, "16138" => 940, "16139" => 933, "16140" => 915, "16141" => 947, "16142" => 888, "16143" => 941, "16144" => 879, "16145" => 925, "16146" => 919, "16147" => 973, "16148" => 961, "16149" => 969, "16150" => 942, "16151" => 917, "16152" => 959, "16153" => 897, "16154" => 947, "16155" => 942, "16156" => 941, "16157" => 949, "16158" => 879, "16159" => 963, "16160" => 900, "16161" => 869, "16162" => 978, "16163" => 977, "16164" => 969, "16165" => 970, "16166" => 975, "16167" => 982, "16168" => 972, "16169" => 988, "16170" => 892, "16171" => 851, "16172" => 877, "16173" => 874, "16174" => 893, "16175" => 858, "16176" => 890, "16177" => 881, "16178" => 781, "16179" => 896, "16180" => 927, "16181" => 881, "16182" => 909, "16183" => 914, "16184" => 889, "16185" => 859, "16186" => 904, "16187" => 975, "16188" => 977, "16189" => 988, "16190" => 974, "16191" => 904, "16192" => 891, "16469" => 669, "16470" => 669, "16471" => 669, "16472" => 669, "16473" => 669, "16474" => 1002, "16475" => 669, "16476" => 669, "16477" => 669, "16478" => 669, "16479" => 669, "16480" => 669, "16481" => 669, "16482" => 669, "16483" => 669, "16484" => 669, "16485" => 669, "16486" => 669, "16487" => 669, "16488" => 910, "16489" => 669, "16490" => 669, "16491" => 669, "16492" => 669, "16493" => 925, "16494" => 925, "16495" => 778, "16496" => 777, "16497" => 912, "16498" => 912, "16499" => 912, "16500" => 669, "16501" => 669, "16502" => 669, "16503" => 669, "16504" => 617, "16505" => 795, "16506" => 669, "16507" => 669, "16508" => 669, "16509" => 669, "16510" => 639, "16511" => 669, "16512" => 669, "16513" => 669, "16514" => 383, "16515" => 629, "16516" => 669, "16517" => 669, "16518" => 669, "16519" => 669, "16520" => 669, "16521" => 669, "16522" => 925, "16523" => 669, "16524" => 710, "16525" => 617, "16526" => 846, "16527" => 500, "16528" => 669, "16529" => 669, "16530" => 829, "16531" => 862, "16532" => 954, "16533" => 877, "16534" => 779, "16535" => 600, "16536" => 597, "16537" => 597, "16538" => 597, "16539" => 597, "16540" => 760, "16541" => 500, "16542" => 646, "16543" => 671, "16544" => 671, "16545" => 676, "16546" => 681, "16547" => 681, "16548" => 573, "16549" => 742, "16550" => 278, "16551" => 535, "16552" => 500, "16553" => 535, "16554" => 403, "16555" => 516, "16556" => 500, "16557" => 516, "16558" => 720, "16559" => 760, "16560" => 630, "16561" => 742, "16562" => 742, "16563" => 647, "16564" => 771, "16565" => 779, "16566" => 779, "16567" => 805, "16568" => 720, "16569" => 774, "16570" => 676, "16571" => 432, "16572" => 573, "16573" => 234, "16574" => 554, "16575" => 554, "16576" => 574, "16577" => 645, "16578" => 631, "16579" => 600, "16580" => 600, "16581" => 603, "16582" => 432, "16583" => 597, "16584" => 403, "16585" => 500, "16586" => 742, "16587" => 765, "16588" => 793, "16589" => 539, "16590" => 671, "16591" => 774, "16592" => 554, "16593" => 618, "16594" => 619, "16595" => 294, "16596" => 535, "16597" => 597, "16598" => 878, "16599" => 574, "16600" => 365, "16601" => 462, "16602" => 623, "16603" => 432, "16604" => 401, "16605" => 626, "16606" => 604, "16607" => 430, "16608" => 535, "16609" => 524, "16610" => 430, "16611" => 233, "16612" => 400, "16613" => 603, "16614" => 395, "16615" => 551, "16616" => 615, "16617" => 878, "16618" => 569, "16619" => 606, "16620" => 537, "16621" => 537, "16622" => 600, "16623" => 805, "16624" => 490, "16625" => 622, "16626" => 703, "16627" => 420, "16628" => 696, "16629" => 765, "16630" => 254, "16631" => 617, "16632" => 574, "16633" => 548, "16634" => 614, "16635" => 573, "16636" => 877, "16637" => 609, "16638" => 623, "16639" => 625, "16640" => 807, "16641" => 601, "16642" => 537, "16643" => 537, "16644" => 554, "16645" => 561, "16646" => 432, "16647" => 600, "16648" => 0, "16649" => 160, "16650" => 160, "16651" => 306, "16652" => 0, "16653" => 500, "16654" => 435, "16655" => 435, "16656" => 435, "16657" => 435, "16658" => 435, "16659" => 450, "16660" => 450, "16661" => 500, "16662" => 500, "16663" => 500, "16664" => 500, "16665" => 500, "16666" => 500, "16667" => 500, "16668" => 500, "16669" => 500, "16670" => 165, "16671" => 500, "16672" => 500, "16673" => 500, "16674" => 500, "16675" => 500, "16676" => 500, "16677" => 500, "16678" => 500, "16679" => 500, "16680" => 500, "16681" => 500, "16682" => 381, "16683" => 383, "16684" => 669, "16685" => 669, "16686" => 576, "16687" => 551, "16688" => 232, "16689" => 592, "16690" => 830, "16691" => 682, "16692" => 569, "16693" => 538, "16694" => 582, "16695" => 598, "16696" => 490, "16697" => 348, "16698" => 214, "16699" => 469, "16700" => 317, "16701" => 310, "16702" => 147, "16703" => 567, "16704" => 689, "16705" => 875, "16706" => 669, "16707" => 669, "16708" => 912, "16709" => 947, "16710" => 947, "16711" => 349, "16712" => 633, "16713" => 570, "16714" => 563, "16715" => 857, "16716" => 500, "16717" => 871, "16718" => 952, "16719" => 876, "16720" => 775, "16721" => 600, "16722" => 593, "16723" => 593, "16724" => 593, "16725" => 593, "16726" => 756, "16727" => 630, "16728" => 664, "16729" => 664, "16730" => 674, "16731" => 681, "16732" => 681, "16733" => 562, "16734" => 231, "16735" => 535, "16736" => 535, "16737" => 403, "16738" => 512, "16739" => 512, "16740" => 708, "16741" => 756, "16742" => 630, "16743" => 741, "16744" => 741, "16745" => 646, "16746" => 771, "16747" => 775, "16748" => 775, "16749" => 805, "16750" => 708, "16751" => 772, "16752" => 674, "16753" => 430, "16754" => 562, "16755" => 231, "16756" => 546, "16757" => 546, "16758" => 580, "16759" => 625, "16760" => 625, "16761" => 600, "16762" => 600, "16763" => 603, "16764" => 430, "16765" => 593, "16766" => 403, "16767" => 741, "16768" => 765, "16769" => 790, "16770" => 520, "16771" => 664, "16772" => 772, "16773" => 546, "16774" => 616, "16775" => 600, "16776" => 247, "16777" => 535, "16778" => 593);
+opendir(OPLD, "opl") || mkdir("opl",0755) || die "cannot mkdir opl";
+opendir(OFMD, "ofm") || mkdir("ofm",0755) || die "cannot mkdir ofm";
+$font_at=1.0;
+@font_base_name=("hiramin-w3", "hiramin-w6", "hirakaku-w3", "hirakaku-w6", "hiramaru-w4");
+foreach $base_name(@font_base_name){
+ for ($d=0; $d<=1; $d++){
+ if ($d==0){$dir="h";}elsif($d==1){$dir="v";}
+ $font_name="$base_name-$dir";
+ open(OPL, ">opl/$font_name.opl") || die "cannot make file";
+ print OPL "(OFMLEVEL D 1)\n";
+ print OPL "(FONTDIR TL)\n";
+ print OPL "(FAMILY HIRAMIN)\n";
+ print OPL "(FACE F MRR)\n";
+ print OPL "(CODINGSCHEME UNSPECIFIED)\n";
+ print OPL "(DESIGNSIZE R 10.0)\n";
+ print OPL "(COMMENT DESIGNSIZE IS IN POINTS)\n";
+ print OPL "(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)\n";
+ print OPL "(CHECKSUM H 0)\n";
+ print OPL "(SEVENBITSAFEFLAG FALSE)\n";
+ print OPL "(FONTDIMEN\n";
+ print OPL " (SLANT R 0.0)\n";
+ print OPL " (SPACE R 0.0)\n";
+ printf OPL " (STRETCH R %f)\n", $font_at/10;
+ print OPL " (SHRINK R 0.0)\n";
+ printf OPL " (XHEIGHT R %f)\n", $font_at;
+ printf OPL " (QUAD R %f)\n", $font_at;
+ print OPL " )\n";
+ if ($dir eq "h"){
+ if($base_name eq "hiramin-w3"){
+ %chwidth=%min_w3;
+ }elsif($base_name eq "hiramin-w6"){
+ %chwidth=%min_w6;
+ }elsif($base_name eq "hirakaku-w3"){
+ %chwidth=%goth_w3;
+ }elsif($base_name eq "hirakaku-w6"){
+ %chwidth=%goth_w6;
+ }elsif($base_name eq "hiramaru-w4"){
+ %chwidth=%maru_w4;
+ }
+ }elsif ($dir eq "v"){
+ if($base_name eq "hiramin-w3"){
+ %chwidth=%min_w3_v;
+ }elsif($base_name eq "hiramin-w6"){
+ %chwidth=%min_w6_v;
+ }elsif($base_name eq "hirakaku-w3"){
+ %chwidth=%goth_w3_v;
+ }elsif($base_name eq "hirakaku-w6"){
+ %chwidth=%goth_w6_v;
+ }elsif($base_name eq "hiramaru-w4"){
+ %chwidth=%maru_w4_v;
+ }
+ }
+ for($cidcode=0; $cidcode<=20316; $cidcode++){
+ $width=1;
+ if ($dir eq "h"){
+ if(exists $chwidth{"$cidcode"}){$width=$chwidth{"$cidcode"}/10;}
+ }elsif ($dir eq "v"){
+ if(exists $chwidth{"$cidcode"}){$width=$chwidth{"$cidcode"}/1000;}
+ }
+ if ($dir eq "h"){
+ $accender=0.88;
+ $decender=0.12;
+ }elsif($dir eq "v"){
+ $accender=0.5;
+ $decender=0.5;
+ }
+ printf OPL "(CHARACTER D %d\n", $cidcode;
+ printf OPL " (CHARWD R %f)\n", $width*$font_at;
+ printf OPL " (CHARHT R %f)\n", $font_at*$accender ;
+ printf OPL " (CHARDP R %f)\n", $font_at*$decender;
+ print OPL " )\n";
+ }
+ close(OPL);
+ system("opl2ofm opl/$font_name.opl ofm/$font_name.ofm")
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mktfm.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mktfm.pl
new file mode 100644
index 00000000000..ffe3e39aea6
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mktfm.pl
@@ -0,0 +1,235 @@
+#!/usr/bin/perl
+$multi=3;
+@tex_tfm_h=(0x00, 0x0B, 0x00, 0x01, 0x00, 0x2B, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x0E, 0x54, 0x45, 0x58, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x20, 0x54, 0x45, 0x58, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x4F, 0x54, 0x46, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x14, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEB, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x33, 0x33, 0x00, 0x02, 0x00, 0x00);
+@tex_tfm_v=(0x00, 0x09, 0x00, 0x01, 0x00, 0x2B, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x0E, 0x54, 0x45, 0x58, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x20, 0x54, 0x45, 0x58, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x4F, 0x54, 0x46, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x33, 0x33, 0x00, 0x02, 0x00, 0x00);
+@dvips_tfm_h=(0x00, 0x0B, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x14, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEB, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+@dvips_tfm_v=(0x00, 0x09, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+
+# halfwidth characters U+FF61..FF9F are correspond to (0x6D5x, 0x6D6x, 0x6E3x, 0x6E4x) in subfont
+@tex_tfm_sub_h=map{ hex($_) } qw/
+ 00 0b 00 40 00 6c 00 12 00 00 00 01 00 03 00 02
+ 00 02 00 01 00 00 00 00 00 00 00 09 00 00 00 00
+ 00 a0 00 00 0e 54 45 58 20 4b 41 4e 4a 49 20 54
+ 45 58 54 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 09 4f 54 46
+ 20 4b 41 4e 4a 49 00 00 00 00 00 00 00 00 00 00
+ 80 00 00 00 00 00 00 00 6d 51 00 01 6d 52 00 01
+ 6d 53 00 01 6d 54 00 01 6d 55 00 01 6d 56 00 01
+ 6d 57 00 01 6d 58 00 01 6d 59 00 01 6d 5a 00 01
+ 6d 5b 00 01 6d 5c 00 01 6d 5d 00 01 6d 5e 00 01
+ 6d 5f 00 01 6d 60 00 01 6d 61 00 01 6d 62 00 01
+ 6d 63 00 01 6d 64 00 01 6d 65 00 01 6d 66 00 01
+ 6d 67 00 01 6d 68 00 01 6d 69 00 01 6d 6a 00 01
+ 6d 6b 00 01 6d 6c 00 01 6d 6d 00 01 6d 6e 00 01
+ 6d 6f 00 01 6e 30 00 01 6e 31 00 01 6e 32 00 01
+ 6e 33 00 01 6e 34 00 01 6e 35 00 01 6e 36 00 01
+ 6e 37 00 01 6e 38 00 01 6e 39 00 01 6e 3a 00 01
+ 6e 3b 00 01 6e 3c 00 01 6e 3d 00 01 6e 3e 00 01
+ 6e 3f 00 01 6e 40 00 01 6e 41 00 01 6e 42 00 01
+ 6e 43 00 01 6e 44 00 01 6e 45 00 01 6e 46 00 01
+ 6e 47 00 01 6e 48 00 01 6e 49 00 01 6e 4a 00 01
+ 6e 4b 00 01 6e 4c 00 01 6e 4d 00 01 6e 4e 00 01
+ 6e 4f 00 01 02 11 00 00 01 11 00 00 00 00 00 00
+ 00 08 00 00 00 10 00 00 00 00 00 00 00 0e 14 7b
+ 00 00 00 00 00 01 eb 85 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 01 99 9a 00 00 00 00 00 10 00 00
+ 00 10 00 00 00 04 00 00 00 03 33 33 00 02 00 00
+/;
+@dvips_tfm_ucs_h=map{ hex($_) } qw/
+ 00 0b 00 40 00 5c 00 02 00 00 00 01 00 03 00 02
+ 00 02 00 01 00 00 00 00 00 00 00 09 00 00 00 00
+ 00 a0 00 00 00 00 00 00 ff 61 00 01 ff 62 00 01
+ ff 63 00 01 ff 64 00 01 ff 65 00 01 ff 66 00 01
+ ff 67 00 01 ff 68 00 01 ff 69 00 01 ff 6a 00 01
+ ff 6b 00 01 ff 6c 00 01 ff 6d 00 01 ff 6e 00 01
+ ff 6f 00 01 ff 70 00 01 ff 71 00 01 ff 72 00 01
+ ff 73 00 01 ff 74 00 01 ff 75 00 01 ff 76 00 01
+ ff 77 00 01 ff 78 00 01 ff 79 00 01 ff 7a 00 01
+ ff 7b 00 01 ff 7c 00 01 ff 7d 00 01 ff 7e 00 01
+ ff 7f 00 01 ff 80 00 01 ff 81 00 01 ff 82 00 01
+ ff 83 00 01 ff 84 00 01 ff 85 00 01 ff 86 00 01
+ ff 87 00 01 ff 88 00 01 ff 89 00 01 ff 8a 00 01
+ ff 8b 00 01 ff 8c 00 01 ff 8d 00 01 ff 8e 00 01
+ ff 8f 00 01 ff 90 00 01 ff 91 00 01 ff 92 00 01
+ ff 93 00 01 ff 94 00 01 ff 95 00 01 ff 96 00 01
+ ff 97 00 01 ff 98 00 01 ff 99 00 01 ff 9a 00 01
+ ff 9b 00 01 ff 9c 00 01 ff 9d 00 01 ff 9e 00 01
+ ff 9f 00 01 02 11 00 00 01 11 00 00 00 00 00 00
+ 00 08 00 00 00 10 00 00 00 00 00 00 00 0e 14 7b
+ 00 00 00 00 00 01 eb 85 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00
+ 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+/;
+
+opendir(TFM, "tfm") || mkdir("tfm",0755) || die "cannot mkdir tfm";
+&make_utf_tfm;
+&make_cid_tfm;
+&make_multi_utf_tfm;
+&make_utf_allinone_tfm;
+&make_multi_cid_tfm;
+
+sub make_utf_tfm {
+ for ($k=0; $k<=6; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}elsif ($k==2){$face="mb";}
+ elsif ($k==3){$face="gb";}elsif ($k==4){$face="mgr";}elsif ($k==5){$face="ml";}
+ elsif ($k==6){$face="ge";}
+ for ($l=0; $l<=0; $l++){#language
+ if ($l==0) {$lang="j";} elsif ($l==1) {$lang="k";}
+ elsif ($l==2) {$lang="c";} elsif ($l==3){$lang="t";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ $varfilename="otf-u$lang$face-$dir";
+ open(DVIPSTFM,">tfm/$varfilename.tfm") || die "Can't make \'tfm/$varfilename.tfm\'!\n";
+ if ($i==0) {
+ if ($lang=="j") {
+ @dvips_tfm = @dvips_tfm_ucs_h;
+ } else {
+ @dvips_tfm = @dvips_tfm_h;
+ }
+ foreach $binary(@dvips_tfm ) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@dvips_tfm_v) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }
+ close(DVIPSTFM);
+ for ($first_hex=0x0; $first_hex <= 0xf; $first_hex++){
+ $filename="utf$lang$face".sprintf("%x",$first_hex)."-$dir";
+ open(TEXTFM,">tfm/$filename.tfm") || die "Can't make \'tfm/$filename.tfm\'!\n";
+ if ($i==0) {
+ if ($lang=="j" && $first_hex==0xf) {
+ @tex_tfm = @tex_tfm_sub_h;
+ } else {
+ @tex_tfm = @tex_tfm_h;
+ }
+ foreach $binary(@tex_tfm ) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@tex_tfm_v) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }
+ close(TEXTFM);
+ }
+ }
+ }
+ }
+}
+
+sub make_cid_tfm {
+ for ($k=0; $k<=6; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}elsif ($k==2){$face="mb";}
+ elsif ($k==3){$face="gb";}elsif ($k==4){$face="mgr";}elsif ($k==5){$face="ml";}
+ elsif ($k==6){$face="ge";}
+ for ($l=0; $l<=0; $l++){#language
+ if ($l==0) {$lang="j";} elsif ($l==1) {$lang="k";}
+ elsif ($l==2) {$lang="c";} elsif ($l==3){$lang="t";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ $varfilename="otf-cj$face-$dir";
+ open(DVIPSTFM,">tfm/$varfilename.tfm") || die "Can't make \'tfm/$varfilename.tfm\'!\n";
+ binmode(DVIPSTFM);
+ if ($i==0) {
+ foreach $binary(@dvips_tfm_h) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@dvips_tfm_v) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }
+ close(DVIPSTFM);
+ for ($first_hex=0x0; $first_hex <= 0x5; $first_hex++){
+ $filename="cidj$face".sprintf("%x",$first_hex)."-$dir";
+ open(TEXTFM,">tfm/$filename.tfm") || die "Can't make \'tfm/$filename.tfm\'!\n";
+ binmode(TEXTFM);
+ if ($i==0) {
+ foreach $binary(@tex_tfm_h) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@tex_tfm_v) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }
+ close(TEXTFM);
+ }
+ }
+ }
+ }
+}
+
+sub make_multi_utf_tfm {
+ for ($k=0; $k<=1; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}
+ for ($l=1; $l<=$multi; $l++){#language
+ if ($l==0) {$lang="j";} elsif ($l==1) {$lang="k";}
+ elsif ($l==2) {$lang="c";} elsif ($l==3){$lang="t";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ $varfilename="otf-u$lang$face-$dir";
+ open(DVIPSTFM,">tfm/$varfilename.tfm") || die "Can't make \'tfm/$varfilename.tfm\'!\n";
+ binmode(DVIPSTFM);
+ if ($i==0) {
+ foreach $binary(@dvips_tfm_h) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@dvips_tfm_v) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }
+ close(DVIPSTFM);
+ for ($first_hex=0x0; $first_hex <= 0xf; $first_hex++){
+ $filename="utf$lang$face".sprintf("%x",$first_hex)."-$dir";
+ open(TEXTFM,">tfm/$filename.tfm") || die "Can't make \'tfm/$filename.tfm\'!\n";
+ binmode(TEXTFM);
+ if ($i==0) {
+ foreach $binary(@tex_tfm_h) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@tex_tfm_v) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }
+ close(TEXTFM);
+ }
+ }
+ }
+ }
+}
+sub make_multi_cid_tfm {
+ for ($k=0; $k<=1; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}
+ for ($l=1; $l<=$multi; $l++){#language
+ if ($l==1) {$lang="k";$max_hex=4;} elsif ($l==2) {$lang="c";$max_hex=7;} elsif ($l==3){$lang="t";$max_hex=4;}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ $varfilename="otf-c$lang$face-$dir";
+ open(DVIPSTFM,">tfm/$varfilename.tfm") || die "Can't make \'tfm/$varfilename.tfm\'!\n";
+ binmode(DVIPSTFM);
+ if ($i==0) {
+ foreach $binary(@dvips_tfm_h) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@dvips_tfm_v) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }
+ close(DVIPSTFM);
+ for ($first_hex=0x0; $first_hex <= $max_hex; $first_hex++){
+ $filename="cid$lang$face".sprintf("%x",$first_hex)."-$dir";
+ open(TEXTFM,">tfm/$filename.tfm") || die "Can't make \'tfm/$filename.tfm\'!\n";
+ binmode(TEXTFM);
+ if ($i==0) {
+ foreach $binary(@tex_tfm_h) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@tex_tfm_v) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }
+ close(TEXTFM);
+ }
+ }
+ }
+ }
+}
+sub make_utf_allinone_tfm {
+ for ($k=0; $k<=1; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ for ($first_hex=0x0; $first_hex <= 0xf; $first_hex++){
+ $filename="utf$face".sprintf("%x",$first_hex)."-$dir";
+ open(TEXTFM,">tfm/$filename.tfm") || die "Can't make \'tfm/$filename.tfm\'!\n";
+ if ($i==0) {
+ if ($first_hex==0xf) {
+ @tex_tfm = @tex_tfm_sub_h;
+ } else {
+ @tex_tfm = @tex_tfm_h;
+ }
+ foreach $binary(@tex_tfm ) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@tex_tfm_v) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }
+ close(TEXTFM);
+ }
+ }
+ }
+}
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mktfm_sp.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mktfm_sp.pl
new file mode 100755
index 00000000000..90f464d13ad
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mktfm_sp.pl
@@ -0,0 +1,220 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+mktfm_sp.pl
+
+=head1 USAGE
+
+script/mktfm_sp.pl
+
+=head1 NOTE
+
+This software is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+
+=cut
+
+use FindBin;
+use lib "$FindBin::Bin";
+use MakeSPList;
+
+$multi=3;
+@tex_tfm_h=(0x00, 0x0B, 0x00, 0x01, 0x00, 0x2B, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x0E, 0x54, 0x45, 0x58, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x20, 0x54, 0x45, 0x58, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x4F, 0x54, 0x46, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x14, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEB, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x33, 0x33, 0x00, 0x02, 0x00, 0x00);
+@tex_tfm_v=(0x00, 0x09, 0x00, 0x01, 0x00, 0x2B, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x0E, 0x54, 0x45, 0x58, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x20, 0x54, 0x45, 0x58, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x4F, 0x54, 0x46, 0x20, 0x4B, 0x41, 0x4E, 0x4A, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x33, 0x33, 0x00, 0x02, 0x00, 0x00);
+@dvips_tfm_h=(0x00, 0x0B, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x14, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEB, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+@dvips_tfm_v=(0x00, 0x09, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+
+@tex_tfm_ucs_h=map{ hex($_) } qw/
+ 00 0b 00 40 00 6c 00 12 00 00 00 01 00 03 00 02
+ 00 02 00 01 00 00 00 00 00 00 00 09 00 00 00 00
+ 00 a0 00 00 0e 54 45 58 20 4b 41 4e 4a 49 20 54
+ 45 58 54 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 09 4f 54 46
+ 20 4b 41 4e 4a 49 00 00 00 00 00 00 00 00 00 00
+ 80 00 00 00 00 00 00 00 ff 61 00 01 ff 62 00 01
+ ff 63 00 01 ff 64 00 01 ff 65 00 01 ff 66 00 01
+ ff 67 00 01 ff 68 00 01 ff 69 00 01 ff 6a 00 01
+ ff 6b 00 01 ff 6c 00 01 ff 6d 00 01 ff 6e 00 01
+ ff 6f 00 01 ff 70 00 01 ff 71 00 01 ff 72 00 01
+ ff 73 00 01 ff 74 00 01 ff 75 00 01 ff 76 00 01
+ ff 77 00 01 ff 78 00 01 ff 79 00 01 ff 7a 00 01
+ ff 7b 00 01 ff 7c 00 01 ff 7d 00 01 ff 7e 00 01
+ ff 7f 00 01 ff 80 00 01 ff 81 00 01 ff 82 00 01
+ ff 83 00 01 ff 84 00 01 ff 85 00 01 ff 86 00 01
+ ff 87 00 01 ff 88 00 01 ff 89 00 01 ff 8a 00 01
+ ff 8b 00 01 ff 8c 00 01 ff 8d 00 01 ff 8e 00 01
+ ff 8f 00 01 ff 90 00 01 ff 91 00 01 ff 92 00 01
+ ff 93 00 01 ff 94 00 01 ff 95 00 01 ff 96 00 01
+ ff 97 00 01 ff 98 00 01 ff 99 00 01 ff 9a 00 01
+ ff 9b 00 01 ff 9c 00 01 ff 9d 00 01 ff 9e 00 01
+ ff 9f 00 01 02 11 00 00 01 11 00 00 00 00 00 00
+ 00 08 00 00 00 10 00 00 00 00 00 00 00 0e 14 7b
+ 00 00 00 00 00 01 eb 85 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 01 99 9a 00 00 00 00 00 10 00 00
+ 00 10 00 00 00 04 00 00 00 03 33 33 00 02 00 00
+/;
+@dvips_tfm_ucs_h=map{ hex($_) } qw/
+ 00 0b 00 40 00 5c 00 02 00 00 00 01 00 03 00 02
+ 00 02 00 01 00 00 00 00 00 00 00 09 00 00 00 00
+ 00 a0 00 00 00 00 00 00 ff 61 00 01 ff 62 00 01
+ ff 63 00 01 ff 64 00 01 ff 65 00 01 ff 66 00 01
+ ff 67 00 01 ff 68 00 01 ff 69 00 01 ff 6a 00 01
+ ff 6b 00 01 ff 6c 00 01 ff 6d 00 01 ff 6e 00 01
+ ff 6f 00 01 ff 70 00 01 ff 71 00 01 ff 72 00 01
+ ff 73 00 01 ff 74 00 01 ff 75 00 01 ff 76 00 01
+ ff 77 00 01 ff 78 00 01 ff 79 00 01 ff 7a 00 01
+ ff 7b 00 01 ff 7c 00 01 ff 7d 00 01 ff 7e 00 01
+ ff 7f 00 01 ff 80 00 01 ff 81 00 01 ff 82 00 01
+ ff 83 00 01 ff 84 00 01 ff 85 00 01 ff 86 00 01
+ ff 87 00 01 ff 88 00 01 ff 89 00 01 ff 8a 00 01
+ ff 8b 00 01 ff 8c 00 01 ff 8d 00 01 ff 8e 00 01
+ ff 8f 00 01 ff 90 00 01 ff 91 00 01 ff 92 00 01
+ ff 93 00 01 ff 94 00 01 ff 95 00 01 ff 96 00 01
+ ff 97 00 01 ff 98 00 01 ff 99 00 01 ff 9a 00 01
+ ff 9b 00 01 ff 9c 00 01 ff 9d 00 01 ff 9e 00 01
+ ff 9f 00 01 02 11 00 00 01 11 00 00 00 00 00 00
+ 00 08 00 00 00 10 00 00 00 00 00 00 00 0e 14 7b
+ 00 00 00 00 00 01 eb 85 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00
+ 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+/;
+
+opendir(TFM, "tfm") || mkdir("tfm",0755) || die "cannot mkdir tfm";
+
+my @face = qw/mr gr mb gb mgr ml ge/;
+my @lang = qw/j t c k/;
+my @dir = qw/h v/;
+my %font_id = qw/1b g 1d h 1e i 1f j
+ 20 k 21 l 22 m 23 n 24 o 25 p 26 q 27 r
+ 28 s 29 t 2a u 2b v 2c w 2d x 2e y 2f z/;
+
+&MakeSPList::make_sp_char_list(@lang);
+
+&make_utf_tfm;
+&make_multi_utf_tfm;
+&make_unified_utf_tfm;
+
+sub make_utf_tfm {
+ foreach $lang ($lang[0]){ #language, japanase
+ foreach $newjis ('', 'n') {
+ foreach $face (@face){ #face
+ $face0 = $face.$newjis;
+ foreach $dir (@dir){ #direction
+ &make_dvipstfm_body($face0, $dir, $lang) if ($dir=='h');
+ &make_ucs_tfm_body($face0, $dir, $lang);
+ }
+ }
+ }
+ foreach $face (@face){ #face
+ foreach $dir (@dir){ #direction
+ &maketfm_body($face, $dir, $lang);
+ }
+ }
+ }
+}
+sub make_multi_utf_tfm {
+ foreach $lang (@lang[1..$multi]){ #language, t c k
+ foreach $face (@face){ #face
+ foreach $dir (@dir){ #direction
+ &make_dvipstfm_body($face, $dir, $lang);
+ &make_ucs_tfm_body($face, $dir, $lang);
+ }
+ }
+ foreach $face (@face[0..1]){ #face
+ foreach $dir (@dir){ #direction
+ &maketfm_body($face, $dir, $lang);
+ }
+ }
+ }
+}
+sub make_unified_utf_tfm {
+ foreach $face (@face[0..1]){ #face
+ foreach $dir (@dir){ #direction
+ &maketfm_body($face, $dir, @lang);
+ }
+ }
+}
+
+sub maketfm_body {
+ my ($face, $dir, @ln)=@_;
+=comment
+ ## mktfm.pl does same procedure.
+ $filename="utf$lang$face".sprintf("%x",$first_hex)."-$dir";
+ open(TEXTFM,">tfm/$filename.tfm") || die "Can't make \'tfm/$filename.tfm\'!\n";
+ binmode(TEXTFM);
+ if ($i==0) {
+ foreach $binary(@tex_tfm_h) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@tex_tfm_v) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }
+ close(TEXTFM);
+=cut
+ my $lang = join ',', @ln;
+ my @exist_head=@{$MakeSPList::r_exist_head->{$lang}};
+
+ foreach $first_hex (0x1b, 0x1d .. 0x2f) { # U+1Cxxx : not defined yet
+ next if (!$exist_head[$first_hex]);
+
+ $id = $font_id{sprintf("%02x", $first_hex)};
+ $filename= (@ln>1) ? "utf$face$id-$dir" : "utf$lang$face$id-$dir";
+ open(TEXTFM,">tfm/$filename.tfm") || die "Can't make \'tfm/$filename.tfm\'!\n";
+ binmode(TEXTFM);
+ if ($dir eq 'h') {
+ foreach $binary(@tex_tfm_h) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }elsif ($dir eq 'v'){
+ foreach $binary(@tex_tfm_v) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }
+ close(TEXTFM);
+ }
+}
+
+sub make_ucs_tfm_body {
+ my ($face, $dir, $lang)=@_;
+
+ {
+ $id = '-';
+ $filename="utf$lang$face$id-$dir";
+ open(TEXTFM,">tfm/$filename.tfm") || die "Can't make \'tfm/$filename.tfm\'!\n";
+ binmode(TEXTFM);
+ if ($dir eq 'h') {
+ if ($lang eq 'j') {
+ @tex_tfm = @tex_tfm_ucs_h;
+ } else {
+ @tex_tfm = @tex_tfm_h;
+ }
+ foreach $binary(@tex_tfm ) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }elsif ($dir eq 'v'){
+ foreach $binary(@tex_tfm_v) {$_ = pack("C", $binary);print TEXTFM "$_";}
+ }
+ close(TEXTFM);
+ }
+}
+
+sub make_dvipstfm_body {
+ my ($face, $dir, $lang)=@_;
+=comment
+ ## mktfm.pl does similar procedure.
+ $varfilename="otf-u$lang$face-$dir";
+ open(DVIPSTFM,">tfm/$varfilename.tfm") || die "Can't make \'tfm/$varfilename.tfm\'!\n";
+ if ($i==0) {
+ foreach $binary(@dvips_tfm_h) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }elsif ($i==1){
+ foreach $binary(@dvips_tfm_v) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }
+ close(DVIPSTFM);
+=cut
+ $varfilename= "otf-u$lang$face-$dir";
+ open(DVIPSTFM,">tfm/$varfilename.tfm") || die "Can't make \'tfm/$varfilename.tfm\'!\n";
+ binmode(DVIPSTFM);
+ if ($dir eq 'h') {
+ if ($lang eq 'j') {
+ @dvips_tfm = @dvips_tfm_ucs_h;
+ } else {
+ @dvips_tfm = @dvips_tfm_h;
+ }
+ foreach $binary(@dvips_tfm ) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }elsif ($dir eq 'v'){
+ foreach $binary(@dvips_tfm_v) {$_ = pack("C", $binary);print DVIPSTFM "$_";}
+ }
+ close(DVIPSTFM);
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl
new file mode 100755
index 00000000000..377659d3983
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl
@@ -0,0 +1,162 @@
+#!/usr/bin/perl -n -s
+
+=head1 NAME
+
+mkutf32list.pl
+
+=head1 USAGE
+
+mkutf32list.pl cid2code.txt > sp_jp_text.tex
+mkutf32list.pl -style=utf cid2code.txt > sp_jp_utf.tex
+mkutf32list.pl -style=kchar cid2code.txt > sp_jp_kchar.tex
+mkutf32list.pl -style=list cid2code.txt > sp_list_j.txt
+mkutf32list.pl -style=list-wo-collec cid2code.txt > sp_list_ja.txt
+mkutf32list.pl -allrange cid2code.txt > sp_jp_text.tex
+
+=head1 AUTHOR
+
+Takuji Tanaka
+
+=head1 NOTE
+
+This software is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+
+=cut
+
+use strict;
+binmode(STDOUT, ":utf8");
+
+our ($style, $allrange);
+our (@count, %reset_ch, $icollec, $cid2code, $line);
+our ($col_utf32, @out);
+our (@cid_max, $collection_n, $collection, $utfmac, $cmap, $source);
+
+BEGIN{
+ $line = 0;
+ @count = ();
+ %reset_ch = ();
+ $icollec = 0;
+ @out = ();
+}
+
+if (/cid2code/) {
+ chomp;
+ s/^# /# in /;
+ $cid2code=$_;
+ $cid2code=~s/^#/%/;
+}
+
+if ($.<8 && /((Adobe-(?:Japan|CNS|GB|Korea).*)-\d)\s/) {
+ $collection_n=$1;
+ $collection=$2;
+ if ($collection =~ /cns/i) {
+ @cid_max = qw/-1 14098 17407 17600 18845 18964 19087 19155 19178/;
+ $utfmac="UTFT"; $cmap="UniCNS-UTF32";
+ $source="Adobe-CNS1-7/cid2code.txt"; }
+ elsif ($collection =~ /gb/i) {
+ @cid_max = qw/-1 7716 9896 22126 22352 29063 30283/;
+ $utfmac="UTFC"; $cmap="UniGB-UTF32";
+ $source="Adobe-GB1-5/cid2code.txt"; }
+ elsif ($collection =~ /kor/i) {
+ @cid_max = qw/-1 9332 18154 18351/;
+ $utfmac="UTFK"; $cmap="UniKS-UTF32";
+ $source="Adobe-Korea1-2/cid2code.txt"; }
+ else {
+ @cid_max = qw/-1 8283 8358 8719 9353 15443 20316 23057 23059/;
+ $utfmac="UTF"; $cmap="UniJIS-UTF32";
+ $source="Adobe-Japan1-7/cid2code.txt"; }
+}
+
+next if (/^#/);
+$line++;
+if ($line == 1) {
+ print <<END;
+%
+% This file is generated from the data of $cmap
+$cid2code
+% for $collection_n
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% $source
+%
+% A newer CMap may be required for some code points.
+%
+END
+}
+if (/^CID/) {
+ my @header = split;
+ my $i=0;
+ foreach (@header) {
+ if (/^Uni(JIS|KS|CNS|GB)-UTF32$/) {
+ $col_utf32 = $i;
+ last;
+ }
+ $i++
+ }
+ next;
+}
+
+my @list = split;
+my $cid = $list[0];
+my @utf32 = split ',', $list[$col_utf32];
+
+foreach (@utf32) {
+ s/^0+//;
+
+ next if ($_ eq '*');
+ next if ($_ =~ '^[1-7][0-9a-f]$|^.$');
+ next if ($_ =~ 'v');
+ tr/a-z/A-Z/;
+ my $ch=hex($_);
+ next if ($ch < 0x10000 && !$allrange);
+
+ while(!($cid_max[$icollec+1]>=$cid && $cid>$cid_max[$icollec])) {
+ $icollec++;
+ if ($icollec>@cid_max) {
+ die "CID:$cid (Character $_) is out of range!!\n";
+ }
+ }
+ if ($count[$icollec]==0) {
+ $reset_ch{$ch}=$icollec;
+ }
+ $count[$icollec]++;
+ push @out, $ch;
+}
+
+
+END {
+ my ($i, $out, $ch);
+
+ if ($style eq "list-wo-collec") { @out = sort(@out); }
+
+ foreach $ch (@out) {
+ if ($style eq "list-wo-collec") {}
+ elsif (defined($reset_ch{$ch})) {
+ $i=0;
+ print "\n\n";
+ print "%" if ($style =~ /list/);
+ print "$collection-$reset_ch{$ch}";
+ print "\\\\" if ($style !~ 'list');
+ print "\n";
+ }
+
+ $i++;
+ if ($style =~ /utf/) { $out=sprintf "\\${utfmac}{%X}", $ch; }
+ elsif ($style =~ /kchar/) { $out=sprintf "\\kchar\"%X", $ch; }
+ elsif ($style =~ /list/) { $out=sprintf "%X", $ch; }
+ else { $out=chr($ch); }
+ my ($newline);
+ $newline = $allrange ? 25 : 10;
+ if ($i % $newline != 1) {
+ print "," if ($style =~ /list/);
+ }
+ print $out;
+ if ($i % $newline == 0) {
+ print "%" if ($style =~ /utf/);
+ print "\n" ;
+ }
+ }
+
+ print "\n\n% end\n";
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutfvf.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutfvf.pl
new file mode 100644
index 00000000000..6eebef57dea
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutfvf.pl
@@ -0,0 +1,93 @@
+#!/usr/bin/perl
+$multi=3;
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+&makejvf;
+&makemlvf;
+
+sub makejvf {
+ for ($k=0; $k<=6; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}elsif ($k==2){$face="mb";}
+ elsif ($k==3){$face="gb";}elsif ($k==4){$face="mgr";}elsif ($k==5){$face="ml";}
+ elsif ($k==6){$face="ge";}
+ for ($l=0; $l<=0; $l++){#language
+ if ($l==0) {$lang="j";} elsif ($l==1) {$lang="k";}
+ elsif ($l==2) {$lang="c";} elsif ($l==3){$lang="t";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ for ($first_hex=0x0; $first_hex <= 0xf; $first_hex++){
+ $filename="utf$lang$face".sprintf("%x",$first_hex)."-$dir";
+ open(OUT, ">ovp/$filename.ovp")||die "$!";
+ &fonthead;
+ print OUT " (FONTNAME otf-u$lang$face-$dir)\n";
+ &fontfoot;
+ &writechar($first_hex);
+ close(OUT);
+ system("ovp2ovf ovp/$filename.ovp vf/$filename.vf vf/$filename.ofm");
+ unlink "vf/$filename.ofm";
+ }
+ }
+ }
+ }
+}
+sub makemlvf {
+ for ($k=0; $k<=1; $k++){#face
+ if ($k==0) {$face="mr";}elsif ($k==1){$face="gr";}elsif ($k==2){$face="mb";}
+ elsif ($k==3){$face="gb";}elsif ($k==4){$face="mgr";}elsif ($k==5){$face="ml";}
+ elsif ($k==6){$face="ge";}
+ for ($l=1; $l<=$multi; $l++){#language
+ if ($l==0) {$lang="j";} elsif ($l==1) {$lang="k";}
+ elsif ($l==2) {$lang="c";} elsif ($l==3){$lang="t";}
+ for ($i=0; $i<=1; $i++){#direction
+ if ($i==0) {$dir="h";}elsif ($i==1){$dir="v";}
+ for ($first_hex=0x0; $first_hex <= 0xf; $first_hex++){
+ $filename="utf$lang$face".sprintf("%x",$first_hex)."-$dir";
+ open(OUT, ">ovp/$filename.ovp")||die "$!";
+ &fonthead;
+ print OUT " (FONTNAME otf-u$lang$face-$dir)\n";
+ &fontfoot;
+ &writechar($first_hex);
+ close(OUT);
+ system("ovp2ovf ovp/$filename.ovp vf/$filename.vf vf/$filename.ofm");
+ unlink "vf/$filename.ofm";
+ }
+ }
+ }
+ }
+}
+
+sub fonthead {
+print OUT <<END_OF_DATA;
+(VTITLE JVF for UTF16)
+(OFMLEVEL D 0)
+(DESIGNSIZE R 10.000000)
+(CHECKSUM O 0)
+(MAPFONT D 0
+END_OF_DATA
+}
+
+sub fontfoot {
+print OUT <<END_OF_DATA;
+ (FONTCHECKSUM O 0)
+ (FONTAT R 1.0)
+ (FONTDSIZE R 10.000000)
+ )
+END_OF_DATA
+}#2003/10/22 FONTAT 0.962216->1.0
+
+sub writechar {
+ ($hex) = @_;
+ for ($ku=16; $ku <= 79; $ku++){#2002/1/27 120->79
+ for ($ten=16; $ten <= 79; $ten++){
+ $jis=sprintf("%X", $ku*256 + $ten + 0x2020);
+ if ($ku>=16 && $ku<=79 && $ten>=16 && $ten<=79){
+ $uni=$hex*4096 + ($ku-16)*64 + ($ten-16);
+# } else {
+# $uni=0x3013;
+ }
+ $wd = ($lang eq 'j' && $dir eq 'h' && $uni>=0xFF61 && $uni<=0xFF9F) ? '0.5' : '1.0';
+ $uni=sprintf("%X", $uni);
+ print OUT "(CHARACTER H $jis (CHARWD R $wd) (MAP (SETCHAR H $uni)))\n";
+ }
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutfvf_sp.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutfvf_sp.pl
new file mode 100755
index 00000000000..97ea89f2af1
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutfvf_sp.pl
@@ -0,0 +1,209 @@
+#!/usr/bin/perl -s
+
+=head1 NAME
+
+mkutfvf_sp.pl
+
+=head1 USAGE
+
+script/mkutfvf_sp.pl
+script/mkutfvf_sp.pl -debug
+script/mkutfvf_sp.pl -ovp2ovf='wovp2ovf'
+
+=head1 NOTE
+
+This software is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+
+=cut
+
+use FindBin;
+use lib "$FindBin::Bin";
+use MakeSPList;
+
+if (!defined($ovp2ovf)) { ## check option '-ovp2ovf=????'
+ $ovp2ovf = defined($ENV{'OVP2OVF'}) ? $ENV{'OVP2OVF'} : 'ovp2ovf';
+}
+
+$multi=3;
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+
+my @face = qw/mr gr mb gb mgr ml ge/;
+my @lang = qw/j t c k/; ## priority: j > t > c > k
+my %lang_id; foreach $_ (0..$#lang) { $lang_id{$lang[$_]}=$_; }
+my @dir = qw/h v/;
+my %font_id = qw/1b g 1d h 1e i 1f j
+ 20 k 21 l 22 m 23 n 24 o 25 p 26 q 27 r
+ 28 s 29 t 2a u 2b v 2c w 2d x 2e y 2f z/;
+
+&MakeSPList::make_sp_char_list(@lang);
+
+&makejvf;
+&makemlvf;
+&makeunivf;
+
+sub makejvf {
+ foreach $lang ($lang[0]){ #language, japanase
+ foreach $newjis ('', 'n') {
+ foreach $face (@face){ #face
+ $face0 = $face.$newjis;
+ foreach $dir (@dir){ #direction
+ &make_ucs_vf_body($face0, $dir, $lang);
+ }
+ }
+ }
+ foreach $face (@face){ #face
+ foreach $dir (@dir){ #direction
+ &makevf_body($face, $dir, $lang);
+ }
+ }
+ }
+}
+sub makemlvf {
+ foreach $lang (@lang[1..$multi]){ #language, t c k
+ foreach $face (@face){ #face
+ foreach $dir (@dir){ #direction
+ &make_ucs_vf_body($face, $dir, $lang);
+ }
+ }
+ foreach $face (@face[0..1]){ #face
+ foreach $dir (@dir){ #direction
+ &makevf_body($face, $dir, $lang);
+ }
+ }
+ }
+}
+sub makeunivf {
+ foreach $face (@face[0..1]){ #face
+ foreach $dir (@dir){ #direction
+ &make_uni_vf_body($face, $dir, @lang);
+ }
+ }
+}
+
+sub makevf_body {
+ my ($face, $dir, $lang)=@_;
+
+ my @exist_head=@{$MakeSPList::r_exist_head->{$lang}};
+ foreach $first_hex (0x1b, 0x1d .. 0x2f) { # U+1Cxxx : not defined yet
+ next if (!$exist_head[$first_hex]);
+
+ $HEX = sprintf("%02X", $first_hex);
+ $id = $font_id{sprintf("%02x", $first_hex)};
+ warn "now processing (face:$face, dir:$dir, lang:$lang, first_hex:$HEX, ID:$id) ...\n";
+ $filename="utf$lang$face$id-$dir";
+ open(OUT, ">ovp/$filename.ovp")||die "$!";
+ &fonthead;
+ print OUT "(MAPFONT D 0\n (FONTNAME otf-u$lang$face-$dir)\n";
+ &fontfoot;
+ &writechar($first_hex, $lang);
+ close(OUT);
+ unless ($debug){
+ system("$ovp2ovf ovp/$filename.ovp vf/$filename.vf vf/$filename.ofm");
+ unlink "vf/$filename.ofm";
+ }
+ }
+}
+
+sub make_uni_vf_body {
+ my ($face, $dir, @ln)=@_;
+ my $lang = join ',', @ln;
+
+ my @exist_head=@{$MakeSPList::r_exist_head->{$lang}};
+ foreach $first_hex (0x1b, 0x1d .. 0x2f) { # U+1Cxxx : not defined yet
+ next if (!$exist_head[$first_hex]);
+
+ $HEX = sprintf("%02X", $first_hex);
+ $id = $font_id{sprintf("%02x", $first_hex)};
+ warn "now processing (face:$face, dir:$dir, lang:MULTI, first_hex:$HEX, ID:$id) ...\n";
+ $filename="utf$face$id-$dir";
+ open(OUT, ">ovp/$filename.ovp")||die "$!";
+ &fonthead;
+ foreach $l (0 .. $#ln){
+ next if ($exist_head[$first_hex]!~/$ln[$l]/);
+ print OUT "(MAPFONT D $l\n (FONTNAME otf-u$lang[$l]$face-$dir)\n";
+ &fontfoot;
+ }
+ &writechar($first_hex, @ln);
+ close(OUT);
+ unless ($debug){
+ system("$ovp2ovf ovp/$filename.ovp vf/$filename.vf vf/$filename.ofm");
+ unlink "vf/$filename.ofm";
+ }
+ }
+}
+
+sub make_ucs_vf_body {
+ my ($face, $dir, $lang)=@_;
+
+ {
+ $id = '-';
+ warn "now processing (face:$face, dir:$dir, lang:$lang, ucs vf, ID:$id) ...\n";
+ $filename="utf$lang$face$id-$dir";
+ open(OUT, ">ovp/$filename.ovp")||die "$!";
+ &fonthead;
+ print OUT "(MAPFONT D 0\n (FONTNAME otf-u$lang$face-$dir)\n";
+ &fontfoot;
+ &writechar_ucs($dir) if ($lang eq 'j');
+ close(OUT);
+ unless ($debug){
+ system("$ovp2ovf ovp/$filename.ovp vf/$filename.vf vf/$filename.ofm");
+ unlink "vf/$filename.ofm";
+ }
+ }
+}
+
+sub fonthead {
+print OUT <<END_OF_DATA;
+(VTITLE JVF for UTF16)
+(OFMLEVEL D 0)
+(DESIGNSIZE R 10.000000)
+(CHECKSUM O 0)
+END_OF_DATA
+}
+
+sub fontfoot {
+print OUT <<END_OF_DATA;
+ (FONTCHECKSUM O 0)
+ (FONTAT R 1.0)
+ (FONTDSIZE R 10.000000)
+ )
+END_OF_DATA
+}
+
+sub writechar {
+ my ($hex, @ln) = @_;
+ my $lang = join ',', @ln;
+ my %exist_char=%{$MakeSPList::r_exist_char->{$lang}};
+
+ foreach $ku (16 .. 79){
+ foreach $ten (16 .. 79){
+ $jis=sprintf("%X", $ku*256 + $ten + 0x2020);
+ $uni=sprintf("%X", $hex*0x1000 + ($ku-16)*64 + ($ten-16));
+ my $echr=$exist_char{$uni};
+ if ($echr) {
+ #warn("lang: $lang, jis: $jis, uni: $uni\n");
+ print OUT "(CHARACTER H $jis (CHARWD R 1.0) (MAP \n";
+ if (@ln>1 && $echr !~ $ln[0]) {
+ foreach $l (1 .. $#ln) {
+ if ($echr =~ /$ln[$l]/){
+ print OUT " (SELECTFONT D $lang_id{$ln[$l]})\n";
+ last;
+ }
+ }
+ }
+ print OUT " (SETCHAR H $uni)))\n";
+ }
+ }
+ }
+}
+
+sub writechar_ucs {
+ my ($dir) = @_;
+ my $wd = $dir eq 'h' ? '0.5' : '1.0';
+ foreach $uni (0xFF61 .. 0xFF9F){
+ my $uniX = sprintf("%X", $uni);
+ print OUT "(CHARACTER H $uniX (CHARWD R $wd) (MAP \n";
+ print OUT " (SETCHAR H $uniX)))\n";
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkvpkana.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkvpkana.pl
new file mode 100644
index 00000000000..f4482df6932
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkvpkana.pl
@@ -0,0 +1,281 @@
+#!/usr/bin/perl -s
+
+@min_w3=(7.17, 8.34, 7.77, 8.32, 9.96, 9.03, 9.60, 7.75, 8.19, 9.42, 9.98, 8.89, 9.47, 8.65, 9.14, 8.99, 9.10, 9.71, 9.71, 9.99, 9.79, 9.52, 9.76, 9.26, 9.44, 9.67, 9.71, 9.42, 9.63, 9.39, 9.61, 9.18, 9.47, 9.45, 9.56, 9.23, 9.48, 9.61, 9.67, 7.96, 8.24, 8.99, 8.69, 8.76, 9.75, 9.69, 9.48, 8.95, 8.98, 9.25, 8.82, 9.28, 9.57, 9.70, 9.19, 9.46, 9.72, 9.05, 9.16, 9.15, 7.21, 8.13, 8.43, 9.23, 9.61, 9.65, 9.76, 9.17, 9.37, 9.18, 9.76, 8.69, 9.38, 8.73, 9.22, 8.95, 9.63, 9.66, 9.82, 9.59, 9.21, 9.66, 8.58, 9.28, 9.37, 9.65, 9.64, 9.20, 8.45, 8.96, 8.81, 9.29, 8.89, 9.38, 7.81, 8.12, 8.76, 9.21, 9.26, 9.27, 9.25, 9.56, 9.25, 9.49, 9.19, 9.60, 8.32, 8.83, 9.17, 9.53, 8.39, 9.10, 8.61, 9.24, 8.67, 9.26, 8.89, 9.52, 9.31, 9.56, 9.20, 9.35, 8.33, 8.80, 9.48, 9.13, 9.38, 9.58, 9.63, 9.11, 8.01, 9.06, 9.45, 8.80, 7.42, 8.16, 8.55, 8.79, 9.20, 9.39, 8.91, 9.47, 9.56, 7.09, 8.05, 8.35, 9.07, 9.39, 9.64, 8.10, 9.25, 8.79, 8.88, 8.74, 8.52, 8.98, 7.76, 8.09, 8.38, 8.80, 9.29, 9.75, 8.50, 8.35, 8.42, 8.56, 9.03, 9.35, 8.34, 9.17, 8.11, 9.47, 8.73, 8.53);
+@min_w6=(7.46, 8.44, 7.98, 8.54, 9.98, 9.15, 9.79, 7.92, 8.47, 9.47, 9.99, 9.12, 9.74, 8.89, 9.48, 9.24, 9.39, 9.93, 9.86, 9.99, 9.98, 9.64, 9.82, 9.47, 9.60, 9.84, 9.85, 9.53, 9.74, 9.61, 9.83, 9.45, 9.66, 9.66, 9.74, 9.47, 9.68, 9.78, 9.80, 8.04, 8.42, 9.15, 8.92, 8.95, 9.89, 9.89, 9.66, 9.17, 9.23, 9.54, 8.99, 9.55, 9.76, 9.82, 9.36, 9.64, 9.80, 9.39, 9.47, 9.43, 7.43, 8.33, 8.58, 9.46, 9.74, 9.81, 9.88, 9.36, 9.58, 9.41, 9.91, 8.83, 9.54, 8.82, 9.40, 9.17, 9.83, 9.82, 9.85, 9.80, 9.43, 9.79, 8.73, 9.45, 9.59, 9.82, 9.79, 9.40, 8.50, 9.20, 8.92, 9.46, 8.93, 9.56, 8.04, 8.39, 8.84, 9.41, 9.48, 9.50, 9.41, 9.65, 9.37, 9.57, 9.32, 9.65, 8.59, 9.13, 9.37, 9.65, 8.61, 9.21, 8.85, 9.44, 8.93, 9.40, 9.06, 9.64, 9.42, 9.61, 9.40, 9.51, 8.43, 8.97, 9.61, 9.34, 9.62, 9.74, 9.75, 9.35, 8.31, 9.33, 9.64, 9.13, 7.65, 8.44, 8.74, 9.06, 9.35, 9.55, 9.06, 9.63, 9.67, 7.38, 8.32, 8.58, 9.32, 9.58, 9.73, 8.38, 9.47, 9.10, 9.18, 9.00, 8.68, 9.19, 7.99, 8.33, 8.55, 9.05, 9.47, 9.89, 8.83, 8.71, 8.71, 8.65, 9.15, 9.58, 8.65, 9.39, 8.30, 9.62, 8.90, 8.64);
+@goth_w3=(7.92, 8.46, 8.44, 8.80, 9.99, 9.01, 9.60, 8.09, 8.46, 8.97, 9.58, 8.84, 9.42, 8.86, 9.39, 9.26, 9.41, 9.73, 9.80, 9.56, 9.49, 9.54, 9.56, 9.38, 9.23, 9.67, 9.86, 9.38, 9.71, 9.30, 9.60, 9.44, 9.53, 9.40, 9.43, 9.39, 9.59, 9.63, 9.85, 8.23, 8.62, 9.26, 8.89, 8.92, 9.59, 9.81, 9.48, 9.19, 9.34, 9.52, 9.02, 9.50, 9.67, 9.84, 9.18, 9.40, 9.71, 9.25, 9.29, 9.33, 7.84, 8.21, 8.56, 9.45, 9.65, 9.70, 9.57, 9.24, 9.49, 9.38, 9.48, 8.89, 9.52, 8.88, 9.40, 9.03, 9.63, 9.50, 9.75, 9.55, 9.40, 9.55, 8.71, 9.38, 9.46, 9.64, 9.62, 9.32, 8.55, 9.19, 8.63, 9.28, 8.82, 9.40, 8.33, 8.77, 8.76, 9.29, 9.46, 9.66, 9.40, 9.78, 9.33, 9.39, 9.14, 9.47, 9.13, 9.52, 9.34, 9.39, 8.88, 9.31, 9.00, 9.44, 9.17, 9.63, 8.98, 9.56, 9.41, 9.53, 9.14, 9.18, 8.55, 9.01, 9.50, 9.28, 9.27, 9.35, 9.45, 9.08, 8.62, 9.17, 9.53, 8.77, 8.71, 8.82, 9.09, 9.33, 9.70, 9.83, 9.01, 9.58, 9.31, 7.79, 8.30, 8.47, 9.47, 9.74, 9.83, 8.95, 9.25, 9.19, 8.95, 9.25, 8.79, 9.37, 8.31, 8.70, 8.83, 9.38, 9.35, 9.64, 9.33, 9.00, 9.23, 8.69, 9.21, 9.31, 8.95, 9.27, 8.51, 9.49, 8.93, 8.41);
+@goth_w6=(8.27, 8.62, 8.69, 8.92, 9.99, 9.18, 9.77, 8.40, 8.80, 9.20, 9.80, 9.15, 9.70, 9.06, 9.67, 9.47, 9.67, 9.88, 9.96, 9.77, 9.70, 9.79, 9.76, 9.67, 9.60, 9.85, 9.97, 9.53, 9.86, 9.55, 9.84, 9.70, 9.79, 9.65, 9.65, 9.59, 9.81, 9.81, 9.97, 8.47, 8.87, 9.44, 9.19, 9.19, 9.82, 9.96, 9.65, 9.42, 9.57, 9.68, 9.28, 9.75, 9.82, 9.97, 9.40, 9.61, 9.79, 9.50, 9.54, 9.53, 8.20, 8.52, 8.84, 9.71, 9.89, 9.90, 9.74, 9.48, 9.71, 9.58, 9.68, 9.10, 9.70, 9.08, 9.63, 9.28, 9.82, 9.74, 9.88, 9.77, 9.59, 9.79, 8.93, 9.54, 9.68, 9.86, 9.83, 9.54, 8.76, 9.44, 8.88, 9.48, 9.03, 9.59, 8.65, 9.06, 8.99, 9.51, 9.68, 9.79, 9.60, 9.87, 9.53, 9.69, 9.35, 9.59, 9.40, 9.78, 9.53, 9.58, 9.11, 9.39, 9.30, 9.68, 9.43, 9.78, 9.21, 9.63, 9.60, 9.74, 9.39, 9.40, 8.77, 9.26, 9.64, 9.50, 9.51, 9.51, 9.68, 9.37, 8.93, 9.43, 9.73, 9.02, 9.00, 9.07, 9.23, 9.51, 9.83, 9.92, 9.29, 9.74, 9.51, 8.15, 8.50, 8.85, 9.71, 9.90, 9.98, 9.19, 9.51, 9.42, 9.18, 9.46, 8.94, 9.53, 8.62, 9.01, 9.11, 9.62, 9.64, 9.84, 9.58, 9.18, 9.47, 8.91, 9.43, 9.59, 9.25, 9.49, 8.78, 9.69, 9.11, 8.66);
+@maru_w4=(8.13, 8.50, 8.62, 8.98, 9.98, 9.17, 9.75, 8.59, 8.83, 9.19, 9.79, 9.05, 9.59, 9.08, 9.61, 9.45, 9.60, 9.82, 9.92, 9.47, 9.50, 9.66, 9.62, 9.57, 9.49, 9.77, 9.95, 9.53, 9.72, 9.43, 9.68, 9.54, 9.63, 9.57, 9.59, 9.59, 9.72, 9.68, 9.92, 8.60, 8.98, 9.42, 9.16, 9.23, 9.65, 9.93, 9.62, 9.40, 9.49, 9.62, 9.24, 9.66, 9.76, 9.92, 9.41, 9.61, 9.81, 9.46, 9.49, 9.52, 8.32, 8.58, 8.78, 9.67, 9.79, 9.87, 9.64, 9.38, 9.64, 9.53, 9.60, 8.99, 9.62, 9.03, 9.58, 9.09, 9.61, 9.79, 9.79, 9.70, 9.55, 9.73, 8.86, 9.54, 9.57, 9.80, 9.71, 9.45, 8.92, 9.41, 8.75, 9.35, 8.94, 9.46, 8.84, 9.30, 8.90, 9.38, 9.52, 9.71, 9.39, 9.78, 9.44, 9.66, 9.37, 9.64, 9.40, 9.70, 9.49, 9.62, 9.53, 9.84, 9.22, 9.58, 9.40, 9.78, 9.12, 9.61, 9.56, 9.76, 9.31, 9.34, 8.77, 9.20, 9.70, 9.45, 9.64, 9.33, 9.62, 9.31, 9.17, 9.44, 9.49, 8.92, 8.97, 9.34, 9.44, 9.46, 9.74, 9.89, 9.28, 9.61, 9.72, 8.32, 8.59, 8.86, 9.50, 9.80, 9.92, 9.16, 9.40, 9.33, 9.15, 9.47, 8.88, 9.41, 8.79, 9.25, 9.19, 9.73, 9.61, 9.69, 9.42, 9.17, 9.59, 8.97, 9.47, 9.42, 9.41, 9.49, 8.79, 9.63, 9.00, 8.69);
+@charwidth=([@min_w3], [@min_w6], [@goth_w3], [@goth_w6], [@maru_w4]);
+@character=("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "");
+@font_name=("phiraminw3-v", "phiraminw6-v", "phirakakuw3-v", "phirakakuw6-v", "phiramaruw4-v");
+@kanji_font_name=("hminr-v", "hminb-v", "hgothr-v", "hgothb-v", "hmgothr-v");
+@kana_font_name=("hiramin-w3-v", "hiramin-w6-v", "hirakaku-w3-v", "hirakaku-w6-v", "hiramaru-w4-v");
+$font_at=1.0;
+$half_width= ($font_at / 2);
+$quater_width= ($font_at / 4);
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+opendir(JPL, "pl") || mkdir("pl",0755) || die "cannot mkdir pl";
+opendir(JFM, "tfm") || mkdir("tfm",0755) || die "cannot mkdir tfm";
+closedir(OVP);
+closedir(VF);
+closedir(JPL);
+closedir(JFM);
+
+#main
+for ($i=0; $i<=4; $i++){
+ open (JPL, ">pl/$font_name[$i].pl");
+ &tfm_head_v;
+ &chars_in_type_jis;
+ &chars_in_type_prop;
+ &print_type_jis;
+ &print_type_prop;
+ &glue_kern;
+ close(JPL);
+}
+for ($i=0; $i<=4; $i++){
+ @prop_odori_v=(0x3E68, 0x3E69, 0x3E6A, 0x3E6B, 0x3E6E);
+ @cpm_v=(0x1ECF, 0x01ED0, 0x2F8D, 0x2F8E, 0x1F14, 0x1F15);
+ $hiracode=15985;
+ $katacode=16076;
+ $prop_char_num=0;
+ open (OVP, ">ovp/$font_name[$i].ovp");
+ &fonthead;
+ &write_char;
+ close(OVP);
+}
+#
+#sub rtn
+#
+sub tfm_head_v {
+ print JPL "(DIRECTION TATE)\n";
+ print JPL "(FAMILY PROP KANA)\n";
+ print JPL "(FACE F MRR)\n";
+ print JPL "(CODINGSCHEME TEX KANJI TEXT)\n";
+ print JPL "(DESIGNSIZE R 10.0)\n";
+ print JPL "(CHECKSUM O 0)\n";
+ print JPL "(SEVENBITSAFEFLAG TRUE)\n";
+ print JPL "(FONTDIMEN\n";
+ print JPL " (SLANT R 0.0)\n";
+ print JPL " (SPACE R 0.0)\n";
+ printf JPL " (STRETCH R %f)\n", $font_at/10;
+ print JPL " (SHRINK R 0.0)\n";
+ printf JPL " (XHEIGHT R %f)\n", $font_at;
+ printf JPL " (QUAD R %f)\n", $font_at;
+ printf JPL " (EXTRASPACE R %f)\n", $font_at/4;
+ printf JPL " (EXTRASTRETCH R %f)\n", $font_at/5;
+ printf JPL " (EXTRASHRINK R %f)\n", $font_at/8;
+ print JPL " )\n";
+}
+sub char_foot_h {
+ printf JPL " (CHARHT R %f)\n", $font_at*0.88;
+ printf JPL " (CHARDP R %f)\n", $font_at*0.12;
+ print JPL " )\n";
+}
+sub glue_kern{
+ print JPL "(GLUEKERN\n";
+ print JPL " (LABEL O 5)\n";
+ print JPL " (KRN O 5 R 0.0)\n";
+ print JPL " (LABEL O 0)\n";
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (LABEL H %X)\n",($char+7);
+ }
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ print JPL " (LABEL O 1)\n";
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 2)\n";
+ printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ print JPL " (LABEL O 6)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+7), $half_width, $half_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 4)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width+$quater_width, $quater_width;
+ printf JPL " (GLUE O 5 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R 0.0)\n", $half_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R 0.0)\n",($char+7), $half_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 3)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 2 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width, $quater_width;
+ printf JPL " (GLUE O 4 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+7), $quater_width, $quater_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " )\n";
+}
+sub chars_in_type_jis{
+print JPL <<END_OF_DATA;
+(CHARSINTYPE O 1
+
+ )
+(CHARSINTYPE O 2
+
+ )
+(CHARSINTYPE O 3
+
+ )
+(CHARSINTYPE O 4
+
+ )
+(CHARSINTYPE O 5
+
+ )
+(CHARSINTYPE O 6
+
+ )
+END_OF_DATA
+}
+sub print_type_jis{
+ @type_width=($font_at, $half_width, $half_width, $half_width, $half_width, $font_at, $font_at);
+ for ($k=0; $k<=6; $k++){
+ printf JPL "(TYPE H %x\n", $k;
+ printf JPL " (CHARWD R %f)\n", $type_width[$k];
+ &char_foot_h;
+ }
+}
+sub fonthead {
+ print OVP "(VTITLE Prop Kana)\n";
+ print OVP "(OFMLEVEL D 0)\n";
+ print OVP "(DESIGNSIZE R 10.000000)\n";
+ print OVP "(CHECKSUM O 0)\n";
+ print OVP "(MAPFONT D 1\n";
+ print OVP " (FONTNAME $kanji_font_name[$i])\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n", $font_at;
+ print OVP " (FONTDSIZE R 10.000000)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $kana_font_name[$i])\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n", $font_at;
+ print OVP " (FONTDSIZE R 10.000000)\n";
+ print OVP " )\n";
+}
+sub write_char {
+ for ($ku=1; $ku<=94; $ku++){
+ next if (!$allku && (($ku>=9&&$ku<=15) || $ku>=85));
+ for ($ten=1; $ten<=94; $ten++){
+ $jiscode=($ku+32)*256+($ten+32);
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_hira_char;}
+ elsif($ku==5){&print_kata_char;}else{&print_char;}
+ }
+ }
+}
+sub print_char{
+ return if ($omitfw);
+ $jiscode=($ku+32)*256+($ten+32);
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ printf OVP " (SETCHAR H %X)\n",$jiscode;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_kigo_char{
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ if ($jiscode>=0x2146 && $jiscode<=0x215B){#Kakko
+ $width=$half_width;
+ } elsif ($jiscode>=0x2122 && $jiscode<=0x2128){#Kutouten
+ $width=$half_width;
+ } elsif ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#odoriji
+ $width=($charwidth[$i][$prop_char_num]/10);
+ $prop_char_num++;
+ } else{
+ $width=$font_at;
+ }
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ if ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#Odoriji, Cho-on
+ print OVP " (SELECTFONT D 2)\n";
+ } elsif ((0x2124 <= $jiscode && $jiscode <= 0x2125) || (0x2146 <= $jiscode && $jiscode <= 0x2149)){#Comma, Period, Minute
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ if (0x2126 <= $jiscode && $jiscode <= 0x2128){#colon, semicolon, nakaten
+ printf OVP " (MOVERIGHT R -%f)\n",$quater_width;}
+ if (0x2146 <= $jiscode && $jiscode <= 0x215B && ($jiscode%2)==0){#Kakko
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ if ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#odoriji
+ $odorijicode= shift(@prop_odori_v);
+ printf OVP " (SETCHAR H %X)\n",$odorijicode;
+ } elsif((0x2124 <= $jiscode && $jiscode <= 0x2125) || (0x2146 <= $jiscode && $jiscode <= 0x2149)){#Comma, Period, Minute
+ $cpmcode= shift(@cpm_v);
+ printf OVP " (SETCHAR H %X)\n",$cpmcode;
+ } else {
+ printf OVP " (SETCHAR H %X)\n",$jiscode;
+ }
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_hira_char{
+ $width=($charwidth[$i][$prop_char_num]/10);
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 2)\n";
+ printf OVP " (SETCHAR H %X)\n",$hiracode;
+ print OVP " )\n";
+ print OVP " )\n";
+ $hiracode++;
+ if($ten<=83){$prop_char_num++;}
+}
+sub print_kata_char{
+ $width=($charwidth[$i][$prop_char_num]/10);
+ printf OVP "(CHARACTER H %X\n", $jiscode;
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 2)\n";
+ printf OVP " (SETCHAR H %X)\n",$katacode;
+ print OVP " )\n";
+ print OVP " )\n";
+ $katacode++;
+ $prop_char_num++;
+}
+sub chars_in_type_prop{
+ %char_width_hash=();
+ for ($j=0; $j<=$#min_w3; $j++){
+ $char_width_hash{$character[$j]}=$charwidth[$i][$j]/10;
+ }
+ $x = '-';
+ @uniq_char_width_array = grep( $_ ne $x && ($x = $_), sort values(%char_width_hash));
+ for ($j=0; $j<=$#uniq_char_width_array; $j++){
+ printf JPL "(CHARSINTYPE H %X\n",($j+7);
+ print JPL " ";
+ @char_in_this_type = ();
+ while (($name, $value) = each(%char_width_hash)) {
+ if ($value == $uniq_char_width_array[$j]){
+ push(@char_in_this_type, $name);
+ }
+ }
+ @char_in_this_type = sort @char_in_this_type;
+ foreach $char_in_this(@char_in_this_type){
+ print JPL "$char_in_this ";#character
+ }
+ print JPL "\n";
+ print JPL " )\n";
+ }
+}
+sub print_type_prop{
+ for ($j=0; $j<=$#uniq_char_width_array; $j++){
+ $char_width=$uniq_char_width_array[$j];
+ printf JPL "(TYPE H %X\n", ($j+7);
+ printf JPL " (CHARWD R %f)\n", $char_width;
+ &char_foot_h;
+ }
+}
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/otf-hangul.rb b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/otf-hangul.rb
new file mode 100755
index 00000000000..57a1a11a580
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/otf-hangul.rb
@@ -0,0 +1,51 @@
+#!/usr/bin/env ruby -w
+
+## otf-hangul.rb and otf-hangul.dfu
+#
+# This work may be distributed and/or modified under the
+# conditions of the LaTeX Project Public License, either version 1.3
+# of this license or (at your option) any later version.
+# The latest version of this license is in
+# http://www.latex-project.org/lppl.txt
+# and version 1.3 or later is part of all distributions of LaTeX
+# version 2005/12/01 or later.
+#
+# This work has the LPPL maintenance status `maintained'.
+#
+# The Current Maintainer of this work is KUROKI Yusuke.
+#
+# This work consists of the files otf-hangul.rb
+# and the derived file otf-hangul.dfu.
+
+print "%% otf-hangul.rb and otf-hangul.dfu
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is KUROKI Yusuke.
+%
+% This work consists of the files otf-hangul.rb
+% and the derived file otf-hangul.dfu.
+
+"
+
+def printline(i)
+ ihex = sprintf("%#0X", i).sub("0X", "")
+ print "\\DeclareUnicodeCharacter{", ihex, \
+ "}{\\UTFK{", ihex, "}}%\n"
+end
+
+print " \\ProvidesFile{otf-hangul.dfu}
+ [2010/06/20 v0.02 Hangul symbol, UTF-8 support for inputenc \& UTF/OTF packages]
+"
+
+for i in 0x1100 .. 0x11FF; printline(i); end
+for i in 0x3130 .. 0x318F; printline(i); end
+for i in 0xAC00 .. 0xD7AF; printline(i); end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_c.txt b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_c.txt
new file mode 100644
index 00000000000..a4699d6ea82
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_c.txt
@@ -0,0 +1,17 @@
+%
+% This file is generated from the data of UniGB-UTF32
+% in cid2code.txt (Version 12/05/2017)
+% for Adobe-GB1-5
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% Adobe-GB1-5/cid2code.txt
+%
+% A newer CMap may be required for some code points.
+%
+
+
+%Adobe-GB1-2
+20087,20089,200CC,215D7,2298F,20509,2099D,241FE
+
+% end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_j.txt b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_j.txt
new file mode 100644
index 00000000000..2092c5767a7
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_j.txt
@@ -0,0 +1,75 @@
+%
+% This file is generated from the data of UniJIS-UTF32
+% in cid2code.txt (Version 07/30/2019)
+% for Adobe-Japan1-7
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% Adobe-Japan1-7/cid2code.txt
+%
+% A newer CMap may be required for some code points.
+%
+
+
+%Adobe-Japan1-0
+28CDD,2F8ED,25874,28EF6,2F8DC,2F884,2F877,2F80F,2F8D3,2F818
+21A1A,243D0,2F920,1F100
+
+%Adobe-Japan1-4
+1F110,1F111,1F112,1F113,1F114,1F115,1F116,1F117,1F118,1F119
+1F11A,1F11B,1F11C,1F11D,1F11E,1F11F,1F120,1F121,1F122,1F123
+1F124,1F125,1F126,1F127,1F128,1F129,1F150,1F151,1F152,1F153
+1F154,1F155,1F156,1F157,1F158,1F159,1F15A,1F15B,1F15C,1F15D
+1F15E,1F15F,1F160,1F161,1F162,1F163,1F164,1F165,1F166,1F167
+1F168,1F169,1F130,1F131,1F132,1F133,1F134,1F135,1F136,1F137
+1F138,1F139,1F13A,1F13B,1F13C,1F13D,1F13E,1F13F,1F140,1F141
+1F142,1F143,1F144,1F145,1F146,1F147,1F148,1F149,1F202,1F237
+1F170,1F171,1F172,1F173,1F174,1F175,1F176,1F177,1F178,1F179
+1F17A,1F17B,1F17C,1F17D,1F17E,1F17F,1F180,1F181,1F182,1F183
+1F184,1F185,1F186,1F187,1F188,1F189,1F79C,2F945,2090E,26951
+2B7D8,2F8FC,2F995,2F8EA,2F822,26222,20BB7,29D4B,2F833,2B78E
+2F8AC,20A64,2F903,2B746,2B777,2F90B,20B9F,2F828,2F921,2F83F
+2F873,2D544,2000B,2F852,2967F,2F947,201A2,2E569,2B751,2F8B2
+27FB7,23CFE,2F91A,25AD7,2F89A,2F90F,2123D,2F81A,24D14,2F862
+2B789,2F9D0,2F9DF,2567F,266B0,20628,2008A,20984,2F82C,2F86D
+2F8B6,26999,233CC,2F8DB,2A9E6,2B7BD,2F96C,2E278,2053F,2626A
+200B0,2E6EA,28987,28E17,2B81A,242EE,2F8E1,23CBE,20611,2F9F4
+2F804,2363A,233FE,22609
+
+%Adobe-Japan1-5
+2131B,2146E,218BD,216B4,21E34,231C4,235C4,2373F,23763,247F1
+2548E,2550E,25771,259C4,25DA1,26AFF,26E40,270F4,27684,28277
+283CD,2A190,20089,200A2,200A4,20213,2032B,20381,20371,203F9
+2044A,20509,205D6,2074F,20807,2083A,208B9,2097C,2099D,20AD3
+20B1D,20D45,20DE1,20E95,20E6D,20E64,20F5F,21201,21255,2127B
+21274,212E4,212D7,212FD,21336,21344,213C4,2146D,215D7,26C29
+21647,21706,21742,219C3,21C56,21D2D,21D45,21D78,21D62,21DA1
+21D9C,21D92,21DB7,21DE0,21E33,21F1E,21F76,21FFA,2217B,2231E
+223AD,226F3,2285B,228AB,2298F,22AB8,22B4F,22B50,22B46,22C1D
+22BA6,22C24,22DE1,231C3,231F5,231B6,23372,233D3,233D2,233D0
+233E4,233D5,233DA,233DF,2344A,23451,2344B,23465,234E4,2355A
+23594,23639,23647,23638,2371C,2370C,23764,237FF,237E7,23824
+2383D,23A98,23C7F,23D00,23D40,23DFA,23DF9,23DD3,23F7E,24096
+24103,241C6,241FE,243BC,24629,246A5,24896,24A4D,24B56,24B6F
+24C16,24E0E,24E37,24E6A,24E8B,2504A,25055,25122,251A9,251E5
+251CD,2521E,2524C,2542E,254D9,255A7,257A9,257B4,259D4,25AE4
+25AE3,25AF1,25BB2,25C4B,25C64,25E2E,25E56,25E65,25E62,25ED8
+25EC2,25EE8,25F23,25F5C,25FE0,25FD4,2600C,25FFB,26017,26060
+260ED,26270,26286,23D0E,26402,2667E,2671D,268DD,268EA,2696F
+269DD,26A1E,26A58,26A8C,26AB7,26C73,26CDD,26E65,26F94,26FF8
+26FF6,26FF7,2710D,27139,273DB,273DA,273FE,27410,27449,27615
+27614,27631,27693,2770E,27723,27752,27985,27A84,27BB3,27BBE
+27BC7,27CB8,27DA0,27E10,2808A,280BB,28282,282F3,2840C,28455
+2856B,285C8,285C9,286D7,286FA,28949,28946,2896B,28988,289BA
+289BB,28A1E,28A29,28A71,28A43,28A99,28ACD,28AE4,28ADD,28BC1
+28BEF,28D10,28D71,28DFB,28E1F,28E36,28E89,28EEB,28F32,28FF8
+292A0,292B1,29490,295CF,296F0,29719,29750,298C6,29A72,29DDB
+29E15,29E8A,29E49,29EC4,29EE9,29EDB,29FCE,29FD7,2A02F,2A01A
+2A0F9,2A082,22218,2A38C,2A437,2A5F1,2A602,2A6B2,200F5,24E04
+24FF2,27D73,2F815,2F846,2F899,2F8A6,2F8E5,2F9DE,2A2B2,20158
+205B1,206EC,2B753,20D58,2B75A,2B75C,259CC,2B776,22E42,2B77C
+207C8,22FEB,279B4,2B782,2B78B,237F1,2B794,2404B,2B7AC,2B7AF
+2B7C9,2B7CF,2B7D2,26C9E,27C3C,2B7F0,2B765,2B80D,2B817,2634C
+29E3D,2A61A
+
+% end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_k.txt b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_k.txt
new file mode 100644
index 00000000000..6af3e290ff3
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_k.txt
@@ -0,0 +1,14 @@
+%
+% This file is generated from the data of UniKS-UTF32
+% in cid2code.txt (Version 01/31/2012)
+% for Adobe-Korea1-2
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% Adobe-Korea1-2/cid2code.txt
+%
+% A newer CMap may be required for some code points.
+%
+
+
+% end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_t.txt b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_t.txt
new file mode 100644
index 00000000000..084eac51871
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/sp_list_t.txt
@@ -0,0 +1,204 @@
+%
+% This file is generated from the data of UniCNS-UTF32
+% in cid2code.txt (Version 10/24/2017)
+% for Adobe-CNS1-7
+%
+% Reference:
+% https://github.com/adobe-type-tools/cmap-resources/
+% Adobe-CNS1-7/cid2code.txt
+%
+% A newer CMap may be required for some code points.
+%
+
+
+%Adobe-CNS1-0
+200CC,2008A,27607
+
+%Adobe-CNS1-1
+23ED7,26ED3,257E0,28BE9,258E1,294D9,259AC,2648D,25C01,2530E
+25CFE,25BB4,26C7F,25D20,25CC1,24882,24578,26E44,26ED6,24057
+26029,217F9,2836D,26121,2615A,262D0,26351,21661,20068,23766
+2833A,26489,2A087,26CC3,22714,26626,23DE3,266E8,28A48,226F6
+26498,2148A,2185E,24A65,24A95,26A52,23D7E,214FD,2F98F,249A7
+23530,21773,23DF8,2F994,20E16,217B4,2317D,2355A,23E8B,26DA3
+26B05,26B97,235CE,26DA5,26ED4,26E42,25BE4,26B96,26E77,26E43
+25C91,25CC0,28625,2863B,27088,21582,270CD,270F0,2F9B2,218A2
+2739A,2A0F8,22C27,275E0,23DB9,275E4,2770F,28A25,27924,27ABD
+27A59,27B3A,27B38,25430,25565,24A7A,216DF,27D54,27D8F,2F9D4
+27D53,27D98,27DBD,21910,2F9D7,28002,21014,2498A,281BC,2710C
+28365,28412,2A29F,20A50,289DE,2853D,23DBB,23262,22325,26ED7
+2853C,27ABE,2856C,2860B,28713,286E6,28933,21E89,255B9,28AC6
+23C9B,28B0C,255DB,20D31,28AE1,28BEB,28AE2,28AE5,28BEC,28C39
+28BFF,286D8,2127C,23E2E,26ED5,28AE0,26CB8,20274,26410,290AF
+290E5,24AD1,21915,2330A,24AE9,291D5,291EB,230B7,230BC,2546C
+29433,2941D,2797A,27175,20630,2415C,25706,26D27,216D3,24A29
+29857,29905,25725,290B1,29BD5,29B05,28600,2307D,29D3E,21863
+29E68,29FB7,2A192,2A1AB,2A0E1,2A123,2A1DF,2A134,2A193,2A220
+2193B,2A233,2A0B9,2A2B4,24364,2A3ED,28C2B,26DA2,2FA1B,2908B
+24975,249BB,249F8,24348,24A51,28BDA,218FA,2897E,28E36,28A44
+2896C,244B9,24473,243F8,217EF,218BE,23599,21885,2542F,217F8
+216FB,21839,21774,218D1,25F4B,216C0,24A25,213FE,212A8,213C6
+214B6,236A6,24994,27165,23E31,2555C,23EFB,27052,236EE,2999D
+26F26,21922,2373F,240E1,2408B,2410F,26C21,266B1,20FDF,20BA8
+20E0D,28B13,24436,20465,25651,201AB,203CB,2030A,20414,202C0
+28EB3,20275,2020C,24A0E,23E8A,23595,23E39,23EBF,21884,23E89
+205E0,204A3,20492,20491,28A9C,2070E,20873,2438C,20C20,249AC
+210E4,20E1D,24ABC,2408D,240C9,20345,20BC6,28A46,216FA,2176F
+21710,25946,219F3,21861,24295,25E83,28BD7,20413,21303,289FB
+21996,2197C,23AEE,21903,21904,218A0,216FE,28A47,21DBA,23472
+289A8,21927,217AB,2173B,275FD,22860,2262B,225AF,225BE,29088
+26F73,2003E,20046,2261B,22C9B,22D07,246D4,2914D,24665,22B6A
+22B22,23450,298EA,22E78,249E3,22D67,22CA1,2308E,232AD,24989
+232AB,232E0,218D9,2943F,23289,231B3,25584,28B22,2558F,216FC
+2555B,25425,23103,2182A,23234,2320F,23182,242C9,26D24,27870
+21DEB,232D2,232E1,25872,2383A,237BC,237A2,233FE,2462A,237D5
+24487,21912,23FC0,23C9A,28BEA,28ACB,2801E,289DC,23F7F,2403C
+2431A,24276,2478F,24725,24AA4,205EB,23EF8,2365F,24A4A,24917
+25FE1,24ADF,28C23,23F35,26DEA,24CD9,24D06,2A5C6,28ACC,249AB
+2498E,24A4E,249C5,248F3,28AE3,21864,25221,251E7,23232,24697
+23781,248F0,24ABA,24AC7,24A96,261AE,25581,27741,256E3,23EFA
+216E6,20D4C,2498C,20299,23DBA,2176E,201D4,20C0D,226F5,25AAF
+25A9C,2025B,25BC6,25BB3,25EBC,25EA6,249F9,217B0,26261,2615C
+27B48,25E82,26B75,20916,2004E,235CF,26412,263F8,2082C,25AE9
+25D43,25E0E,2343F,249F7,265AD,265A0,27127,26CD1,267B4,26A42
+26A51,26DA7,2721B,21840,218A1,218D8,2F9BC,23D8F,27422,25683
+27785,27784,28BF5,28BD9,28B9C,289F9,29448,24284,21845,27DDC
+24C09,22321,217DA,2492F,28A4B,28AFC,28C1D,28C3B,28D34,248FF
+24A42,243EA,23225,28EE7,28E66,28E65,249ED,24A78,23FEE,290B0
+29093,257DF,28989,28C26,28B2F,263BE,2421B,20F26,28BC5,24AB2
+294DA,295D7,28B50,24A67,28B64,28A45,27B06,28B65,258C8,298F1
+29948,21302,249B8,214E8,2271F,23DB8,22781,2296B,29E2D,2A1F5
+2A0FE,24104,2A1B4,2A0ED,2A0F3,2992F,26E12,26FDF,26B82,26DA4
+26E84,26DF0,26E00,237D7,26064,2359C,23640,249DE,202BF,2555D
+21757,231C9,24941,241B5,241AC,26C40,24F97,217B5,28A49,24488
+289FC,218D6,20F1D,26CC0,21413,242FA,22C26,243C1,23DB7,26741
+2615B,260A4,249B9,2498B,289FA,28B63,2189F,24AB3,24A3E,24A94
+217D9,24A66,203A7,21424,249E5,24916,24976,204FE,28ACE,28A16
+28BE7,255D5,28A82,24943,20CFF,2061A,20BEB,20CB8,217FA,216C2
+24A50,21852,28AC0,249AD,218BF,21883,27484,23D5B,28A81,21862
+20AB4,2139C,28218,290E4,27E4F,23FED,23E2D,203F5,28C1C,26BC0
+21452,24362,24A71,22FE3,212B0,223BD,21398,234E5,27BF4,236DF
+28A83,237D6,233FA,24C9F,236AD,26CB7,26D26,26D51,26C82,26FDE
+2173A,26C80,27053,217DB,217B3,21905,241FC,2173C,242A5,24293
+23EF9,27736,2445B,242CA,24259,289E1,26D28,244CE,27E4D,243BD
+24256,21304,243E9,2F825,23300,27AF4,256F6,27B18,27A79,249BA
+20346,27657,25FE2,275FE,2209A,28A9A,2403B,24A45,205CA,20611
+21EA8,23CFF,285E8,299C9,221C3,28B4E,20C78,20779,23F4A,24AA7
+26B52,27632,2493F,233CC,28948,21D90,27C12,24F9A,26BF7,2191C
+249F6,23FEF,2271B,257E1,2F8CD,2F806,24521,24934,26CBD,26411
+290C0,20A11,26469,20021,23519,2258D,2217A,249D0,20EF8,22926
+28473,217B1,24A2A,21820,29CAD,298A4,2160A,2372F,280E8,213C5
+291A8,270AF,289AB,2417A,2A2DF,28318,26E07,2816F,269B5,213ED
+2322F,28C30,28949,24988,24AA5,23F81,21FA1,295E9,2789D,28024
+27A3E,23CB7,26258,29D98,23D40,20E9D,282E2,20C41,20C96,20E76
+22C62,20EA2,21075,22B43,22EB3,20DA7,2688A,20EF9,27FF9,247E0
+29D7C,275A3,26048,24618,29EAC,29FDE,272B2,2048E,20EB6,27F2E
+2A434,243F2,29E06,294D0,26335,20D28,20D71,21F0F,21DD1,2176D
+2B473,28E97,25C21,20CD4,201F2,2A64A,2837D,2A2B2,24ABB,26E05
+2AE67,2251B,2DF3C,28E39,20F3B,25F1A,27486,267CC,24011,2F922
+20547,205DF,23FC5,24942,289E4,219DB,23CC8,24933,289AA,202A0
+26BB3,21305,224ED,26D29,27A84,23600,24AB1,22513,2037E,20380
+20347,2041F,249A4,20487,233B4,20BFF,220FC,202E5,22530,2058E
+23233,21983,205B3,23C99,24AA6,2372D,26B13,2F829,28ADE,23F80
+20954,23FEC,20BE2,21726,216E8,286AB,2F832,21596,21613,28A9B
+25772,20B8F,23FEB,22DA3,20C77,26B53,20D74,2170D,20EDD,20D4D
+289BC,22698,218D7,2403A,24435,210B4,2328A,28B66,2124F,241A5
+26C7E,21416,21454,24363,24BF5,2123C,2A150,24278,2163E,21692
+20D4E,26C81,26D2A,217DC,217FB,217B2,26DA6,21828,216D5,26E45
+249A9,26FA1,22554,21911,216B8,27A0E,20204,21A34,259CC,205A5
+21B44,21CA5,26B28,21DF9,21E37,21EA4,24901,22049,22173,244BC
+20CD3,21771,28482,201C1,2F894,2133A,26888,223D0,22471,26E6E
+28A36,25250,21F6A,270F8,22668,2029E,28A29,227B4,24982,2498F
+27A53,2F8A6,26ED2,20656,23FB7,2285F,28B9D,2995D,22980,228C1
+20118,21770,22E0D,249DF,2138E,217FC,22E36,2571D,24A28,24A23
+24940,21829,23400,231F7,231F8,231A4,231A5,20E75,251E6,23231
+285F4,231C8,25313,228F7,2439C,24A21,237C2,2F8DB,241CD,290ED
+233E6,26DA0,2346F,28ADF,235CD,2363C,28A4A,203C9,23659,2212A
+23703,2919C,20923,227CD,23ADB,21958,23B5A,23EFC,2248B,248F1
+26B51,23DBC,23DBD,241A4,2490C,24900,23CC9,20D32,231F9,22491
+26D25,26DA1,26DEB,2497F,24085,26E72,26F74,28B21,2F908,23E2F
+23F82,2304B,23E30,21497,2403D,29170,24144,24091,24155,24039
+23FF0,23FB4,2413F,24156,24157,24140,261DD,24277,24365,242C1
+2445A,24A27,24A22,28BE8,25605,24974,23044,24823,2882B,28804
+20C3A,26A2E,241E2,216E7,24A24,249B7,2498D,249FB,24A26,2F92F
+228AD,28EB2,24A8C,2415F,24A79,28B8F,28C03,2189E,21988,28ED9
+21A4B,28EAC,24F82,24D13,263F5,26911,2690E,26F9F,2509D,2517D
+21E1C,25220,232AC,28964,28968,216C1,255E0,2760C,2261C,25857
+27B39,27126,2910D,20C42,20D15,2512B,22CC6,20341,24DB8,294E5
+280BE,22C38,2815D,269F2,24DEA,20D7C,20FB4,20CD5,2BAB3,20E96
+20F64,22CA9,28256,244D3,20D46,29A4D,280E9,24EA7,22CC2,295F4
+252C7,297D4,22D44,2BCD7,22BCA,2B977,266DA,26716,279A0,25052
+20C43,28B4C,20731,201A9,22D8D,245C8,204FC,26097,20F4C,22A66
+2109D,20D9C,22775,2A601,20E09,22ACF,2C5F8,210C8,239C2,2829B
+25E49,220C7,22CB2,29720,24E3B,2C9A0,27574,22E8B,22208,2A65B
+28CCD,20E7A,20C34,27639,22BCE,22C51,210C7,2A632,28CD2,28D99
+28CCA,2775E,2F828,2107B,210D3,212FE,247EF,24EA5,24F5C,28189
+2B42C
+
+%Adobe-CNS1-3
+2010C,200D1,200CD,200CB,21FE8,200CA,2010E,21BC1,2F878,20086
+248E9,2626A,2634B,26612,26951,278B2,28E0F,29810,20087,2A3A9
+21145,27735,209E7,29DF6,2700E,2A133,2846C,21DCA,205D0,22AE6
+27D84,210F4,20C0B,278C8,260A5,22D4C,21077,2106F,221A1,20D96
+22CC9,20F31,2681C,210CF,22803,22939,251E3,20E8C,20F8D,20EAA
+20F30,20D47,2114F,20E4C,20EAB,20BA9,20D48,210C0,2113D,22696
+20FAD,233F4,20D7E,20D7F,22C55,20E98,20F2E,26B50,29EC3,22DEE
+26572,280BD,20EFA,20E0F,20E77,20EFB,24DEB,20CD6,227B5,210C9
+20E10,20E78,21078,21148,28207,21455,20E79,24E50,22DA4,2101D
+2101E,210F5,210F6,20E11,27694,282CD,20FB5,20E7B,2517E,20FB6
+21180,252D8,2A2BD,249DA,2183A,24177,2827C,2573D,25B74,2313D
+289C0,23F41,20325,20ED8,25C65,24FB8,20B0D,26B0A,22EEF,23CB5
+26E99,23F8F,24CC9,2A014,286BC,28501,2267A,269A8,2424B,2215B
+2037F,2A45B,249EC,24962,27109,24A4F,24A5D,217DF,23AFA,20214
+208D5,20619,21F9E,2A2B6,2915B,28A59,29420,248F2,25535,20CCF
+27967,21BC2,20094,202B7,203A0,204D7,205D5,20615,20676,216BA
+20AC2,20ACD,20BBF,2F83B,20BCB,20BFB,20C3B,20C53,20C65,20C7C
+20C8D,20CB5,20CDD,20CED,20D6F,20DB2,20DC8,20E04,20E0E,20ED7
+20F90,20F2D,20E73,20FBC,2105C,2104F,21076,21088,21096,210BF
+2112F,2113B,212E3,21375,21336,21577,21619,217C3,217C7,2182D
+2196A,21A2D,21A45,21C2A,21C70,21CAC,21EC8,21ED5,21F15,22045
+2227C,223D7,223FA,2272A,22871,2294F,22967,22993,22AD5,22AE8
+22B0E,22B3F,22C4C,22C88,22CB7,25BE8,22D08,22D12,22DB7,22D95
+22E42,22F74,22FCC,23033,23066,2331F,233DE,23567,235F3,2361A
+23716,23AA7,23E11,23EB9,24119,242EE,2430D,24334,24396,24404
+244D6,24674,2472F,24812,248FB,24A15,24AC0,24F86,2502C,25299
+25419,25446,2546E,2553F,2555E,25562,25566,257C7,2585D,25903
+25AAE,25B89,25C06,26102,261B2,26402,2644A,26484,26488,26512
+265BF,266B5,266FC,26799,2686E,2685E,268C7,26926,26939,269FA
+26A2D,26A34,26B5B,26B9D,26CA4,26DAE,2704B,271CD,27280,27285
+2728B,272E6,27450,277CC,27858,279DD,279FD,27A0A,27B0B,27D66
+28009,28023,28048,28083,28090,280F4,2812E,2814F,281AF,2821A
+28306,2832F,2838A,28468,286AA,28956,289B8,289E7,289E8,28B46
+28BD4,28C09,28FC5,290EC,29110,2913C,2915E,24ACA,294E7,295B0
+295B8,29732,298D1,29949,2996A,299C3,29A28,29B0E,29D5A,29D9B
+29EF8,29F23,2A293,2A2FF,2A5CB,20C9C,224B0,24A93,28B2C,217F5
+28B6C,28B99,266AF,27655,25635,25956,25E81,20E6D,23E88,24C9E
+217F6,2187B,25C4A,25311,25ED8,20FEA,20D49,236BA,25148,210C1
+24706,26893,226F4,27D2F,241A3,27D73,26ED0,272B6,211D9,23CFC
+2A6A9,20EAC,21CA2,24FC2,20FEB,22DA0,20FEC,20E0A,20FED,21187
+24B6E,25A95,20979,22465,23CFE,29F30,24FA9,2959E,23DB6,267B3
+23720,23EF7,23E2C,230DA,212A9,24963,270AE,2176C,27164,26D22
+24AE2,2493E,26D23,203FC,23CFD,24919,24A77,28A5A,2F840,2183B
+26159,233F5,28BC2,21D46,26ED1,28B2D,23CC7,25ED7,27656,25531
+21944,29903,26DDC,270AD,261AD,28A0F,23677,200EE,26846,24F0E
+2634C,2626B,21877,2408C,2307E,21E3D,203B5,205C3,21376,24A12
+28B2B,26083
+
+%Adobe-CNS1-4
+29C73,2414E,251CD,25D30,28A32,23281,2A107,21980,2870F,2A2BA
+29947,28AEA,2207E,289E3,21DB6,22712,233F9,23C63,24505,24A13
+25CA4,25695,28DB9,2143F,2497B,2710D,26D74,26B15,26FBE
+
+%Adobe-CNS1-5
+27267,27CB1,27CC5,242BF,23617,27352,26E8B,270D2,2A351,27C6C
+26B23,25A54,21A63,23E06,23F61,28BB9,27BEF,21D5E,29EB0,29945
+20A6F,23256,22796,23B1A,23551,240EC,21E23,201A4,26C41,20239
+298FA,20B9F,221C1,2896D,29079,2A1B5,26C46,286B2,273FF,2549A
+24B0F
+
+%Adobe-CNS1-6
+21D53,2369E,26021,258DE,24161,2890D,231EA,20A8A,2325E,25DB9
+2368E,27B65,26E88,25D99,224BC,224C1,224C9,224CC,235BB,2ADFF
+
+
+% end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/umkpkana.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/umkpkana.pl
new file mode 100755
index 00000000000..26208884540
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/umkpkana.pl
@@ -0,0 +1,602 @@
+#!/usr/bin/perl -s
+
+=head1 NOTE
+
+This software is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+
+=cut
+
+use Encode;
+use FindBin;
+use lib "$FindBin::Bin";
+use CheckDVICode;
+
+if ($sp==1) { # supplemental plane
+ use MakeSPList;
+ &make_sp_char_list('j');
+ %exist_char=%{$MakeSPList::r_exist_char->{'j'}};
+}
+
+$_=<DATA>;
+while(<DATA>) {
+ chomp($_);
+ my (@data)=split(' ', $_);
+ my ($char);
+ last if (@data<6);
+ $char = shift @data;
+ push @character, $char;
+ $cid {$char}=shift @data;
+ $min_w3 {$char}=shift @data;
+ $min_w6 {$char}=shift @data;
+ $goth_w3{$char}=shift @data;
+ $goth_w6{$char}=shift @data;
+ $maru_w4{$char}=shift @data;
+}
+
+@charwidth=({%min_w3}, {%min_w6}, {%goth_w3}, {%goth_w6}, {%maru_w4});
+@font_name=("phiraminw3-h", "phiraminw6-h", "phirakakuw3-h", "phirakakuw6-h", "phiramaruw4-h");
+@kanji_font_name=("hminr-h", "hminb-h", "hgothr-h", "hgothb-h", "hmgothr-h");
+@kana_font_name=("hiramin-w3-h", "hiramin-w6-h", "hirakaku-w3-h", "hirakaku-w6-h", "hiramaru-w4-h");
+$font_at=1.0;
+$half_width= ($font_at / 2);
+$quater_width= ($font_at / 4);
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+opendir(JPL, "pl") || mkdir("pl",0755) || die "cannot mkdir pl";
+opendir(JFM, "tfm") || mkdir("tfm",0755) || die "cannot mkdir tfm";
+closedir(OVP);
+closedir(VF);
+closedir(JPL);
+closedir(JFM);
+
+$n_fixed=7; ## type 0..6
+$ucs=1; # 1: upphiraXXX or 0: phiraXXX
+if ($ucs) {
+ $CheckDVICode::is_ucs=1;
+ foreach(@font_name, @kanji_font_name) {
+ $_="up$_";
+ }
+ if ($hk) { ## command line option -hk: Enable halfwidth katakana
+ $hk_mode=1;
+ $n_fixed=8; ## type 0..7
+ }
+}
+
+#main
+for ($i=0; $i<=4; $i++){
+ open (JPL, ">pl/$font_name[$i].pl");
+ &tfm_head_h;
+ &chars_in_type_jis;
+ &chars_in_type_prop;
+ &print_type_jis;
+ &print_type_prop;
+ &glue_kern;
+ close(JPL);
+}
+for ($i=0; $i<=4; $i++){
+ @cpm_h=(0x29E, 0x29F, 0x2A0, 0x2A1);
+ open (OVP, ">ovp/$font_name[$i].ovp");
+ &fonthead;
+ &write_char;
+ close(OVP);
+}
+#
+#sub rtn
+#
+sub tfm_head_h {
+ print JPL "(FAMILY PROP KANA)\n";
+ print JPL "(FACE F MRR)\n";
+ print JPL "(CODINGSCHEME TEX KANJI TEXT)\n";
+ print JPL "(DESIGNSIZE R 10.0)\n";
+ print JPL "(CHECKSUM O 0)\n";
+ print JPL "(SEVENBITSAFEFLAG TRUE)\n";
+ print JPL "(FONTDIMEN\n";
+ print JPL " (SLANT R 0.0)\n";
+ print JPL " (SPACE R 0.0)\n";
+ printf JPL " (STRETCH R %f)\n", $font_at/10;
+ print JPL " (SHRINK R 0.0)\n";
+ printf JPL " (XHEIGHT R %f)\n", $font_at;
+ printf JPL " (QUAD R %f)\n", $font_at;
+ printf JPL " (EXTRASPACE R %f)\n", $font_at/4;
+ printf JPL " (EXTRASTRETCH R %f)\n", $font_at/5;
+ printf JPL " (EXTRASHRINK R %f)\n", $font_at/8;
+ print JPL " )\n";
+}
+sub char_foot_h {
+ printf JPL " (CHARHT R %f)\n", $font_at*0.88;
+ printf JPL " (CHARDP R %f)\n", $font_at*0.12;
+ print JPL " )\n";
+}
+sub glue_kern{
+ print JPL "(GLUEKERN\n";
+ print JPL " (LABEL O 5)\n";
+ print JPL " (KRN O 5 R 0.0)\n";
+ print JPL " (LABEL O 0)\n";
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (LABEL H %X)\n",($char+$n_fixed);
+ }
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ print JPL " (LABEL O 1)\n";
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 2)\n";
+ printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 7 R %f R 0.0 R %f)\n", $half_width, $half_width if $hk_mode;
+ print JPL " (STOP)\n";
+ if ($hk_mode) {
+ print JPL " (LABEL O 7)\n";
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ print JPL " (STOP)\n";
+ }
+ print JPL " (LABEL O 6)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+$n_fixed), $half_width, $half_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 4)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width+$quater_width, $quater_width;
+ printf JPL " (GLUE O 5 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 7 R %f R 0.0 R %f)\n", $half_width, $half_width if $hk_mode;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R 0.0)\n",($char+$n_fixed), $half_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 3)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 2 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width, $quater_width;
+ printf JPL " (GLUE O 4 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 7 R %f R 0.0 R %f)\n", $half_width, $half_width if $hk_mode;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+$n_fixed), $quater_width, $quater_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " )\n";
+}
+sub chars_in_type_jis{
+ my ($type1add, $type2add, $type3add, $type5, $type6add)=();
+ if ($ucs) {
+ $type1add = "UFF5F U3018 U3016 U301D U00AB U2329 U301A";
+ $type2add = "UFF60 U3019 U3017 U301F U00BB U232A U301B U301E";
+ $type3add = "U00B7";
+ $type5 = "— ― … ‥";
+ $type6add = "U203C U2047 U2048 U2049";
+ } else {
+ $type5 = "— … ‥";
+ }
+print JPL <<END_OF_DATA;
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ $type1add
+ )
+(CHARSINTYPE O 2
+ 、 , ’ ” ) 〕 ] } 〉 》 」 』 】
+ $type2add
+ )
+(CHARSINTYPE O 3
+ ・ : ;
+ $type3add
+ )
+(CHARSINTYPE O 4
+ 。 .
+ )
+(CHARSINTYPE O 5
+ $type5
+ )
+(CHARSINTYPE O 6
+ ? !
+ $type6add
+ )
+END_OF_DATA
+print JPL <<END_OF_DATA if ($hk_mode) ; ## Halfwidth Katakana
+(CHARSINTYPE O 7
+ UFF61 UFF62 UFF63 UFF64 UFF65 UFF66 UFF67
+ UFF68 UFF69 UFF6A UFF6B UFF6C UFF6D UFF6E UFF6F
+ UFF70 UFF71 UFF72 UFF73 UFF74 UFF75 UFF76 UFF77
+ UFF78 UFF79 UFF7A UFF7B UFF7C UFF7D UFF7E UFF7F
+ UFF80 UFF81 UFF82 UFF83 UFF84 UFF85 UFF86 UFF87
+ UFF88 UFF89 UFF8A UFF8B UFF8C UFF8D UFF8E UFF8F
+ UFF90 UFF91 UFF92 UFF93 UFF94 UFF95 UFF96 UFF97
+ UFF98 UFF99 UFF9A UFF9B UFF9C UFF9D UFF9E UFF9F
+ )
+END_OF_DATA
+}
+sub print_type_jis{
+ @type_width=($font_at, $half_width, $half_width, $half_width, $half_width, $font_at, $font_at);
+ if ($hk_mode) { push @type_width, $half_width; }
+ for ($k=0; $k<$n_fixed; $k++){
+ printf JPL "(TYPE H %x\n", $k;
+ printf JPL " (CHARWD R %f)\n", $type_width[$k];
+ &char_foot_h;
+ }
+}
+sub fonthead {
+ print OVP "(VTITLE Prop Kana)\n";
+ print OVP "(OFMLEVEL D 0)\n";
+ print OVP "(DESIGNSIZE R 10.000000)\n";
+ print OVP "(CHECKSUM O 0)\n";
+ print OVP "(MAPFONT D 1\n";
+ print OVP " (FONTNAME $kanji_font_name[$i])\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n", $font_at;
+ print OVP " (FONTDSIZE R 10.000000)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $kana_font_name[$i])\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n", $font_at;
+ print OVP " (FONTDSIZE R 10.000000)\n";
+ print OVP " )\n";
+}
+sub write_char {
+ if (!$ucs) {
+ for ($ku=1; $ku<=94; $ku++){
+ for ($ten=1; $ten<=94; $ten++){
+ $dvicode=($ku+32)*256+($ten+32);
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_kana_char;}
+ elsif($ku==5){&print_kana_char;}else{&print_char;}
+ }
+ }
+ } else { # ucs
+ $max_ucs= $sp ? 0x2FA1F : 0xFFFF; # U+2FA1F: max of CJK Compatibility Ideographs Supplement
+ for ($ucscode=0; $ucscode<=$max_ucs; $ucscode++){
+ $CheckDVICode::dvicode=$dvicode=$ucscode;
+ next unless (&is_ucs_jpn_range);
+ if ($sp==1 && $ucscode>0xFFFF) {
+ next unless ($exist_char{sprintf("%X",$ucscode)});
+ }
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira || &is_dvicode('hira-yori')){&print_kana_char;}
+ elsif(&is_ucs_kata || &is_dvicode('kata-koto')){&print_kana_char;}
+ elsif(&is_ucs_hankana && $hk_mode){&print_hankana_char;}
+ else{&print_char;}
+ }
+ }
+}
+sub print_char{
+ return if ($omitfw);
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SETCHAR H %X)\n",$dvicode;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_kigo_char{
+ my ($width,$cid);
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ if (&is_dvicode('quote') || &is_dvicode('kakko')){#Kakko
+ $width=$half_width;
+ } elsif (&is_dvicode('kutouten')){#Kutouten
+ $width=$half_width;
+ } elsif (&is_dvicode('odoriji')){#odoriji
+ ($width,$cid)=&get_charwidth($i,$dvicode);
+ $width/=10;
+ } else{
+ $width=$font_at;
+ }
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ if (&is_dvicode('odoriji')){#odoriji
+ print OVP " (SELECTFONT D 2)\n";
+ } elsif ($ucs && &is_dvicode('quote')){#Quote
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ if (&is_dvicode('nakaten') || &is_dvicode('colon') || &is_dvicode('semicolon')){#colon, semicolon, nakaten
+ printf OVP " (MOVERIGHT R -%f)\n",$quater_width;}
+ if ((&is_dvicode('quote') || &is_dvicode('kakko')) && &is_dvicode('open')){#Kakko
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ if (&is_dvicode('odoriji')){#odoriji
+ printf OVP " (SETCHAR H %X)\n",$cid;
+ } elsif ($ucs && &is_dvicode('quote')){#Quote
+ $cpmcode= shift(@cpm_h);
+ printf OVP " (SETCHAR H %X)\n",$cpmcode;
+ } else {
+ printf OVP " (SETCHAR H %X)\n",$dvicode;
+ }
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_kana_char{
+ my ($width,$cid)=&get_charwidth($i,$dvicode);
+ if ($width==0) {
+ return &print_char;
+ }
+ $width/=10;
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 2)\n";
+ printf OVP " (SETCHAR H %X)\n",$cid;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_hankana_char{
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $half_width;
+ print OVP " (MAP\n";
+ printf OVP " (SETCHAR H %X)\n",$dvicode;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub chars_in_type_prop{
+ %char_width_hash=();
+ for ($j=0; $j<@character; $j++){
+ my ($c0, $c1);
+ $c0=$c1=$character[$j];
+ if (!$ucs) {
+ if (!Encode::from_to($c1,'utf-8','euc-jp', Encode::FB_QUIET)
+ || $c0 eq "〃"
+ || $c0 eq "〆") { next; }
+ }
+ $char_width_hash{$c0}=$charwidth[$i]{$c0}/10;
+ }
+ $x = '-';
+ @uniq_char_width_array = grep( $_ ne $x && ($x = $_), sort values(%char_width_hash));
+ for ($j=0; $j<=$#uniq_char_width_array; $j++){
+ printf JPL "(CHARSINTYPE H %X\n",($j+$n_fixed);
+ print JPL " ";
+ @char_in_this_type = ();
+ while (($name, $value) = each(%char_width_hash)) {
+ if ($value == $uniq_char_width_array[$j]){
+ push(@char_in_this_type, $name);
+ }
+ }
+ @char_in_this_type = sort @char_in_this_type;
+ foreach $char_in_this(@char_in_this_type){
+ print JPL "$char_in_this ";#character
+ }
+ print JPL "\n";
+ print JPL " )\n";
+ }
+}
+sub print_type_prop{
+ for ($j=0; $j<=$#uniq_char_width_array; $j++){
+ $char_width=$uniq_char_width_array[$j];
+ printf JPL "(TYPE H %X\n", ($j+$n_fixed);
+ printf JPL " (CHARWD R %f)\n", $char_width;
+ &char_foot_h;
+ }
+}
+
+sub get_charwidth{
+ my ($i,$dvicode)=@_;
+ my ($char,$u,$l);
+
+ if (!$ucs) {
+ if ($dvicode>=0x2474 && $dvicode<=0x2476) {
+ return 0;
+ }
+ $u = ($dvicode >> 8) & 0xFF | 0x80;
+ $l = $dvicode & 0xFF | 0x80;
+ $char = pack("C*",$u,$l);
+ Encode::from_to($char,'euc-jp','utf-8');
+ } else {
+ $u = ($dvicode >> 8) & 0xFF;
+ $l = $dvicode & 0xFF;
+ $char = pack("C*",$u,$l);
+ Encode::from_to($char,'utf-16be','utf-8');
+ }
+ if (!exists($charwidth[$i]{$char})) {
+ return 0;
+ }
+ return ($charwidth[$i]{$char}, $cid{$char});
+}
+
+
+__DATA__
+character cid min_w3 min_w6 goth_w3 goth_w6 maru_w4
+ヽ 15449 7.11 7.54 7.19 7.49 7.45
+ヾ 15450 7.68 7.95 7.69 8 8.15
+ゝ 15451 7.17 7.43 7.23 7.53 7.63
+ゞ 15452 7.79 7.97 7.72 8.09 8.08
+ー 15455 9.9 10 10 10 10
+ぁ 15517 8.21 8.44 8.56 8.77 8.72
+あ 15518 8.83 9.17 9.18 9.41 9.32
+ぃ 15519 8.56 8.72 8.67 8.95 8.97
+い 15520 9.14 9.46 9.3 9.52 9.58
+ぅ 15521 7.3 7.65 8.08 8.27 8.32
+う 15522 7.68 8.04 8.51 8.74 8.78
+ぇ 15523 7.97 8.2 8.34 8.56 8.61
+え 15524 8.69 8.95 9.14 9.33 9.36
+ぉ 15525 8.59 8.9 8.77 9.02 8.97
+お 15526 9.15 9.52 9.37 9.62 9.54
+か 15527 9.53 9.81 9.49 9.72 9.58
+が 15528 9.69 9.93 9.68 9.82 9.79
+き 15529 8.34 8.64 8.87 9.09 9.15
+ぎ 15530 9.09 9.42 9.49 9.49 9.66
+く 15531 6.76 7.04 7.64 7.92 8.04
+ぐ 15532 8.31 8.52 8.34 8.5 8.72
+け 15533 9.07 9.35 9.16 9.37 9.39
+げ 15534 9.56 9.75 9.66 9.82 9.78
+こ 15535 8.05 8.3 8.37 8.65 8.88
+ご 15536 8.91 9.08 8.9 9 9.27
+さ 15537 8.26 8.61 8.71 9.02 9.03
+ざ 15538 9.19 9.53 8.97 9.3 9.34
+し 15539 8.07 8.51 8.58 8.84 8.91
+じ 15540 8.17 8.62 8.65 8.94 9
+す 15541 9.16 9.44 9.17 9.33 9.41
+ず 15542 9.52 9.63 9.53 9.66 9.72
+せ 15543 9.52 9.76 9.44 9.65 9.61
+ぜ 15544 9.79 9.92 9.73 9.86 9.87
+そ 15545 8.59 8.93 9.27 9.48 9.43
+ぞ 15546 9.25 9.49 9.4 9.64 9.69
+た 15547 8.94 9.25 9.22 9.45 9.37
+だ 15548 9.23 9.44 9.28 9.51 9.57
+ち 15549 8.5 8.77 8.83 9.05 9.11
+ぢ 15550 8.98 9.25 8.92 9.16 9.28
+っ 15551 8.81 8.97 8.66 8.84 8.83
+つ 15552 9.39 9.71 9.26 9.41 9.44
+づ 15553 9.65 9.8 9.54 9.68 9.71
+て 15554 8.91 9.11 8.93 9.12 9.25
+で 15555 9.3 9.5 9.26 9.42 9.5
+と 15556 7.62 7.89 8.3 8.62 8.66
+ど 15557 8.45 8.72 8.56 8.78 8.88
+な 15558 9.08 9.42 9.45 9.66 9.55
+に 15559 8.94 9.18 9.16 9.42 9.38
+ぬ 15560 9.41 9.67 9.51 9.72 9.62
+ね 15561 9.51 9.73 9.67 9.82 9.83
+の 15562 9.29 9.57 9.35 9.69 9.58
+は 15563 9.13 9.45 9.44 9.69 9.56
+ば 15564 9.69 9.79 9.73 9.85 9.8
+ぱ 15565 9.58 9.77 9.66 9.8 9.75
+ひ 15566 8.98 9.33 9.26 9.52 9.52
+び 15567 9.27 9.49 9.48 9.71 9.62
+ぴ 15568 9.33 9.53 9.39 9.63 9.63
+ふ 15569 9.19 9.44 9.4 9.62 9.52
+ぶ 15570 9.33 9.59 9.61 9.78 9.74
+ぷ 15571 9.36 9.59 9.51 9.73 9.74
+へ 15572 9.71 9.97 9.69 9.76 9.73
+べ 15573 9.54 9.84 9.64 9.76 9.72
+ぺ 15574 9.51 9.82 9.5 9.73 9.69
+ほ 15575 9.14 9.49 9.48 9.73 9.62
+ぼ 15576 9.73 9.9 9.79 9.88 9.93
+ぽ 15577 9.77 9.92 9.72 9.9 9.88
+ま 15578 8.32 8.62 8.98 9.24 9.28
+み 15579 9.07 9.38 9.38 9.62 9.57
+む 15580 9.22 9.57 9.33 9.52 9.48
+め 15581 9.03 9.36 9.27 9.54 9.48
+も 15582 8.08 8.34 8.82 9.1 9.15
+ゃ 15583 8.68 8.93 8.72 8.9 8.9
+や 15584 9.38 9.62 9.25 9.49 9.46
+ゅ 15585 8.74 8.95 8.78 8.98 9
+ゆ 15586 9.33 9.64 9.41 9.63 9.62
+ょ 15587 7.64 7.85 8.09 8.36 8.45
+よ 15588 8.1 8.41 8.63 8.95 9.04
+ら 15589 8.14 8.39 8.59 8.81 8.94
+り 15590 7.69 8.09 8.33 8.59 8.71
+る 15591 8.2 8.55 8.86 9.11 9.12
+れ 15592 9.76 9.96 9.62 9.82 9.81
+ろ 15593 8.38 8.63 8.7 8.94 9.09
+ゎ 15594 8.58 8.83 8.82 9.07 9.02
+わ 15595 9.24 9.58 9.46 9.71 9.66
+ゐ 15596 8.77 9.12 9.02 9.29 9.35
+ゑ 15597 9.14 9.32 9.34 9.53 9.5
+を 15598 8.78 9.14 9.05 9.33 9.45
+ん 15599 9.13 9.39 9.2 9.47 9.39
+ァ 15608 8.01 8.28 8.37 8.61 8.5
+ア 15609 8.69 9.01 9 9.24 9.17
+ィ 15610 7.6 7.78 8.26 8.44 8.33
+イ 15611 8.2 8.43 8.91 9.13 8.96
+ゥ 15612 7.89 8.24 8.4 8.61 8.72
+ウ 15613 8.4 8.67 8.81 9.06 9.18
+ェ 15614 8.44 8.63 8.63 8.83 8.73
+エ 15615 9.23 9.5 9.36 9.52 9.36
+ォ 15616 8.34 8.57 8.66 8.88 8.69
+オ 15617 8.94 9.26 9.18 9.39 9.32
+カ 15618 8.64 8.9 9.04 9.33 9.23
+ガ 15619 9.39 9.53 9.37 9.53 9.55
+キ 15620 8.76 9.19 9.27 9.45 9.34
+ギ 15621 9.05 9.4 9.31 9.54 9.55
+ク 15622 8.25 8.6 8.68 8.96 8.9
+グ 15623 9.06 9.37 9.55 9.57 9.67
+ケ 15624 8.84 9.05 9.28 9.43 9.41
+ゲ 15625 9.28 9.42 9.52 9.66 9.69
+コ 15626 8.49 8.83 8.88 9.15 9.16
+ゴ 15627 9.1 9.3 9.4 9.59 9.55
+サ 15628 9.16 9.44 9.26 9.42 9.46
+ザ 15629 9.46 9.68 9.62 9.72 9.8
+シ 15630 9.02 9.22 8.94 9.22 9.32
+ジ 15631 8.99 9.22 9.42 9.5 9.74
+ス 15632 8.68 8.96 9.06 9.32 9.25
+ズ 15633 9.24 9.48 9.5 9.73 9.67
+セ 15634 9.02 9.4 9.17 9.36 9.33
+ゼ 15635 9.44 9.71 9.54 9.63 9.63
+ソ 15636 8.23 8.49 8.47 8.76 8.8
+ゾ 15637 9.13 9.3 9.04 9.19 9.44
+タ 15638 8.41 8.78 8.75 9 8.95
+ダ 15639 9.32 9.56 9.67 9.65 9.73
+チ 15640 8.91 9.27 9.25 9.48 9.36
+ヂ 15641 9.36 9.64 9.55 9.63 9.61
+ッ 15642 7.86 8.12 8.15 8.4 8.48
+ツ 15643 8.44 8.73 8.86 9.13 9.04
+ヅ 15644 9.24 9.43 9.41 9.53 9.57
+テ 15645 8.85 9.2 9.22 9.38 9.33
+デ 15646 9.37 9.58 9.64 9.67 9.74
+ト 15647 7.25 7.6 8.02 8.3 8.57
+ド 15648 7.95 8.16 8.26 8.48 8.7
+ナ 15649 8.84 9.22 9.13 9.32 9.26
+ニ 15650 9.21 9.52 9.23 9.42 9.22
+ヌ 15651 8.11 8.42 8.46 8.7 8.79
+ネ 15652 9 9.27 9.23 9.46 9.4
+ノ 15653 7.81 8.17 8.4 8.7 8.66
+ハ 15654 9.46 9.77 9.45 9.66 9.41
+バ 15655 9.58 9.76 9.63 9.78 9.56
+パ 15656 9.45 9.71 9.53 9.75 9.55
+ヒ 15657 8.14 8.42 8.6 8.88 8.84
+ビ 15658 8.76 9 9.23 9.41 9.46
+ピ 15659 8.66 8.9 9.15 9.33 9.4
+フ 15660 8.12 8.46 8.57 8.81 8.91
+ブ 15661 9.05 9.3 9.27 9.42 9.73
+プ 15662 9.05 9.27 9.11 9.31 9.73
+ヘ 15663 9.68 9.95 9.62 9.77 9.66
+ベ 15664 9.44 9.77 9.56 9.73 9.62
+ペ 15665 9.42 9.77 9.56 9.71 9.59
+ホ 15666 8.85 9.19 9.46 9.67 9.52
+ボ 15667 9.14 9.39 9.51 9.71 9.69
+ポ 15668 8.81 9.24 9.5 9.72 9.71
+マ 15669 8.86 9.17 8.99 9.19 9.17
+ミ 15670 7.57 7.9 8.39 8.64 8.87
+ム 15671 8.56 8.87 9.2 9.4 9.39
+メ 15672 8.2 8.55 8.64 8.92 8.81
+モ 15673 9.09 9.41 9.42 9.61 9.49
+ャ 15674 8.39 8.69 8.49 8.73 8.73
+ヤ 15675 8.95 9.24 9.16 9.39 9.31
+ュ 15676 8.38 8.61 8.43 8.65 8.61
+ユ 15677 9.18 9.57 9.22 9.37 9.35
+ョ 15678 7.94 8.23 8.44 8.72 8.74
+ヨ 15679 8.37 8.74 8.91 9.19 9.22
+ラ 15680 8.08 8.41 8.71 8.97 8.95
+リ 15681 7.6 7.91 8.16 8.43 8.63
+ル 15682 9.27 9.69 9.46 9.64 9.49
+レ 15683 8.46 8.8 8.61 8.9 9.01
+ロ 15684 8.51 8.95 9.26 9.51 9.54
+ヮ 15685 7.77 8.09 8.32 8.51 8.71
+ワ 15686 8.34 8.67 8.71 8.97 9.02
+ヰ 15687 9.19 9.5 9.47 9.64 9.57
+ヱ 15688 9.19 9.51 9.32 9.52 9.35
+ヲ 15689 8.01 8.39 8.49 8.76 8.93
+ン 15690 8.71 9.03 8.85 9.12 9.04
+ヴ 15691 9.06 9.34 9.33 9.51 9.66
+ヵ 15692 8.11 8.33 8.51 8.8 8.74
+ヶ 15693 8.18 8.39 8.63 8.74 8.73
+〃 15453 7.69 8.15 8.29 8.62 8.36
+〆 15454 8.69 9.03 9.09 9.33 9.15
+ヿ 15462 8.09 8.42 8.6 8.83 8.87
+ゟ 15463 8.03 8.27 8.82 9.19 8.93
+ゔ 15600 8.73 9.06 9.27 9.47 9.44
+ゕ 15601 8.75 9.02 8.82 9.06 8.95
+ゖ 15602 8.36 8.64 8.55 8.78 8.73
+ㇰ 15702 7.68 8.03 8.02 8.34 8.43
+ㇱ 15703 8.39 8.58 8.43 8.67 8.66
+ㇲ 15704 8 8.19 8.3 8.59 8.55
+ㇳ 15705 7.02 7.29 7.66 7.9 8.16
+ㇴ 15706 7.65 7.89 8.04 8.35 8.38
+ㇵ 15707 8.6 8.79 8.61 8.84 8.63
+ㇶ 15708 7.83 8.02 8.15 8.43 8.41
+ㇷ 15709 7.61 7.94 8.09 8.3 8.39
+ㇸ 15710 8.81 9.1 8.78 8.94 8.83
+ㇹ 15711 8.27 8.53 8.86 9.09 8.97
+ㇺ 15713 7.92 8.13 8.39 8.61 8.62
+ㇻ 15714 7.8 8.09 8.32 8.54 8.55
+ㇼ 15715 7.39 7.66 7.9 8.13 8.31
+ㇽ 15716 8.59 8.79 8.72 8.9 8.81
+ㇾ 15717 8.06 8.32 8.18 8.41 8.55
+ㇿ 15718 8.13 8.44 8.67 8.93 8.98
+ヷ 15719 9.2 9.51 9.64 9.6 9.81
+ヸ 15720 9.41 9.75 9.6 9.7 9.75
+ヹ 15721 9.47 9.7 9.65 9.7 9.8
+ヺ 15722 8.91 9.32 9.34 9.39 9.73
+end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/umkvpkana.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/umkvpkana.pl
new file mode 100755
index 00000000000..da4d0d7d8a8
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/umkvpkana.pl
@@ -0,0 +1,569 @@
+#!/usr/bin/perl -s
+
+=head1 NOTE
+
+This software is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+
+=cut
+
+use Encode;
+use FindBin;
+use lib "$FindBin::Bin";
+use CheckDVICode;
+
+if ($sp==1) { # supplemental plane
+ use MakeSPList;
+ &make_sp_char_list('j');
+ %exist_char=%{$MakeSPList::r_exist_char->{'j'}};
+}
+
+$_=<DATA>;
+while(<DATA>) {
+ chomp($_);
+ my (@data)=split(' ', $_);
+ my ($char);
+ last if (@data<6);
+ $char = shift @data;
+ push @character, $char;
+ $cid {$char}=shift @data;
+ $min_w3 {$char}=shift @data;
+ $min_w6 {$char}=shift @data;
+ $goth_w3{$char}=shift @data;
+ $goth_w6{$char}=shift @data;
+ $maru_w4{$char}=shift @data;
+}
+
+@charwidth=({%min_w3}, {%min_w6}, {%goth_w3}, {%goth_w6}, {%maru_w4});
+@font_name=("phiraminw3-v", "phiraminw6-v", "phirakakuw3-v", "phirakakuw6-v", "phiramaruw4-v");
+@kanji_font_name=("hminr-v", "hminb-v", "hgothr-v", "hgothb-v", "hmgothr-v");
+@kana_font_name=("hiramin-w3-v", "hiramin-w6-v", "hirakaku-w3-v", "hirakaku-w6-v", "hiramaru-w4-v");
+$font_at=1.0;
+$half_width= ($font_at / 2);
+$quater_width= ($font_at / 4);
+opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp";
+opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf";
+opendir(JPL, "pl") || mkdir("pl",0755) || die "cannot mkdir pl";
+opendir(JFM, "tfm") || mkdir("tfm",0755) || die "cannot mkdir tfm";
+closedir(OVP);
+closedir(VF);
+closedir(JPL);
+closedir(JFM);
+
+$ucs=1; # 1: upphiraXXX or 0: phiraXXX
+if ($ucs) {
+ $CheckDVICode::is_ucs=1;
+ foreach(@font_name, @kanji_font_name) {
+ $_="up$_";
+ }
+}
+
+#main
+for ($i=0; $i<=4; $i++){
+ open (JPL, ">pl/$font_name[$i].pl");
+ &tfm_head_v;
+ &chars_in_type_jis;
+ &chars_in_type_prop;
+ &print_type_jis;
+ &print_type_prop;
+ &glue_kern;
+ close(JPL);
+}
+for ($i=0; $i<=4; $i++){
+ @cpm_v= $ucs ? (0x2F8D, 0x2F8E, 0x1F14, 0x1F15, 0x1ECF, 0x1ED0)
+ : (0x1ECF, 0x1ED0, 0x2F8D, 0x2F8E, 0x1F14, 0x1F15);
+ open (OVP, ">ovp/$font_name[$i].ovp");
+ &fonthead;
+ &write_char;
+ close(OVP);
+}
+#
+#sub rtn
+#
+sub tfm_head_v {
+ print JPL "(DIRECTION TATE)\n";
+ print JPL "(FAMILY PROP KANA)\n";
+ print JPL "(FACE F MRR)\n";
+ print JPL "(CODINGSCHEME TEX KANJI TEXT)\n";
+ print JPL "(DESIGNSIZE R 10.0)\n";
+ print JPL "(CHECKSUM O 0)\n";
+ print JPL "(SEVENBITSAFEFLAG TRUE)\n";
+ print JPL "(FONTDIMEN\n";
+ print JPL " (SLANT R 0.0)\n";
+ print JPL " (SPACE R 0.0)\n";
+ printf JPL " (STRETCH R %f)\n", $font_at/10;
+ print JPL " (SHRINK R 0.0)\n";
+ printf JPL " (XHEIGHT R %f)\n", $font_at;
+ printf JPL " (QUAD R %f)\n", $font_at;
+ printf JPL " (EXTRASPACE R %f)\n", $font_at/4;
+ printf JPL " (EXTRASTRETCH R %f)\n", $font_at/5;
+ printf JPL " (EXTRASHRINK R %f)\n", $font_at/8;
+ print JPL " )\n";
+}
+sub char_foot_h {
+ printf JPL " (CHARHT R %f)\n", $font_at*0.88;
+ printf JPL " (CHARDP R %f)\n", $font_at*0.12;
+ print JPL " )\n";
+}
+sub glue_kern{
+ print JPL "(GLUEKERN\n";
+ print JPL " (LABEL O 5)\n";
+ print JPL " (KRN O 5 R 0.0)\n";
+ print JPL " (LABEL O 0)\n";
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (LABEL H %X)\n",($char+7);
+ }
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ print JPL " (LABEL O 1)\n";
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 2)\n";
+ printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 6)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+7), $half_width, $half_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 4)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width+$quater_width, $quater_width;
+ printf JPL " (GLUE O 5 R %f R 0.0 R 0.0)\n", $half_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R 0.0)\n", $half_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R 0.0)\n",($char+7), $half_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " (LABEL O 3)\n";
+ printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 2 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width, $quater_width;
+ printf JPL " (GLUE O 4 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $quater_width, $quater_width;
+ for ($char=0; $char<=$#uniq_char_width_array; $char++){
+ printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+7), $quater_width, $quater_width;
+ }
+ print JPL " (STOP)\n";
+ print JPL " )\n";
+}
+sub chars_in_type_jis{
+ my ($type1add, $type2add, $type3add, $type5, $type6add)=();
+ if ($ucs) {
+ $type1add = "UFF5F U3018 U3016 U301D U00AB U2329 U301A";
+ $type2add = "UFF60 U3019 U3017 U301F U00BB U232A U301B U301E";
+ $type3add = "U00B7";
+ $type5 = "— ― … ‥";
+ $type6add = "U203C U2047 U2048 U2049";
+ } else {
+ $type5 = "— … ‥";
+ }
+print JPL <<END_OF_DATA;
+(CHARSINTYPE O 1
+ ‘ “ ( 〔 [ { 〈 《 「 『 【
+ $type1add
+ )
+(CHARSINTYPE O 2
+ 、 , ’ ” ) 〕 ] } 〉 》 」 』 】
+ $type2add
+ )
+(CHARSINTYPE O 3
+ ・ : ;
+ $type3add
+ )
+(CHARSINTYPE O 4
+ 。 .
+ )
+(CHARSINTYPE O 5
+ $type5
+ )
+(CHARSINTYPE O 6
+ ? !
+ $type6add
+ )
+END_OF_DATA
+}
+sub print_type_jis{
+ @type_width=($font_at, $half_width, $half_width, $half_width, $half_width, $font_at, $font_at);
+ for ($k=0; $k<=6; $k++){
+ printf JPL "(TYPE H %x\n", $k;
+ printf JPL " (CHARWD R %f)\n", $type_width[$k];
+ &char_foot_h;
+ }
+}
+sub fonthead {
+ print OVP "(VTITLE Prop Kana)\n";
+ print OVP "(OFMLEVEL D 0)\n";
+ print OVP "(DESIGNSIZE R 10.000000)\n";
+ print OVP "(CHECKSUM O 0)\n";
+ print OVP "(MAPFONT D 1\n";
+ print OVP " (FONTNAME $kanji_font_name[$i])\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n", $font_at;
+ print OVP " (FONTDSIZE R 10.000000)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $kana_font_name[$i])\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n", $font_at;
+ print OVP " (FONTDSIZE R 10.000000)\n";
+ print OVP " )\n";
+}
+sub write_char {
+ if (!$ucs) {
+ for ($ku=1; $ku<=94; $ku++){
+ for ($ten=1; $ten<=94; $ten++){
+ $dvicode=($ku+32)*256+($ten+32);
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_kana_char;}
+ elsif($ku==5){&print_kana_char;}else{&print_char;}
+ }
+ }
+ } else { # ucs
+ $max_ucs= $sp ? 0x2FA1F : 0xFFFF; # U+2FA1F: max of CJK Compatibility Ideographs Supplement
+ for ($ucscode=0; $ucscode<=$max_ucs; $ucscode++){
+ $CheckDVICode::dvicode=$dvicode=$ucscode;
+ next unless (&is_ucs_jpn_range);
+ if ($sp==1 && $ucscode>0xFFFF) {
+ next unless ($exist_char{sprintf("%X",$ucscode)});
+ }
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira || &is_dvicode('hira-yori')){&print_kana_char;}
+ elsif(&is_ucs_kata || &is_dvicode('kata-koto')){&print_kana_char;}
+# elsif(&is_ucs_hankana && $hk_mode){&print_hankana_char;}
+ else{&print_char;}
+ }
+ }
+}
+sub print_char{
+ return if ($omitfw);
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SETCHAR H %X)\n",$dvicode;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_kigo_char{
+ my ($width,$cid);
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ if (&is_dvicode('quote') || &is_dvicode('kakko')){#Kakko
+ $width=$half_width;
+ } elsif (&is_dvicode('kutouten')){#Kutouten
+ $width=$half_width;
+ } elsif (&is_dvicode('odoriji')){#odoriji
+ ($width,$cid)=&get_charwidth($i,$dvicode);
+ $width/=10;
+ } else{
+ $width=$font_at;
+ }
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ if (&is_dvicode('odoriji')){#odoriji
+ print OVP " (SELECTFONT D 2)\n";
+ } elsif (&is_dvicode('comma') || &is_dvicode('period') || &is_dvicode('quote')){#Comma, Period, Minute
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ if (&is_dvicode('nakaten') || &is_dvicode('colon') || &is_dvicode('semicolon')){#colon, semicolon, nakaten
+ printf OVP " (MOVERIGHT R -%f)\n",$quater_width;}
+ if ((&is_dvicode('quote') || &is_dvicode('kakko')) && &is_dvicode('open')){#Kakko
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ if (&is_dvicode('odoriji')){#odoriji
+ printf OVP " (SETCHAR H %X)\n",$cid;
+ } elsif (&is_dvicode('comma') || &is_dvicode('period') || &is_dvicode('quote')){#Comma, Period, Minute
+ $cpmcode= shift(@cpm_v);
+ printf OVP " (SETCHAR H %X)\n",$cpmcode;
+ } else {
+ printf OVP " (SETCHAR H %X)\n",$dvicode;
+ }
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_kana_char{
+ my ($width,$cid)=&get_charwidth($i,$dvicode);
+ if ($width==0) {
+ return &print_char;
+ }
+ $width/=10;
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 2)\n";
+ printf OVP " (SETCHAR H %X)\n",$cid;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub chars_in_type_prop{
+ %char_width_hash=();
+ for ($j=0; $j<@character; $j++){
+ my ($c0, $c1);
+ $c0=$c1=$character[$j];
+ if (!$ucs) {
+ if (!Encode::from_to($c1,'utf-8','euc-jp', Encode::FB_QUIET)
+ || $c0 eq "〃"
+ || $c0 eq "〆") { next; }
+ }
+ $char_width_hash{$c0}=$charwidth[$i]{$c0}/10;
+ }
+ $x = '-';
+ @uniq_char_width_array = grep( $_ ne $x && ($x = $_), sort values(%char_width_hash));
+ for ($j=0; $j<=$#uniq_char_width_array; $j++){
+ printf JPL "(CHARSINTYPE H %X\n",($j+7);
+ print JPL " ";
+ @char_in_this_type = ();
+ while (($name, $value) = each(%char_width_hash)) {
+ if ($value == $uniq_char_width_array[$j]){
+ push(@char_in_this_type, $name);
+ }
+ }
+ @char_in_this_type = sort @char_in_this_type;
+ foreach $char_in_this(@char_in_this_type){
+ print JPL "$char_in_this ";#character
+ }
+ print JPL "\n";
+ print JPL " )\n";
+ }
+}
+sub print_type_prop{
+ for ($j=0; $j<=$#uniq_char_width_array; $j++){
+ $char_width=$uniq_char_width_array[$j];
+ printf JPL "(TYPE H %X\n", ($j+7);
+ printf JPL " (CHARWD R %f)\n", $char_width;
+ &char_foot_h;
+ }
+}
+
+sub get_charwidth{
+ my ($i,$dvicode)=@_;
+ my ($char,$u,$l);
+
+ if (!$ucs) {
+ if ($dvicode>=0x2474 && $dvicode<=0x2476) {
+ return 0;
+ }
+ $u = ($dvicode >> 8) & 0xFF | 0x80;
+ $l = $dvicode & 0xFF | 0x80;
+ $char = pack("C*",$u,$l);
+ Encode::from_to($char,'euc-jp','utf-8');
+ } else {
+ $u = ($dvicode >> 8) & 0xFF;
+ $l = $dvicode & 0xFF;
+ $char = pack("C*",$u,$l);
+ Encode::from_to($char,'utf-16be','utf-8');
+ }
+ if (!exists($charwidth[$i]{$char})) {
+ return 0;
+ }
+ return ($charwidth[$i]{$char}, $cid{$char});
+}
+
+
+__DATA__
+character cid min_w3 min_w6 goth_w3 goth_w6 maru_w4
+ヽ 15976 7.17 7.46 7.92 8.27 8.13
+ヾ 15977 8.34 8.44 8.46 8.62 8.5
+ゝ 15978 7.77 7.98 8.44 8.69 8.62
+ゞ 15979 8.32 8.54 8.8 8.92 8.98
+ー 15982 9.96 9.98 9.99 9.99 9.98
+ぁ 15985 9.03 9.15 9.01 9.18 9.17
+あ 15986 9.6 9.79 9.6 9.77 9.75
+ぃ 15987 7.75 7.92 8.09 8.4 8.59
+い 15988 8.19 8.47 8.46 8.8 8.83
+ぅ 15989 9.42 9.47 8.97 9.2 9.19
+う 15990 9.98 9.99 9.58 9.8 9.79
+ぇ 15991 8.89 9.12 8.84 9.15 9.05
+え 15992 9.47 9.74 9.42 9.7 9.59
+ぉ 15993 8.65 8.89 8.86 9.06 9.08
+お 15994 9.14 9.48 9.39 9.67 9.61
+か 15995 8.99 9.24 9.26 9.47 9.45
+が 15996 9.1 9.39 9.41 9.67 9.6
+き 15997 9.71 9.93 9.73 9.88 9.82
+ぎ 15998 9.71 9.86 9.8 9.96 9.92
+く 15999 9.99 9.99 9.56 9.77 9.47
+ぐ 16000 9.79 9.98 9.49 9.7 9.5
+け 16001 9.52 9.64 9.54 9.79 9.66
+げ 16002 9.76 9.82 9.56 9.76 9.62
+こ 16003 9.26 9.47 9.38 9.67 9.57
+ご 16004 9.44 9.6 9.23 9.6 9.49
+さ 16005 9.67 9.84 9.67 9.85 9.77
+ざ 16006 9.71 9.85 9.86 9.97 9.95
+し 16007 9.42 9.53 9.38 9.53 9.53
+じ 16008 9.63 9.74 9.71 9.86 9.72
+す 16009 9.39 9.61 9.3 9.55 9.43
+ず 16010 9.61 9.83 9.6 9.84 9.68
+せ 16011 9.18 9.45 9.44 9.7 9.54
+ぜ 16012 9.47 9.66 9.53 9.79 9.63
+そ 16013 9.45 9.66 9.4 9.65 9.57
+ぞ 16014 9.56 9.74 9.43 9.65 9.59
+た 16015 9.23 9.47 9.39 9.59 9.59
+だ 16016 9.48 9.68 9.59 9.81 9.72
+ち 16017 9.61 9.78 9.63 9.81 9.68
+ぢ 16018 9.67 9.8 9.85 9.97 9.92
+っ 16019 7.96 8.04 8.23 8.47 8.6
+つ 16020 8.24 8.42 8.62 8.87 8.98
+づ 16021 8.99 9.15 9.26 9.44 9.42
+て 16022 8.69 8.92 8.89 9.19 9.16
+で 16023 8.76 8.95 8.92 9.19 9.23
+と 16024 9.75 9.89 9.59 9.82 9.65
+ど 16025 9.69 9.89 9.81 9.96 9.93
+な 16026 9.48 9.66 9.48 9.65 9.62
+に 16027 8.95 9.17 9.19 9.42 9.4
+ぬ 16028 8.98 9.23 9.34 9.57 9.49
+ね 16029 9.25 9.54 9.52 9.68 9.62
+の 16030 8.82 8.99 9.02 9.28 9.24
+は 16031 9.28 9.55 9.5 9.75 9.66
+ば 16032 9.57 9.76 9.67 9.82 9.76
+ぱ 16033 9.7 9.82 9.84 9.97 9.92
+ひ 16034 9.19 9.36 9.18 9.4 9.41
+び 16035 9.46 9.64 9.4 9.61 9.61
+ぴ 16036 9.72 9.8 9.71 9.79 9.81
+ふ 16037 9.05 9.39 9.25 9.5 9.46
+ぶ 16038 9.16 9.47 9.29 9.54 9.49
+ぷ 16039 9.15 9.43 9.33 9.53 9.52
+へ 16040 7.21 7.43 7.84 8.2 8.32
+べ 16041 8.13 8.33 8.21 8.52 8.58
+ぺ 16042 8.43 8.58 8.56 8.84 8.78
+ほ 16043 9.23 9.46 9.45 9.71 9.67
+ぼ 16044 9.61 9.74 9.65 9.89 9.79
+ぽ 16045 9.65 9.81 9.7 9.9 9.87
+ま 16046 9.76 9.88 9.57 9.74 9.64
+み 16047 9.17 9.36 9.24 9.48 9.38
+む 16048 9.37 9.58 9.49 9.71 9.64
+め 16049 9.18 9.41 9.38 9.58 9.53
+も 16050 9.76 9.91 9.48 9.68 9.6
+ゃ 16051 8.69 8.83 8.89 9.1 8.99
+や 16052 9.38 9.54 9.52 9.7 9.62
+ゅ 16053 8.73 8.82 8.88 9.08 9.03
+ゆ 16054 9.22 9.4 9.4 9.63 9.58
+ょ 16055 8.95 9.17 9.03 9.28 9.09
+よ 16056 9.63 9.83 9.63 9.82 9.61
+ら 16057 9.66 9.82 9.5 9.74 9.79
+り 16058 9.82 9.85 9.75 9.88 9.79
+る 16059 9.59 9.8 9.55 9.77 9.7
+れ 16060 9.21 9.43 9.4 9.59 9.55
+ろ 16061 9.66 9.79 9.55 9.79 9.73
+ゎ 16062 8.58 8.73 8.71 8.93 8.86
+わ 16063 9.28 9.45 9.38 9.54 9.54
+ゐ 16064 9.37 9.59 9.46 9.68 9.57
+ゑ 16065 9.65 9.82 9.64 9.86 9.8
+を 16066 9.64 9.79 9.62 9.83 9.71
+ん 16067 9.2 9.4 9.32 9.54 9.45
+ァ 16076 8.45 8.5 8.55 8.76 8.92
+ア 16077 8.96 9.2 9.19 9.44 9.41
+ィ 16078 8.81 8.92 8.63 8.88 8.75
+イ 16079 9.29 9.46 9.28 9.48 9.35
+ゥ 16080 8.89 8.93 8.82 9.03 8.94
+ウ 16081 9.38 9.56 9.4 9.59 9.46
+ェ 16082 7.81 8.04 8.33 8.65 8.84
+エ 16083 8.12 8.39 8.77 9.06 9.3
+ォ 16084 8.76 8.84 8.76 8.99 8.9
+オ 16085 9.21 9.41 9.29 9.51 9.38
+カ 16086 9.26 9.48 9.46 9.68 9.52
+ガ 16087 9.27 9.5 9.66 9.79 9.71
+キ 16088 9.25 9.41 9.4 9.6 9.39
+ギ 16089 9.56 9.65 9.78 9.87 9.78
+ク 16090 9.25 9.37 9.33 9.53 9.44
+グ 16091 9.49 9.57 9.39 9.69 9.66
+ケ 16092 9.19 9.32 9.14 9.35 9.37
+ゲ 16093 9.6 9.65 9.47 9.59 9.64
+コ 16094 8.32 8.59 9.13 9.4 9.4
+ゴ 16095 8.83 9.13 9.52 9.78 9.7
+サ 16096 9.17 9.37 9.34 9.53 9.49
+ザ 16097 9.53 9.65 9.39 9.58 9.62
+シ 16098 8.39 8.61 8.88 9.11 9.53
+ジ 16099 9.1 9.21 9.31 9.39 9.84
+ス 16100 8.61 8.85 9 9.3 9.22
+ズ 16101 9.24 9.44 9.44 9.68 9.58
+セ 16102 8.67 8.93 9.17 9.43 9.4
+ゼ 16103 9.26 9.4 9.63 9.78 9.78
+ソ 16104 8.89 9.06 8.98 9.21 9.12
+ゾ 16105 9.52 9.64 9.56 9.63 9.61
+タ 16106 9.31 9.42 9.41 9.6 9.56
+ダ 16107 9.56 9.61 9.53 9.74 9.76
+チ 16108 9.2 9.4 9.14 9.39 9.31
+ヂ 16109 9.35 9.51 9.18 9.4 9.34
+ッ 16110 8.33 8.43 8.55 8.77 8.77
+ツ 16111 8.8 8.97 9.01 9.26 9.2
+ヅ 16112 9.48 9.61 9.5 9.64 9.7
+テ 16113 9.13 9.34 9.28 9.5 9.45
+デ 16114 9.38 9.62 9.27 9.51 9.64
+ト 16115 9.58 9.74 9.35 9.51 9.33
+ド 16116 9.63 9.75 9.45 9.68 9.62
+ナ 16117 9.11 9.35 9.08 9.37 9.31
+ニ 16118 8.01 8.31 8.62 8.93 9.17
+ヌ 16119 9.06 9.33 9.17 9.43 9.44
+ネ 16120 9.45 9.64 9.53 9.73 9.49
+ノ 16121 8.8 9.13 8.77 9.02 8.92
+ハ 16122 7.42 7.65 8.71 9 8.97
+バ 16123 8.16 8.44 8.82 9.07 9.34
+パ 16124 8.55 8.74 9.09 9.23 9.44
+ヒ 16125 8.79 9.06 9.33 9.51 9.46
+ビ 16126 9.2 9.35 9.7 9.83 9.74
+ピ 16127 9.39 9.55 9.83 9.92 9.89
+フ 16128 8.91 9.06 9.01 9.29 9.28
+ブ 16129 9.47 9.63 9.58 9.74 9.61
+プ 16130 9.56 9.67 9.31 9.51 9.72
+ヘ 16131 7.09 7.38 7.79 8.15 8.32
+ベ 16132 8.05 8.32 8.3 8.5 8.59
+ペ 16133 8.35 8.58 8.47 8.85 8.86
+ホ 16134 9.07 9.32 9.47 9.71 9.5
+ボ 16135 9.39 9.58 9.74 9.9 9.8
+ポ 16136 9.64 9.73 9.83 9.98 9.92
+マ 16137 8.1 8.38 8.95 9.19 9.16
+ミ 16138 9.25 9.47 9.25 9.51 9.4
+ム 16139 8.79 9.1 9.19 9.42 9.33
+メ 16140 8.88 9.18 8.95 9.18 9.15
+モ 16141 8.74 9 9.25 9.46 9.47
+ャ 16142 8.52 8.68 8.79 8.94 8.88
+ヤ 16143 8.98 9.19 9.37 9.53 9.41
+ュ 16144 7.76 7.99 8.31 8.62 8.79
+ユ 16145 8.09 8.33 8.7 9.01 9.25
+ョ 16146 8.38 8.55 8.83 9.11 9.19
+ヨ 16147 8.8 9.05 9.38 9.62 9.73
+ラ 16148 9.29 9.47 9.35 9.64 9.61
+リ 16149 9.75 9.89 9.64 9.84 9.69
+ル 16150 8.5 8.83 9.33 9.58 9.42
+レ 16151 8.35 8.71 9 9.18 9.17
+ロ 16152 8.42 8.71 9.23 9.47 9.59
+ヮ 16153 8.56 8.65 8.69 8.91 8.97
+ワ 16154 9.03 9.15 9.21 9.43 9.47
+ヰ 16155 9.35 9.58 9.31 9.59 9.42
+ヱ 16156 8.34 8.65 8.95 9.25 9.41
+ヲ 16157 9.17 9.39 9.27 9.49 9.49
+ン 16158 8.11 8.3 8.51 8.78 8.79
+ヴ 16159 9.47 9.62 9.49 9.69 9.63
+ヵ 16160 8.73 8.9 8.93 9.11 9
+ヶ 16161 8.53 8.64 8.41 8.66 8.69
+〃 15980 8.16 8.40 8.74 8.90 8.88
+〆 15981 8.94 9.09 8.99 9.14 9.04
+ヿ 15983 9.36 9.59 9.59 9.75 9.74
+ゟ 15984 9.81 9.96 9.75 9.82 9.79
+ゔ 16068 9.63 9.72 9.28 9.50 9.50
+ゕ 16069 8.41 8.60 8.61 8.80 8.85
+ゖ 16070 8.90 9.03 8.92 9.13 9.11
+ㇰ 16170 8.65 8.67 8.78 8.94 8.92
+ㇱ 16171 7.86 8.08 8.25 8.46 8.51
+ㇲ 16172 8.22 8.40 8.57 8.80 8.77
+ㇳ 16173 9.01 9.06 8.81 9.03 8.74
+ㇴ 16174 8.51 8.65 8.64 8.94 8.93
+ㇵ 16175 7.14 7.31 8.29 8.56 8.58
+ㇶ 16176 8.29 8.52 8.76 9.00 8.90
+ㇷ 16177 8.42 8.50 8.52 8.75 8.81
+ㇸ 16178 6.79 7.01 7.32 7.65 7.81
+ㇹ 16179 8.57 8.77 8.83 9.04 8.96
+ㇺ 16181 8.34 8.62 8.66 8.90 8.81
+ㇻ 16182 8.80 8.86 8.84 9.09 9.09
+ㇼ 16183 9.13 9.22 8.99 9.23 9.14
+ㇽ 16184 8.02 8.30 8.71 8.97 8.89
+ㇾ 16185 7.89 8.08 8.41 8.66 8.59
+ㇿ 16186 8.11 8.24 8.71 8.98 9.04
+ヷ 16187 9.42 9.66 9.44 9.78 9.75
+ヸ 16188 9.61 9.8 9.73 9.84 9.77
+ヹ 16189 8.94 9.28 9.56 9.80 9.88
+ヺ 16190 9.54 9.71 9.67 9.82 9.74
+end
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf
new file mode 100755
index 00000000000..5749e6fcb7a
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf
@@ -0,0 +1,109 @@
+#!/bin/sh
+
+#
+# This script is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+#
+
+# setting for ovp2ovf & uppltotf
+. ./umakeotf_pre
+
+if test ! -d tfm; then
+mkdir tfm
+fi
+
+
+echo "making tfm ..."
+for series in nml exp ruby
+do
+for face in minr gothr minb gothb mgothr
+do
+$UPPLTOTF -kanji=uptex basepl/ubase-h.pl tfm/up${series}${face}-h.tfm
+$UPPLTOTF -kanji=uptex basepl/ubase-v.pl tfm/up${series}${face}-v.tfm
+done
+done
+#for extra fonts
+for series in nml exp ruby
+do
+for face in gotheb minl
+do
+$UPPLTOTF -kanji=uptex basepl/ubase-h.pl tfm/up${series}${face}-h.tfm
+$UPPLTOTF -kanji=uptex basepl/ubase-v.pl tfm/up${series}${face}-v.tfm
+done
+done
+
+echo "making vf (wait a while)..."
+for face in minr gothr minb gothb mgothr
+do
+./umkjvf -ucs -sp 1 -cq upnml${face}-h uph${face}-h
+./umkjvf -ucs -sp 1 -cm -cp upnml${face}-v uph${face}-v
+done
+#extra fonts
+for face in gotheb minl
+do
+./umkjvf -ucs -sp 1 -cq upnml${face}-h uph${face}-h
+./umkjvf -ucs -sp 1 -cm -cp upnml${face}-v uph${face}-v
+done
+
+
+echo "making tfm for CK ..."
+#for CK base fonts
+for series in nm
+do
+for lang in sch tch kor
+do
+for face in minr gothr minb gothb mgothr gotheb minl
+do
+$UPPLTOTF -kanji=uptex basepl/ubase-${lang}-h.pl up${series}${lang}${face}-h.tfm
+$UPPLTOTF -kanji=uptex basepl/ubase-${lang}-v.pl up${series}${lang}${face}-v.tfm
+done
+done
+done
+
+echo "making vf for CK ..."
+#for CK base fonts
+for series in nm
+do
+for lang in sch tch kor
+do
+for face in minr gothr minb gothb mgothr gotheb minl
+do
+#makejvf -i -u custom -e -t basepl/mjvf-up${series}${lang}.cnf up${series}${lang}${face}-h upa${lang}${face}-h
+#makejvf -i -u custom -e -t basepl/mjvf-up${series}${lang}.cnf up${series}${lang}${face}-v upa${lang}${face}-v
+makejvf -i -u custom -e -t basepl/mjvf-up${series}${lang}-slim.cnf up${series}${lang}${face}-h upa${lang}${face}-h
+makejvf -i -u custom -e -t basepl/mjvf-up${series}${lang}-slim.cnf up${series}${lang}${face}-v upa${lang}${face}-v
+done
+done
+done
+
+
+echo "making alt. kana ..."
+for face in minr gothr minb gothb mgothr
+do
+./umkjvf -ucs -sp 1 -omitfw -cq -expert upexp${face}-h uph${face}-h cidj${face}
+./umkjvf -ucs -sp 1 -omitfw -cm -cp -expert upexp${face}-v uph${face}-v cidj${face}
+./umkjvf -ucs -sp 1 -omitfw -cq -ruby upruby${face}-h uph${face}-h cidj${face}
+./umkjvf -ucs -sp 1 -omitfw -cm -cp -ruby upruby${face}-v uph${face}-v cidj${face}
+done
+#extra fonts
+for face in gotheb minl
+do
+./umkjvf -ucs -sp 1 -omitfw -cq -expert upexp${face}-h uph${face}-h cidj${face}
+./umkjvf -ucs -sp 1 -omitfw -cm -cp -expert upexp${face}-v uph${face}-v cidj${face}
+./umkjvf -ucs -sp 1 -omitfw -cq -ruby upruby${face}-h uph${face}-h cidj${face}
+./umkjvf -ucs -sp 1 -omitfw -cm -cp -ruby upruby${face}-v uph${face}-v cidj${face}
+done
+
+
+echo "making tfm for supplementary plane ..."
+perl script/mktfm_sp.pl
+echo "making vf for supplementary plane ..."
+perl script/mkutfvf_sp.pl
+
+
+echo "finishing ..."
+if test ! -d vf; then
+mkdir vf
+fi
+mv *.vf vf/
+mv *.tfm tfm/
+rm -rf ovp
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_brsg b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_brsg
new file mode 100755
index 00000000000..2296dc79293
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_brsg
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+#
+# This script is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+#
+
+# setting for ovp2ovf & uppltotf
+. ./umakeotf_pre
+
+if test ! -d tfm; then
+mkdir tfm
+fi
+
+
+echo "making tfm for burasage ..."
+for series in nml exp
+do
+for face in minr gothr minb gothb mgothr
+do
+$UPPLTOTF -kanji=uptex basepl/ubrsg-h.pl tfm/upbrsg${series}${face}-h.tfm
+$UPPLTOTF -kanji=uptex basepl/ubrsg-v.pl tfm/upbrsg${series}${face}-v.tfm
+done
+done
+#extra fonts
+for series in nml exp
+do
+for face in gotheb minl
+do
+$UPPLTOTF -kanji=uptex basepl/ubrsg-h.pl tfm/upbrsg${series}${face}-h.tfm
+$UPPLTOTF -kanji=uptex basepl/ubrsg-v.pl tfm/upbrsg${series}${face}-v.tfm
+done
+done
+
+
+echo "making vf for burasage ..."
+for face in minr gothr minb gothb mgothr
+do
+./umkjvf -ucs -sp 1 -sage -omitfw -cq upbrsgnml${face}-h uph${face}-h
+./umkjvf -ucs -sp 1 -sage -omitfw -cm -cp upbrsgnml${face}-v uph${face}-v
+done
+#extra fonts
+for face in gotheb minl
+do
+./umkjvf -ucs -sp 1 -sage -omitfw -cq upbrsgnml${face}-h uph${face}-h
+./umkjvf -ucs -sp 1 -sage -omitfw -cm -cp upbrsgnml${face}-v uph${face}-v
+done
+for face in minr gothr minb gothb mgothr
+do
+./umkjvf -ucs -sp 1 -sage -omitfw -cq -expert upbrsgexp${face}-h uph${face}-h cidj${face}
+./umkjvf -ucs -sp 1 -sage -omitfw -cm -cp -expert upbrsgexp${face}-v uph${face}-v cidj${face}
+done
+#extra fonts
+for face in gotheb minl
+do
+./umkjvf -ucs -sp 1 -sage -omitfw -cq -expert upbrsgexp${face}-h uph${face}-h cidj${face}
+./umkjvf -ucs -sp 1 -sage -omitfw -cm -cp -expert upbrsgexp${face}-v uph${face}-v cidj${face}
+done
+
+
+echo "finishing ..."
+if test ! -d vf; then
+mkdir vf
+fi
+mv *.vf vf/
+mv *.tfm tfm/
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_jis04 b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_jis04
new file mode 100755
index 00000000000..f02e69fd63c
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_jis04
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+#
+# This script is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+#
+
+# setting for ovp2ovf & uppltotf
+. ./umakeotf_pre
+
+if test ! -d tfm; then
+mkdir tfm
+fi
+
+
+echo "making tfm for jis2004 ..."
+for series in nml exp
+do
+for face in minr gothr minb gothb mgothr
+do
+$UPPLTOTF -kanji=uptex basepl/ubase-h.pl tfm/up${series}${face}n-h.tfm
+$UPPLTOTF -kanji=uptex basepl/ubase-v.pl tfm/up${series}${face}n-v.tfm
+done
+done
+#for extra fonts
+for series in nml exp
+do
+for face in gotheb minl
+do
+$UPPLTOTF -kanji=uptex basepl/ubase-h.pl tfm/up${series}${face}n-h.tfm
+$UPPLTOTF -kanji=uptex basepl/ubase-v.pl tfm/up${series}${face}n-v.tfm
+done
+done
+
+
+echo "making tfm for burasage & jis2004 ..."
+for series in nml exp
+do
+for face in minr gothr minb gothb mgothr
+do
+$UPPLTOTF -kanji=uptex basepl/ubrsg-h.pl tfm/upbrsg${series}${face}n-h.tfm
+$UPPLTOTF -kanji=uptex basepl/ubrsg-v.pl tfm/upbrsg${series}${face}n-v.tfm
+done
+done
+#for extra fonts
+for series in nml exp
+do
+for face in gotheb minl
+do
+$UPPLTOTF -kanji=uptex basepl/ubrsg-h.pl tfm/upbrsg${series}${face}n-h.tfm
+$UPPLTOTF -kanji=uptex basepl/ubrsg-v.pl tfm/upbrsg${series}${face}n-v.tfm
+done
+done
+
+
+echo "making vf for jis2004 ..."
+for face in minr gothr minb gothb mgothr
+do
+./umkjvf -ucs -sp 1 -cq upnml${face}n-h uph${face}n-h
+./umkjvf -ucs -sp 1 -cm -cp upnml${face}n-v uph${face}n-v
+done
+#extra fonts
+for face in gotheb minl
+do
+./umkjvf -ucs -sp 1 -cq upnml${face}n-h uph${face}n-h
+./umkjvf -ucs -sp 1 -cm -cp upnml${face}n-v uph${face}n-v
+done
+
+for face in minr gothr minb gothb mgothr
+do
+./umkjvf -ucs -sp 1 -omitfw -cq -expert upexp${face}n-h uph${face}n-h cidj${face}
+./umkjvf -ucs -sp 1 -omitfw -cm -cp -expert upexp${face}n-v uph${face}n-v cidj${face}
+done
+#extra fonts
+for face in gotheb minl
+do
+./umkjvf -ucs -sp 1 -omitfw -cq -expert upexp${face}n-h uph${face}n-h cidj${face}
+./umkjvf -ucs -sp 1 -omitfw -cm -cp -expert upexp${face}n-v uph${face}n-v cidj${face}
+done
+
+
+echo "making vf for burasage & jis2004 ..."
+for face in minr gothr minb gothb mgothr
+do
+./umkjvf -ucs -sp 1 -sage -omitfw -cq upbrsgnml${face}n-h uph${face}n-h
+./umkjvf -ucs -sp 1 -sage -omitfw -cm -cp upbrsgnml${face}n-v uph${face}n-v
+done
+#extra fonts
+for face in gotheb minl
+do
+./umkjvf -ucs -sp 1 -sage -omitfw -cq upbrsgnml${face}n-h uph${face}n-h
+./umkjvf -ucs -sp 1 -sage -omitfw -cm -cp upbrsgnml${face}n-v uph${face}n-v
+done
+
+for face in minr gothr minb gothb mgothr
+do
+./umkjvf -ucs -sp 1 -sage -omitfw -cq -expert upbrsgexp${face}n-h uph${face}n-h cidj${face}
+./umkjvf -ucs -sp 1 -sage -omitfw -cm -cp -expert upbrsgexp${face}n-v uph${face}n-v cidj${face}
+done
+#extra fonts
+for face in gotheb minl
+do
+./umkjvf -ucs -sp 1 -sage -omitfw -cq -expert upbrsgexp${face}n-h uph${face}n-h cidj${face}
+./umkjvf -ucs -sp 1 -sage -omitfw -cm -cp -expert upbrsgexp${face}n-v uph${face}n-v cidj${face}
+done
+
+
+echo "finishing ..."
+if test ! -d vf; then
+mkdir vf
+fi
+mv *.vf vf/
+mv *.tfm tfm/
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_pre b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_pre
new file mode 100644
index 00000000000..1336cc21828
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_pre
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+#
+# This script is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+#
+
+# setting for ovp2ovf & uppltotf
+#OVP2OVF='omfonts -ovp2ovf'
+OVP2OVF=ovp2ovf
+export OVP2OVF
+UPPLTOTF=uppltotf
+
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_prop b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_prop
new file mode 100755
index 00000000000..13b27d5152b
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/umakeotf_prop
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+#
+# This script is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex).
+#
+
+# setting for ovp2ovf & uppltotf
+. ./umakeotf_pre
+
+if test ! -d tfm; then
+mkdir tfm
+fi
+if test ! -d vf; then
+mkdir vf
+fi
+if test ! -d ovp; then
+mkdir ovp
+fi
+
+echo "making proportional kana tfm/vf ..."
+perl -s script/umkpkana.pl -omitfw -hk
+perl -s script/umkvpkana.pl -omitfw
+
+for face in minw3 minw6 kakuw3 kakuw6 maruw4
+do
+$UPPLTOTF -kanji=uptex pl/upphira${face}-h.pl tfm/upphira${face}-h.tfm
+$UPPLTOTF -kanji=uptex pl/upphira${face}-v.pl tfm/upphira${face}-v.tfm
+done
+
+for face in minw3 minw6 kakuw3 kakuw6 maruw4
+do
+$OVP2OVF ovp/upphira${face}-h.ovp vf/upphira${face}-h.vf vf/upphira${face}-h.ofm
+$OVP2OVF ovp/upphira${face}-v.ovp vf/upphira${face}-v.vf vf/upphira${face}-v.ofm
+done
+
+rm vf/*.ofm
+rm -rf ovp
+rm -rf pl
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/umkjvf b/Master/texmf-dist/doc/fonts/japanese-otf/src/umkjvf
new file mode 100755
index 00000000000..f90f4a5a0aa
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/japanese-otf/src/umkjvf
@@ -0,0 +1,962 @@
+#!/usr/bin/perl
+###################
+### main part ###
+###################
+use FindBin;
+use lib "$FindBin::Bin/script";
+use CheckDVICode;
+#initialize
+&initialize_constant;
+#processing arguments
+&proc_arg;
+if ($sp==1) { # supplemental plane
+ use MakeSPList;
+ &make_sp_char_list('j');
+ %exist_char=%{$MakeSPList::r_exist_char->{'j'}};
+}
+#make ovp
+&font_header;
+&write_char;
+#make vf & tfm
+&make_vf;
+&make_tfm;
+
+##########################
+#### dfn of sub rtns ###
+##########################
+sub initialize_constant{
+ $unknown=0;
+ $burasage=0;
+ $jis2004=0;
+ $minute_option=0;
+ $alt_kana_true=0;
+ $ruby_hira_code=0x356F;
+ $ruby_kata_code=0x3751;
+ $exp_hira_code_h=0x6F63;
+ $exp_kata_code_h=0x313D;
+ $exp_hira_code_v=0x325a;
+ $exp_kata_code_v=0x3434;
+ $ruby_font_map=2;
+ $exp_font_map=2;
+ @yoko_tfm_binary=(0x00, 0x0B, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x14, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEB, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+ @tate_tfm_binary=(0x00, 0x09, 0x00, 0x01, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+ @yoko_ucs_tfm_binary=map{ hex($_) } qw/
+ 00 0b 00 40 00 5c 00 02 00 00 00 01 00 03 00 02
+ 00 02 00 01 00 00 00 00 00 00 00 09 00 00 00 00
+ 00 a0 00 00 00 00 00 00 ff 61 00 01 ff 62 00 01
+ ff 63 00 01 ff 64 00 01 ff 65 00 01 ff 66 00 01
+ ff 67 00 01 ff 68 00 01 ff 69 00 01 ff 6a 00 01
+ ff 6b 00 01 ff 6c 00 01 ff 6d 00 01 ff 6e 00 01
+ ff 6f 00 01 ff 70 00 01 ff 71 00 01 ff 72 00 01
+ ff 73 00 01 ff 74 00 01 ff 75 00 01 ff 76 00 01
+ ff 77 00 01 ff 78 00 01 ff 79 00 01 ff 7a 00 01
+ ff 7b 00 01 ff 7c 00 01 ff 7d 00 01 ff 7e 00 01
+ ff 7f 00 01 ff 80 00 01 ff 81 00 01 ff 82 00 01
+ ff 83 00 01 ff 84 00 01 ff 85 00 01 ff 86 00 01
+ ff 87 00 01 ff 88 00 01 ff 89 00 01 ff 8a 00 01
+ ff 8b 00 01 ff 8c 00 01 ff 8d 00 01 ff 8e 00 01
+ ff 8f 00 01 ff 90 00 01 ff 91 00 01 ff 92 00 01
+ ff 93 00 01 ff 94 00 01 ff 95 00 01 ff 96 00 01
+ ff 97 00 01 ff 98 00 01 ff 99 00 01 ff 9a 00 01
+ ff 9b 00 01 ff 9c 00 01 ff 9d 00 01 ff 9e 00 01
+ ff 9f 00 01 02 11 00 00 01 11 00 00 00 00 00 00
+ 00 08 00 00 00 10 00 00 00 00 00 00 00 0e 14 7b
+ 00 00 00 00 00 01 eb 85 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00
+ 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ /;
+ @minute_code=(0x216C, 0x216C, 0x216D, 0x216D);
+ @shift_minute_code=(0x818C, 0x818C, 0x818D, 0x818D);
+ @cid_minute_code=(0x6E3D, 0x6E3E, 0x6C44, 0x6C45);
+ @cid_hquote_code=(0x3A4E, 0x3A4F, 0x3A50, 0x3A51); # CID: 670 .. 673
+ @cid_vquote_code=(0x314A, 0x3143, 0x3148, 0x3145); # CID: 8282, 8275, 8280, 8277
+ @ruby_odori_h=(0x3559, 0x355a, 0x355b, 0x355c, 0x3933);
+ @ruby_odori_v=(0x3559, 0x355a, 0x355b, 0x355c, 0x3934);
+ @exp_odori_h=(0x313a, 0x313b, 0x6f61, 0x6f62, 0x313c); # CID: 12362, 12363, 12273, 12274, 12364
+ @exp_odori_v=(0x3431, 0x3432, 0x3258, 0x3259, 0x3433); # CID: 12545, 12456, 12457, 12274, 12547
+ @cid_hkana_code=(0x3537 .. 0x356F, 0x3630 .. 0x3635); # CID: 327 .. 389
+ %kaisei_jikei = (0x3029 => 8266, 0x3032 => 7961, 0x303B => 7634, 0x306E => 7635, 0x3071 => 7962, 0x3073 => 7636, 0x307C => 7637, 0x312A => 7638, 0x3139 => 20271, 0x313D => 7642, 0x3142 => 13650, 0x3228 => 7645, 0x3260 => 7647, 0x3267 => 7965, 0x3276 => 13673, 0x327A => 20269, 0x3322 => 7650, 0x336B => 7652, 0x3373 => 7653, 0x3378 => 20290, 0x344D => 7656, 0x3465 => 7657, 0x352B => 7658, 0x3540 => 7659, 0x3562 => 7966, 0x3564 => 20270, 0x3568 => 20263, 0x362A => 7661, 0x3642 => 7968, 0x364F => 7662, 0x3674 => 7664, 0x367B => 7665, 0x367D => 7666, 0x3729 => 20272, 0x3737 => 7668, 0x3764 => 20273, 0x3771 => 7674, 0x377E => 7676, 0x3830 => 20276, 0x3841 => 7678, 0x392B => 7679, 0x393C => 20279, 0x3974 => 7683, 0x3979 => 20284, 0x3A35 => 20281, 0x3A67 => 7686, 0x3B27 => 7688, 0x3B2A => 7689, 0x3B2C => 7690, 0x3B2D => 20280, 0x3B41 => 7970, 0x3C5D => 7695, 0x3C5E => 7696, 0x3D36 => 7698, 0x3D5D => 13460, 0x3D72 => 7701, 0x3D73 => 7702, 0x3E25 => 7703, 0x3E64 => 7708, 0x3E73 => 20282, 0x3F2A => 7709, 0x3F56 => 13860, 0x3F60 => 7711, 0x4022 => 7713, 0x4071 => 7716, 0x4079 => 7718, 0x407A => 7972, 0x407C => 7973, 0x407D => 7974, 0x4127 => 7720, 0x4139 => 7721, 0x414C => 7722, 0x4237 => 7975, 0x423D => 7726, 0x425C => 7728, 0x427D => 7733, 0x4329 => 7735, 0x432E => 7738, 0x4337 => 13915, 0x4370 => 7740, 0x4375 => 7741, 0x443D => 7743, 0x4448 => 7744, 0x444A => 7745, 0x4454 => 8267, 0x4472 => 20286, 0x4522 => 7748, 0x4527 => 7749, 0x452E => 7750, 0x4546 => 13949, 0x4548 => 7753, 0x454B => 7754, 0x4552 => 7756, 0x4654 => 7761, 0x465B => 20287, 0x4666 => 7766, 0x4667 => 7767, 0x466A => 7768, 0x4729 => 7769, 0x4757 => 7771, 0x4767 => 7772, 0x4769 => 7773, 0x477D => 20288, 0x4824 => 7775, 0x4840 => 7978, 0x4854 => 7778, 0x4870 => 13495, 0x4875 => 7780, 0x4923 => 7782, 0x492F => 7783, 0x4935 => 7785, 0x493F => 20222, 0x4940 => 7786, 0x494E => 7787, 0x4960 => 20289, 0x4A43 => 7789, 0x4A4D => 7790, 0x4A4E => 14013, 0x4A53 => 7979, 0x4A5A => 7791, 0x4A5C => 20291, 0x4A79 => 7792, 0x4B29 => 7794, 0x4B70 => 7796, 0x4B78 => 7980, 0x4C59 => 7798, 0x4C5F => 7799, 0x4C62 => 20293, 0x4C6C => 20294, 0x4C7A => 7801, 0x4C7C => 7802, 0x4D32 => 14074, 0x4E7A => 7809, 0x4E7B => 7810, 0x4E7C => 20265, 0x4F31 => 7812, 0x514D => 7817, 0x5257 => 14111, 0x527B => 20277, 0x535E => 7821, 0x5373 => 14116, 0x5751 => 13538, 0x5928 => 7991, 0x6044 => 20278, 0x6131 => 20267, 0x6134 => 20283, 0x6156 => 20175, 0x635E => 20285, 0x6427 => 20266, 0x6440 => 7997, 0x6727 => 20275, 0x675B => 14196, 0x676A => 20292, 0x694A => 20274, 0x6967 => 20296, 0x6A24 => 20295, 0x6B43 => 20268, 0x7057 => 13624, 0x7159 => 8003, 0x726D => 14272);
+}
+sub reorder_odoriji {
+=comment
+The order of odorijis in UCS is different from that in JIS
+JIS UCS
+0x2133 U+30FD # KATAKANA ITERATION MARK
+0x2134 U+30FE # KATAKANA VOICED ITERATION MARK
+0x2135 U+309D # HIRAGANA ITERATION MARK
+0x2136 U+309E # HIRAGANA VOICED ITERATION MARK
+0x213C U+30FC # KATAKANA-HIRAGANA PROLONGED SOUND MARK
+=cut
+ my $ref;
+ foreach $ref (\@ruby_odori_h, \@ruby_odori_v, \@exp_odori_h, \@exp_odori_v) {
+ @$ref = @$ref[2..4, 0, 1];
+ }
+}
+sub proc_arg {
+ if ($#ARGV == -1) {&print_help;}
+ GetOptions(\@ARGV, ['^-b', \$baseline_shift, 1], ['^-m', \$minute_option, 0], ['^-cm', \$cid_minute, 0], ['^-cq', \$cid_quote, 0], ['^-cp', \$comma_period, 0], ['^-chk', \$cid_hankana, 0], ['^-SJIS', \$sjis, 0], ['^-scale', \$scale, 1], ['^-notfm', \$without_tfm, 1], ['^-expert', \$expert, 0], ['^-ruby', \$ruby, 0], ['^-sage', \$burasage, 0], ['^-jp04', \$jis2004, 0], ['^-ucs', \$ucs, 0], ['^-omitfw', \$omitfw, 0], ['^-sp', \$sp, 1], ['^-ovp2ovf', \$ovp2ovf_command, 1], ['^-h(e|el|elp)?', \$help, 0], ['^-dbg', \$debug_mode, 0], ['^-(.+)', \$unknown, 0]);
+ if ($unknown == 1){
+ print "umkjvf: Unknown options!\n";
+ &print_help;
+ }
+ if ($help == 1){&print_help;}
+ if (($expert == 0) && ($ruby == 0)){
+ if ($#ARGV <= 0) {
+ print "umkjvf: Need two to three file arguments.\n";
+ &print_help;
+ }
+ } elsif (($expert != 0) && ($ruby != 0)){
+ print "umkjvf: You can't use \"-ruby\" and \"-expert\" at same time.\n";
+ &print_help;
+ } elsif (($scale != 0) && ($ruby != 0)){
+ print "umkjvf: You can't use \"-ruby\" and \"-scale\" at same time.\n";
+ &print_help;
+ } elsif (($jis2004 != 0) && ($ruby != 0)){
+ print "umkjvf: You can't use \"-ruby\" and \"-jp04\" at same time.\n";
+ &print_help;
+ } elsif (($jis2004 != 0) && ($sjis != 0)){
+ print "umkjvf: You can't use \"-sjis\" and \"-jp04\" at same time.\n";
+ &print_help;
+ } elsif (($jis2004 != 0) && ($ucs != 0)){
+ print "umkjvf: You can't use \"-ucs\" and \"-jp04\" at same time.\n";
+ &print_help;
+ } elsif (($omitfw != 0) && ($baseline_shift != 0)){
+ print "umkjvf: You can't use \"-b\" and \"-omitfw\" at same time.\n";
+ &print_help;
+ } else {
+ if ($#ARGV <= 1) {
+ print "umkjvf: Need three file arguments for this option.\n";
+ &print_help;
+ }
+ $alt_kana_true=1;
+ }
+ if ($scale < 0 || $scale >= 1){
+ print "umkjvf: Invalid Scale!!\n";
+ &print_help;
+ }
+ if ($scale == 0){$scale = 1;}
+ if ($sjis != 0){$max_ku=120;}else{$max_ku=94;}
+ if ($cid_minute != 0){$minute_option = 1;}
+ if ($ucs){&reorder_odoriji; $CheckDVICode::is_ucs=$ucs;}
+ $tfm_name = shift(@ARGV);
+ $tfm_name =~ s/\.tfm//;
+ $kanji_font = shift(@ARGV);
+ $kanji_font =~ s/\.tfm//;
+ $kana_font = shift(@ARGV);
+ $kana_font =~ s/\.tfm//;
+ &get_metric;
+ $half_width= ($font_at / 2);
+ $quater_width= ($font_at / 4);
+ @minute_right=($font_at*0.1, $font_at*0.4, $font_at*0.1, $font_at*0.4);
+ @minute_down=(-$font_at*0.65, $font_at*0.65, -$font_at*0.6, $font_at*0.6);
+ #open output file
+ open(OVP,">$tfm_name.ovp") || die "Can't make \'$tfm_name.ovp\'!\n";
+ binmode(OVP);
+}
+sub font_header {
+ print OVP "(VTITLE )\n";
+ print OVP "(OFMLEVEL D 0)\n";
+ print OVP "(DESIGNSIZE R 10.000000)\n";
+ print OVP "(CHECKSUM O 0)\n";
+ print OVP "(MAPFONT D 1\n";
+ print OVP " (FONTNAME $kanji_font)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$font_at;
+ printf OVP " (FONTDSIZE R %f)\n",$design_size;
+ print OVP " )\n";
+ if ($ruby == 1){
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."3-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ if ($ucs) {
+ print OVP "(MAPFONT D 3\n";
+ print OVP " (FONTNAME $face"."4-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ }elsif ($direction eq "t"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."3-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ if ($ucs) {
+ print OVP "(MAPFONT D 3\n";
+ print OVP " (FONTNAME $face"."4-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ }
+ } elsif ($expert == 1) {
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."2-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 3\n";
+ print OVP " (FONTNAME $face"."3-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }elsif ($direction eq "t"){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $face"."3-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ if ($ucs) {
+ print OVP "(MAPFONT D 3\n";
+ print OVP " (FONTNAME $face"."4-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale;
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ }
+ } else {
+ if ($kana_font ne ""){
+ print OVP "(MAPFONT D 2\n";
+ print OVP " (FONTNAME $kana_font)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ printf OVP " (FONTAT R %f)\n",$scale*$font_at;
+ printf OVP " (FONTDSIZE R %f)\n",$design_size;
+ print OVP " )\n";
+ }
+ }
+ if ($cid_minute == 1){
+ &get_face;
+ if ($direction eq "t"){
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."1-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 5\n";
+ print OVP " (FONTNAME $face"."2-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ }
+ elsif ($cid_quote == 1){
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."0-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ elsif ($direction eq "t"){
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."2-v)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ }
+ if ($jis2004 == 1){
+ if($direction eq "y"){$temp_dir = "h"}elsif($direction eq "t"){$temp_dir = "v"}
+ &get_face;
+ print OVP "(MAPFONT D 4\n";
+ print OVP " (FONTNAME $face"."1-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 5\n";
+ print OVP " (FONTNAME $face"."2-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 6\n";
+ print OVP " (FONTNAME $face"."3-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 7\n";
+ print OVP " (FONTNAME $face"."4-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ print OVP "(MAPFONT D 8\n";
+ print OVP " (FONTNAME $face"."5-$temp_dir)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ if ($cid_hankana == 1){
+ &get_face;
+ if ($direction eq "y"){
+ print OVP "(MAPFONT D 6\n";
+ print OVP " (FONTNAME $face"."0-h)\n";
+ print OVP " (FONTCHECKSUM O 0)\n";
+ print OVP " (FONTAT R 1.0)\n";
+ print OVP " (FONTDSIZE R 10.0)\n";
+ print OVP " )\n";
+ }
+ }
+}
+sub write_char {
+ if (!$ucs) {
+ for ($ku=1; $ku<=$max_ku; $ku++){
+ for ($ten=1; $ten<=94; $ten++){
+ $jiscode=($ku+32)*256+($ten+32);
+ $CheckDVICode::dvicode=$dvicode=$jiscode;
+ if($sjis == 1){
+ &get_shift_jiscode;
+ $char_code=$shift_jiscode;
+ }else{
+ $char_code=$jiscode;
+ }
+ if ($ruby==1){
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_ruby_hira_char;}
+ elsif($ku==5){&print_ruby_kata_char;}else{&print_char;}
+ }elsif ($expert==1){
+ if ($direction eq "y"){
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&exp_hira_h_char;}
+ elsif($ku==5){&exp_kata_h_char;}else{&print_char;}
+ }elsif ($direction eq "t"){
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&exp_hira_v_char;}
+ elsif($ku==5){&exp_kata_v_char;}else{&print_char;}
+ }
+ }else{
+ if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_kana_char;}
+ elsif($ku==5){&print_kana_char;}else{&print_char;}
+ }
+ }
+ }
+ } else { # ucs
+ $max_ucs= $sp ? 0x2FA1F : 0xFFFF; # U+2FA1F: max of CJK Compatibility Ideographs Supplement
+ for ($ucscode=0; $ucscode<=$max_ucs; $ucscode++){
+ $CheckDVICode::dvicode=$dvicode=$ucscode;
+ $char_code=$ucscode;
+ next unless (&is_ucs_jpn_range);
+ if ($sp==1 && $ucscode>0xFFFF) {
+ next unless ($exist_char{sprintf("%X",$ucscode)});
+ }
+ if(&is_ucs_hankana && $direction eq "y"){
+ &print_hankana_char;
+ next;
+ }
+ if ($ruby==1){
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira){&print_ruby_hira_char;}
+ elsif(&is_ucs_kata){&print_ruby_kata_char;}
+ else{&print_char;}
+ }elsif ($expert==1){
+ if ($direction eq "y"){
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira){&exp_hira_h_char;}
+ elsif(&is_ucs_kata){&exp_kata_h_char;}
+ else{&print_char;}
+ }elsif ($direction eq "t"){
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira){&exp_hira_v_char;}
+ elsif(&is_ucs_kata){&exp_kata_v_char;}
+ else{&print_char;}
+ }
+ }else{
+ if (&is_ucs_kigo){&print_kigo_char;}
+ elsif(&is_ucs_hira){&print_kana_char;}
+ elsif(&is_ucs_kata){&print_kana_char;}
+ else{&print_char;}
+ }
+ }
+ }
+}
+sub make_vf {
+ my ($ovp2ovf);
+
+ close(OVP);
+ exit if $debug_mode;
+
+ $ovp2ovf = 'ovp2ovf'; # use ovp2ovf WEB version in TeXLive svn r24922 or later if you use SP
+ if (defined($ENV{'OVP2OVF'})) {
+ $ovp2ovf = $ENV{'OVP2OVF'};
+ }
+ if ($ovp2ovf_command ne '') {
+ $ovp2ovf = $ovp2ovf_command;
+ }
+ system("$ovp2ovf $tfm_name.ovp $tfm_name.vf $tfm_name.ofm");
+ unlink "$tfm_name.ovp";
+ unlink "$tfm_name.ofm";
+}
+sub make_tfm {
+ open(KANJITFM,">$kanji_font.tfm") || die "Can't make \'$kanji_font.tfm\'!\n";
+ binmode(KANJITFM);
+ if ($direction eq "y") {
+ my (@tfm) = $ucs ? @yoko_ucs_tfm_binary : @yoko_tfm_binary;
+ foreach $binary(@tfm) {
+ $_ = pack("C", $binary);
+ print KANJITFM "$_";
+ }
+ } elsif ($direction eq "t") {
+ foreach $binary(@tate_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANJITFM "$_";
+ }
+ } else {die "Unknown Direction!!\n";}
+ if ($ruby==0 && $expert==0){
+ if ($kana_font ne ""){
+ open(KANATFM,">$kana_font.tfm") || die "Can't make \'$kana_font.tfm\'!\n";
+ binmode(KANATFM);
+ if ($direction eq "y") {
+ foreach $binary(@yoko_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANATFM "$_";
+ }
+ } else {
+ foreach $binary(@tate_tfm_binary) {
+ $_ = pack("C", $binary);
+ print KANATFM "$_";
+ }
+ }
+ }
+ }
+}
+##############################
+#### dfn of sub sub rtns ###
+##############################
+sub print_help {
+ print "This is umkjvf version 0.14 (2014/3/22) by ttk\n";
+ print "Based on mkjvf version 1.0b21 (2010/3/25) by psitau\n";
+ print "Usage: umkjvf [option] <TFMfile> <PSfontTFM> [<PSfontTFM>]\n";
+ print " -b <number> baseline shift\n";
+ print " -m translate quotation mark to minute\n";
+ print " -cm translate quotation mark to CID minute\n";
+ print " -cq translate quotation mark to CID quotation (umkjvf extention)\n";
+ print " -cp translate comma & period to KuTohTen\n";
+ print " -chk translate hankaku kana to CID hankaku kana (umkjvf extention)\n";
+ print " -notfm (h|v) don't read tfm\n";
+ print " -ruby use ruby glyph for kana (for utf package)\n";
+ print " -expert use alt. kana glyph for kana (for utf package)\n";
+ print " -burasage make the width of kutoh-ten zero for burasage\n";
+ print " -jp04 make a font mapped JIS X 0213:2004 glyphs\n";
+ print " -ucs make ucs mapped vf (umkjvf extention)\n";
+ print " -omitfw omit entries in vf for characters with default metric (umkjvf extention)\n";
+ print " -sp <0--2> include supplemental plane (umkjvf extention)\n";
+ print " -SJIS make shift jis mapped vf (experimental)\n";
+ print " -scale <0--1> make kokana vf\n";
+ print " -ovp2ovf <command> use ovp2ovf command\n";
+ print " -dbg debug mode\n";
+ print " -help print this message\n";
+ exit;
+}
+sub GetOptions {
+ my ($argv,@options)=@_;
+ foreach (@options) {
+ my ($regex,$ref,$takesarg)=@{$_};
+ my @args=@{$argv};
+ @{$argv}=();
+ my $arg;
+ argloop:
+ while (($arg=shift @args) ne "") {
+ if ($arg=~/$regex/) {
+ my $val=1;
+ if ($takesarg) { $val=shift @args; }
+ if (ref($ref) eq 'CODE') { &$ref($val); }
+ else { ${$ref}=$val; last argloop;}
+ }
+ else {
+ push @{$argv},$arg;
+ if ($arg eq '--') { last argloop; }
+ }
+ }
+ push @{$argv},@args;
+ }
+}
+sub get_metric{
+ if ($without_tfm eq ""){
+ &read_tfm;
+ } elsif ($without_tfm eq "h") {
+ $direction="y";
+ $design_size=10;
+ $font_at = 0.962216;
+ if ($minute_option == 1){$minute_option = 0;}
+ if ($comma_period == 1){$comma_period = 0;}
+ } elsif ($without_tfm eq "v") {
+ $direction="t";
+ $design_size=10;
+ $font_at = 0.962216;
+ } else{
+ die "Unknown Direction!!\n";
+ }
+# print STDOUT "$design_size, $font_at\n";#debug
+}
+sub read_tfm{
+ $alt_tfm_name=`kpsewhich $tfm_name.tfm`;
+ chomp($alt_tfm_name);
+ open (TFM, "<$tfm_name.tfm") || open (TFM, "<tfm/$tfm_name.tfm") || open (TFM, "<$alt_tfm_name") || die "Can't read tfm file!!\n";
+ binmode(TFM);
+ my($jfm_id, $nt, $lf, $lh, $bc, $ec, $nw, $nh, $nd, $ni, $nl, $nk, $ng, $np);
+ my($data,$d_size,$data_length, @param);
+ #first 7 word
+ read(TFM, $_, 2);
+ $jfm_id = unpack('n', $_);
+# printf STDOUT "JFM ID= %d\n",$jfm_id;#debug
+ if ($jfm_id==0x0B) {
+ $direction="y";
+ if ($minute_option == 1){$minute_option = 0;}
+# print STDOUT "Direction is YOKO!!\n";#debug
+ }elsif ($jfm_id==0x09){
+ $direction="t";
+# print STDOUT "Direction is TATE!!\n";#debug
+ }else{
+ die "Unknown Direction!!\n";
+ }
+ read(TFM, $_, 26);
+ ($nt, $lf, $lh, $bc, $ec, $nw, $nh, $nd, $ni, $nl, $nk, $ng, $np)= unpack('nnnnnnnnnnnnn', $_);
+ #header
+ read(TFM, $_, (4*$lh));
+ ($data,$d_size)= unpack('NN',$_);
+ $d_size=$d_size/(1<<20);;
+ $data_length = ($nt+$ec-$bc+1+$nw+$nh+$nd+$ni+$nl+$nk+$ng)*4;
+ read(TFM, $_, $data_length);
+ read(TFM, $_, (4*$np));
+ @param=unpack('NNNNNNNNN',$_);
+ $zh = $param[4]/(1<<20);
+ $zw = $param[5]/(1<<20);
+ $design_size=$d_size;
+ $font_at=$zw;
+# printf STDOUT "Design Size: %f, zw: %f, zh: %f\n",$d_size, $zw, $zh;#debug
+}
+sub get_face{
+ if($kana_font eq "cidjminr"){
+ $face="cidjmr";
+ }elsif($kana_font eq "cidjgothr"){
+ $face="cidjgr";
+ }elsif($kana_font eq "cidjminb"){
+ $face="cidjmb";
+ }elsif($kana_font eq "cidjgothb"){
+ $face="cidjgb";
+ }elsif($kana_font eq "cidjmgothr"){
+ $face="cidjmgr";
+ }elsif($kana_font eq "cidjminl"){
+ $face="cidjml";
+ }elsif($kana_font eq "cidjgotheb"){
+ $face="cidjge";
+ }elsif($kana_font eq "cidmin"){
+ $face="cidm";
+ }elsif($kana_font eq "cidgoth"){
+ $face="cidg";
+ }elsif($kana_font eq ""){
+ if($kanji_font =~ /hminr/){
+ $face="cidjmr";
+ }elsif($kanji_font =~ /hgothr/){
+ $face="cidjgr";
+ }elsif($kanji_font =~ /hminb/){
+ $face="cidjmb";
+ }elsif($kanji_font =~ /hgothb/){
+ $face="cidjgb";
+ }elsif($kanji_font =~ /hmgothr/){
+ $face="cidjmgr";
+ }elsif($kanji_font =~ /hminl/){
+ $face="cidjml";
+ }elsif($kanji_font =~ /hgotheb/){
+ $face="cidjge";
+ }
+ }
+}
+sub baseline_shift{
+ if ($baseline_shift != 0){
+ $baseline_shift_amount=-($baseline_shift/1000)*$zh;
+ printf OVP " (MOVEUP R %f)\n",$baseline_shift_amount;
+ }
+}
+sub print_kigo_char{
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ if (&is_dvicode('quote') || &is_dvicode('kakko')){#Kakko
+ $width=$half_width;
+ } elsif (&is_dvicode('kutouten')){#Kutouten
+ if (($burasage eq 1) && &is_dvicode('burasage')){#burasage
+ $width=0;
+ }else{
+ $width=$half_width;
+ }
+ } else{
+ $width=$font_at;
+ }
+ printf OVP " (CHARWD R %f)\n", $width;
+ print OVP " (MAP\n";
+ if (&is_dvicode('odoriji')){#odoriji
+ if ($ruby==1){
+ print OVP " (SELECTFONT D 2)\n";
+ }elsif($expert==1){
+ if ($direction eq "y"){
+ if (&is_dvicode('hira-odoriji')){
+ print OVP " (SELECTFONT D 2)\n";
+ }else{
+ print OVP " (SELECTFONT D 3)\n";
+ }
+ }else{
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ }elsif($kana_font ne ""){
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ }
+ if ($cid_minute == 1){#cid_minute
+ if (&is_dvicode('d-quote')){#double quatation->double minute
+ print OVP " (SELECTFONT D 4)\n";
+ }elsif (&is_dvicode('s-quote')){#single quatation->single minute
+ print OVP " (SELECTFONT D 5)\n";
+ }
+ }
+ elsif ($cid_quote == 1){#cid_quote
+ if (&is_dvicode('quote')){
+ print OVP " (SELECTFONT D 4)\n";
+ }
+ }
+ &baseline_shift;
+ if (&is_dvicode('odoriji')){#odoriji
+ &scaled_shift;
+ }
+ if (&is_dvicode('colon') || &is_dvicode('semicolon') || &is_dvicode('nakaten')){#colon, semicolon, nakaten
+ printf OVP " (MOVERIGHT R -%f)\n",$quater_width;}
+ if (&is_dvicode('kakko') && &is_dvicode('open')){#Kakko
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ if (&is_dvicode('quote')){#quatation
+ if ($minute_option == 1){#quatation -> minute
+ if ($cid_minute == 1){
+ if (&is_dvicode('open')){
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ $minute_char_code= shift(@cid_minute_code);
+ printf OVP " (SETCHAR H %X)\n", $minute_char_code;
+ }else{
+ $minute_right_shift= shift(@minute_right);
+ $minute_down_shift= shift(@minute_down);
+ printf OVP " (MOVERIGHT R %f)\n", $minute_right_shift;
+ printf OVP " (MOVEDOWN R %f)\n", $minute_down_shift;
+ if (&is_dvicode('close')){
+ print OVP " (SPECIAL ps: gsave currentpoint currentpoint translate 180 neg rotate neg exch neg exch translate)\n";
+ }
+ if ($sjis == 1){
+ $minute_char_code= shift(@shift_minute_code);
+ }else{
+ $minute_char_code= shift(@minute_code);
+ }
+ printf OVP " (SETCHAR H %X)\n", $minute_char_code;
+ if (&is_dvicode('close')){
+ print OVP " (SPECIAL ps: currentpoint grestore moveto)\n";
+ }
+ }
+ } elsif ($cid_quote == 1){
+ if (&is_dvicode('open')){
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ if ($direction eq "y"){
+ $quote_char_code= shift(@cid_hquote_code);
+ }else{
+ $quote_char_code= shift(@cid_vquote_code);
+ }
+ printf OVP " (SETCHAR H %X)\n", $quote_char_code;
+ } else {
+ if (&is_dvicode('open')){
+ printf OVP " (MOVERIGHT R -%f)\n",$half_width;
+ }
+ printf OVP " (SETCHAR H %X)\n", $char_code;
+ }
+ } elsif (&is_dvicode('odoriji')){#odoriji
+ if ($ruby==1){
+ if ($direction eq "y"){
+ $odorijicode= shift(@ruby_odori_h);
+ }else{
+ $odorijicode= shift(@ruby_odori_v);
+ }
+ }elsif($expert==1){
+ if ($direction eq "y"){
+ $odorijicode= shift(@exp_odori_h);
+ }else{
+ $odorijicode= shift(@exp_odori_v);
+ }
+ }elsif ($sjis==1){
+ $odorijicode= $shift_jiscode;
+ }else{
+ $odorijicode= $dvicode;
+ }
+ printf OVP " (SETCHAR H %X)\n",$odorijicode;
+ } elsif (&is_dvicode('comma') && $comma_period == 1){
+ printf OVP " (SETCHAR H %X)\n", ($ucs ? 0x3001 : $char_code-2);
+ } elsif (&is_dvicode('period') && $comma_period == 1){
+ printf OVP " (SETCHAR H %X)\n", ($ucs ? 0x3002 : $char_code-2);
+ }else {
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ }
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_char{
+ $fontmap = 0;
+ if (($jis2004 == 1) && (0x3029 <= $jiscode && $jiscode <= 0x726D)){
+ if (exists $kaisei_jikei{$jiscode}){
+ $cid = $kaisei_jikei{$jiscode};
+ $fontmap = int($cid/4096)+3; ## $fontmap>=3
+ $upper = int(($cid%4096)/64)+16;
+ $lower = (($cid%4096)%64)+16;
+# printf STDOUT "%d, %d\n",$upper,$lower;
+ $char_code = $upper*256+$lower+0x2020;
+ }
+ }
+ if ($omitfw && $baseline_shift==0 && !$fontmap) {
+ return if ($dvicode==$char_code);
+ }
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $font_at;
+ print OVP " (MAP\n";
+ if ($fontmap) {
+ printf OVP " (SELECTFONT D %d)\n", $fontmap;
+ }
+ &baseline_shift;
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_kana_char{
+ if ($omitfw && $baseline_shift==0 && $scale==1 && $kana_font eq "") {
+ return if ($dvicode==$char_code);
+ }
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $font_at;
+ print OVP " (MAP\n";
+ if ($kana_font ne ""){
+ print OVP " (SELECTFONT D 2)\n";
+ }
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_hankana_char{
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n", $font_at/2.0;
+ print OVP " (MAP\n";
+ if ($cid_hankana == 1){
+ print OVP " (SELECTFONT D 6)\n";
+ }
+ &baseline_shift;
+ &scaled_shift;
+ if ($cid_hankana == 1){
+ $hkana_char_code= shift(@cid_hkana_code);
+ printf OVP " (SETCHAR H %X)\n",$hkana_char_code;
+ } else {
+ printf OVP " (SETCHAR H %X)\n",$char_code;
+ }
+ print OVP " )\n";
+ print OVP " )\n";
+}
+sub print_ruby_hira_char{
+ if (&is_dvicode('hira-Vu')){$ruby_hira_code=0x3744;}
+ if (&is_dvicode('hira-ka')){$ruby_hira_code=0x363A;}
+ if (&is_dvicode('hira-ke')){$ruby_hira_code=0x3641;}
+ $ruby_hira_code_orig=$ruby_hira_code;
+ if ($direction eq "t"){&fix_ruby_hira_code;}
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n",$ruby_font_map;
+ &baseline_shift;
+ printf OVP " (SETCHAR H %X)\n", $ruby_hira_code;
+ print OVP " )\n";
+ print OVP " )\n";
+ $ruby_hira_code=$ruby_hira_code_orig;
+ $ruby_hira_code++;
+ if ($ruby_hira_code == 0x3570){$ruby_hira_code=0x3630;}
+ if ($ruby_hira_code == 0x3670){$ruby_hira_code=0x3730;}
+ if ($ruby_hira_code == 0x363A){$ruby_hira_code=0x363B;}
+ if ($ruby_hira_code == 0x3641){$ruby_hira_code=0x3642;}
+}
+sub print_ruby_kata_char{
+ $ruby_kata_code_orig=$ruby_kata_code;
+ if (&is_dvicode('kata-ka')){$ruby_kata_code=0x375C;}
+ if (&is_dvicode('kata-ke')){$ruby_kata_code=0x3763;}
+ if (&is_dvicode('kata-Va')){$ruby_kata_code_orig=$ruby_kata_code=0x306C;
+ $ruby_font_map=3;} # JIS X 0213
+ if (&is_dvicode('kata-ku')){$ruby_kata_code_orig=$ruby_kata_code=0x305B;} # JIS X 0213
+ if (&is_dvicode('kata-mu')){$ruby_kata_code_orig=$ruby_kata_code=0x3066;} # JIS X 0213
+ if ($direction eq "t"){&fix_ruby_kata_code;}
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n",$ruby_font_map;
+ &baseline_shift;
+ printf OVP " (SETCHAR H %X)\n", $ruby_kata_code;
+ print OVP " )\n";
+ print OVP " )\n";
+ $ruby_kata_code=$ruby_kata_code_orig;
+ $ruby_kata_code++;
+ if ($ruby_kata_code == 0x3770){$ruby_kata_code=0x3830;}
+ if ($ruby_kata_code == 0x375C){$ruby_kata_code=0x375D;}
+ if ($ruby_kata_code == 0x3763){$ruby_kata_code=0x3764;}
+}
+sub exp_hira_h_char{
+ if (&is_dvicode('hira-Vu')){$exp_hira_code_h=0x3139;$exp_font_map=3;} # JIS X 0213
+ if (&is_dvicode('hira-ka')){$exp_hira_code_h=0x6f6d;$exp_font_map=2;} # JIS X 0213
+ if (&is_dvicode('hira-ke')){$exp_hira_code_h=0x3034;$exp_font_map=3;} # JIS X 0213
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n", $exp_font_map;
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_hira_code_h;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_hira_code_h++;
+ if ($exp_hira_code_h == 0x6F70){$exp_hira_code_h=0x3030;$exp_font_map=3;}
+ if ($exp_hira_code_h == 0x3070){$exp_hira_code_h=0x3130;}
+ if ($exp_hira_code_h == 0x6f6d){$exp_hira_code_h++;}
+ if ($exp_hira_code_h == 0x3034){$exp_hira_code_h++;}
+ if ($exp_hira_code_h == 0x3037){$exp_hira_code_h++;}
+}
+sub exp_kata_h_char{
+ if (&is_dvicode('kata-ka')){$exp_kata_code_h=0x3147;}
+ if (&is_dvicode('kata-ke')){$exp_kata_code_h=0x314e;}
+ if (&is_dvicode('kata-Va')){$exp_kata_code_h=0x3254;} # JIS X 0213
+ if (&is_dvicode('kata-ku')){$exp_kata_code_h=0x6f5d;} # JIS X 0213
+ if (&is_dvicode('kata-mu')){$exp_kata_code_h=0x6f68;} # JIS X 0213
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ print OVP " (SELECTFONT D 3)\n";
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_kata_code_h;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_kata_code_h++;
+ if ($exp_kata_code_h == 0x3170){$exp_kata_code_h=0x3230;}
+ if ($exp_kata_code_h == 0x3147){$exp_kata_code_h++;}
+ if ($exp_kata_code_h == 0x314e){$exp_kata_code_h++;}
+ if ($exp_kata_code_h == 0x3151){$exp_kata_code_h++;}
+}
+sub exp_hira_v_char{
+ if (&is_dvicode('hira-Vu')){$exp_hira_code_v=0x3430;$exp_font_map=2;} # JIS X 0213
+ if (&is_dvicode('hira-ka')){$exp_hira_code_v=0x3264;$exp_font_map=2;} # JIS X 0213
+ if (&is_dvicode('hira-ke')){$exp_hira_code_v=0x326b;$exp_font_map=2;} # JIS X 0213
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n", $exp_font_map;
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_hira_code_v;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_hira_code_v++;
+ if ($exp_hira_code_v == 0x3270){$exp_hira_code_v=0x3330;}
+ if ($exp_hira_code_v == 0x3264){$exp_hira_code_v++;}
+ if ($exp_hira_code_v == 0x326b){$exp_hira_code_v++;}
+ if ($exp_hira_code_v == 0x326e){$exp_hira_code_v++;}
+}
+sub exp_kata_v_char{
+ if (&is_dvicode('kata-ka')){$exp_kata_code_v=0x343e;}
+ if (&is_dvicode('kata-ke')){$exp_kata_code_v=0x3445;}
+ if (&is_dvicode('kata-Va')){$exp_kata_code_v=0x354b;} # JIS X 0213
+ if (&is_dvicode('kata-ku')){$exp_kata_code_v=0x303b;$exp_font_map=3;} # JIS X 0213
+ if (&is_dvicode('kata-mu')){$exp_kata_code_v=0x3046;} # JIS X 0213
+ printf OVP "(CHARACTER H %X\n", $dvicode;
+ printf OVP " (CHARWD R %f)\n",$font_at;
+ print OVP " (MAP\n";
+ printf OVP " (SELECTFONT D %d)\n", $exp_font_map;
+ &baseline_shift;
+ &scaled_shift;
+ printf OVP " (SETCHAR H %X)\n", $exp_kata_code_v;
+ print OVP " )\n";
+ print OVP " )\n";
+ $exp_kata_code_v++;
+ if ($exp_kata_code_v == 0x3470){$exp_kata_code_v=0x3530;}
+ if ($exp_kata_code_v == 0x343e){$exp_kata_code_v++;}
+ if ($exp_kata_code_v == 0x3445){$exp_kata_code_v++;}
+ if ($exp_kata_code_v == 0x3448){$exp_kata_code_v++;}
+}
+sub fix_ruby_hira_code{
+ if (&is_dvicode('hira-a' )){$ruby_hira_code=0x3745;}#a
+ if (&is_dvicode('hira-i' )){$ruby_hira_code=0x3746;}#i
+ if (&is_dvicode('hira-u' )){$ruby_hira_code=0x3747;}#u
+ if (&is_dvicode('hira-e' )){$ruby_hira_code=0x3748;}#e
+ if (&is_dvicode('hira-o' )){$ruby_hira_code=0x3749;}#o
+ if (&is_dvicode('hira-tsu')){$ruby_hira_code=0x374c;}#tsu
+ if (&is_dvicode('hira-ya' )){$ruby_hira_code=0x374d;}#ya
+ if (&is_dvicode('hira-yu' )){$ruby_hira_code=0x374e;}#yu
+ if (&is_dvicode('hira-yo' )){$ruby_hira_code=0x374f;}#yo
+ if (&is_dvicode('hira-wa' )){$ruby_hira_code=0x3750;}#wa
+ if (&is_dvicode('hira-ka' )){$ruby_hira_code=0x374a;} # JIS X 0213
+ if (&is_dvicode('hira-ke' )){$ruby_hira_code=0x374b;} # JIS X 0213
+}
+sub fix_ruby_kata_code{
+ if (&is_dvicode('kata-a' )){$ruby_kata_code=0x3867;}#a
+ if (&is_dvicode('kata-i' )){$ruby_kata_code=0x3868;}#i
+ if (&is_dvicode('kata-u' )){$ruby_kata_code=0x3869;}#u
+ if (&is_dvicode('kata-e' )){$ruby_kata_code=0x386a;}#e
+ if (&is_dvicode('kata-o' )){$ruby_kata_code=0x386b;}#o
+ if (&is_dvicode('kata-tsu')){$ruby_kata_code=0x386e;}#tsu
+ if (&is_dvicode('kata-ya' )){$ruby_kata_code=0x386f;}#ya
+ if (&is_dvicode('kata-yu' )){$ruby_kata_code=0x3930;}#yu
+ if (&is_dvicode('kata-yo' )){$ruby_kata_code=0x3931;}#yo
+ if (&is_dvicode('kata-wa' )){$ruby_kata_code=0x3932;}#wa
+ if (&is_dvicode('kata-ka' )){$ruby_kata_code=0x386c;}#ka
+ if (&is_dvicode('kata-ke' )){$ruby_kata_code=0x386d;}#ke
+ if (&is_dvicode('kata-ku..ro')){$ruby_kata_code+=215;} # JIS X 0213
+}
+sub get_shift_jiscode{
+ $c1=$ku+32;
+ $c2=$ten+32;
+ if ($c1 % 2) {
+ $c1 = (($c1 + 1) / 2) + 0x70;
+ $c2 = $c2 + 0x1f;
+ } else {
+ $c1 = ($c1 / 2) + 0x70;
+ $c2 = $c2 + 0x7d;
+ }
+ if ($c1 >= 0xa0) {$c1 = $c1 + 0x40;}
+ if ($c2 >= 0x7f) {$c2 = $c2 + 1;}
+ $shift_jiscode=$c1*256+$c2;
+}
+sub scaled_shift{
+ if ($scale != 1){
+ $scaled_shift_amount=(1-$scale)*$font_at/2;
+ printf OVP " (MOVERIGHT R %f)\n",$scaled_shift_amount;
+ if ($direction eq "y"){
+ $scaled_v_shift_amount=(1-$scale)*$font_at*0.38;
+ printf OVP " (MOVEUP R %f)\n",$scaled_v_shift_amount;
+ }
+ }
+}
+
+
+__END__
+0xFF5F: JIS X 0213 1-02-54 FULLWIDTH LEFT WHITE PARENTHESIS 始め二重バーレーン
+0x3018: JIS X 0213 1-02-56 LEFT WHITE TORTOISE SHELL BRACKET 始め二重亀甲括弧
+0x3016: JIS X 0213 1-02-58 LEFT WHITE LENTICULAR BRACKET 始めすみ付き括弧(白)
+0x301D: JIS X 0213 1-13-64 REVERSED DOUBLE PRIME QUOTATION MARK 始めダブルミニュート
+0xFF60: JIS X 0213 1-02-55 FULLWIDTH RIGHT WHITE PARENTHESIS 終わり二重バーレーン
+0x3019: JIS X 0213 1-02-57 RIGHT WHITE TORTOISE SHELL BRACKET 終わり二重亀甲括弧
+0x3017: JIS X 0213 1-02-59 RIGHT WHITE LENTICULAR BRACKET 終わりすみ付き括弧(白)
+0x301F: JIS X 0213 1-13-65 LOW DOUBLE PRIME QUOTATION MARK 終わりダブルミニュート