texlive[43997] trunk: Add files needed for CJK to tlgs, adapt
commits+reinhardk at tug.org
commits+reinhardk at tug.org
Mon Apr 24 00:15:25 CEST 2017
Revision: 43997
http://tug.org/svn/texlive?view=revision&revision=43997
Author: reinhardk
Date: 2017-04-24 00:15:25 +0200 (Mon, 24 Apr 2017)
Log Message:
-----------
Add files needed for CJK to tlgs, adapt runscript.tlu accordingly.
Modified Paths:
--------------
trunk/Build/source/texk/texlive/w32_wrapper/runscript.tlu
trunk/Master/bin/win32/runscript.tlu
trunk/Master/tlpkg/tlgs/README.TEXLIVE
trunk/Master/tlpkg/tlgs/bin/gsdll32.dll
trunk/Master/tlpkg/tlgs/bin/gsdll32.lib
trunk/Master/tlpkg/tlgs/bin/gswin32.exe
trunk/Master/tlpkg/tlgs/bin/gswin32c.exe
Added Paths:
-----------
trunk/Master/tlpkg/tlgs/Resource/
trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/
trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf
trunk/Master/tlpkg/tlgs/Resource/CIDFont/
trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet
trunk/Master/tlpkg/tlgs/Resource/CMap/
trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/78-H
trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H
trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V
trunk/Master/tlpkg/tlgs/Resource/CMap/78-V
trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H
trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V
trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H
trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H
trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V
trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H
trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V
trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H
trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V
trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H
trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H
trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V
trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1
trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2
trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H
trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V
trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H
trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V
trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H
trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V
trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H
trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H
trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V
trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V
trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H
trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V
trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H
trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V
trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H
trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V
trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/H
trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H
trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V
trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku
trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana
trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H
trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-UTF16-H
trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V
trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H
trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V
trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H
trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V
trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H
trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V
trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana
trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H
trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V
trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H
trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V
trunk/Master/tlpkg/tlgs/Resource/CMap/Roman
trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V
trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H
trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V
trunk/Master/tlpkg/tlgs/Resource/CMap/V
trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol
trunk/Master/tlpkg/tlgs/Resource/ColorSpace/
trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultCMYK
trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultGray
trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultRGB
trunk/Master/tlpkg/tlgs/Resource/ColorSpace/TrivialCMYK
trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sGray
trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sRGB
trunk/Master/tlpkg/tlgs/Resource/Decoding/
trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Dingbats
trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Symbol
trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Unicode
trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Wingdings
trunk/Master/tlpkg/tlgs/Resource/Decoding/Latin1
trunk/Master/tlpkg/tlgs/Resource/Decoding/StandardEncoding
trunk/Master/tlpkg/tlgs/Resource/Decoding/Unicode
trunk/Master/tlpkg/tlgs/Resource/Encoding/
trunk/Master/tlpkg/tlgs/Resource/Encoding/CEEncoding
trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertEncoding
trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertSubsetEncoding
trunk/Master/tlpkg/tlgs/Resource/Encoding/NotDefEncoding
trunk/Master/tlpkg/tlgs/Resource/Encoding/Wingdings
trunk/Master/tlpkg/tlgs/Resource/Font/
trunk/Master/tlpkg/tlgs/Resource/IdiomSet/
trunk/Master/tlpkg/tlgs/Resource/IdiomSet/Pscript5Idiom
trunk/Master/tlpkg/tlgs/Resource/Init/
trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap
trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig
trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap
trunk/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2
trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap
trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS
trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap
trunk/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_img.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_init.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_res.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_typ32.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_typ42.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_type1.ps
trunk/Master/tlpkg/tlgs/Resource/Init/gs_wan_e.ps
trunk/Master/tlpkg/tlgs/Resource/Init/pdf_base.ps
trunk/Master/tlpkg/tlgs/Resource/Init/pdf_draw.ps
trunk/Master/tlpkg/tlgs/Resource/Init/pdf_font.ps
trunk/Master/tlpkg/tlgs/Resource/Init/pdf_main.ps
trunk/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps
trunk/Master/tlpkg/tlgs/Resource/Init/pdf_rbld.ps
trunk/Master/tlpkg/tlgs/Resource/Init/pdf_sec.ps
trunk/Master/tlpkg/tlgs/Resource/Init/xlatmap
trunk/Master/tlpkg/tlgs/Resource/SubstCID/
trunk/Master/tlpkg/tlgs/Resource/SubstCID/CNS1-WMode
trunk/Master/tlpkg/tlgs/Resource/SubstCID/GB1-WMode
trunk/Master/tlpkg/tlgs/Resource/SubstCID/Japan1-WMode
trunk/Master/tlpkg/tlgs/Resource/SubstCID/Korea1-WMode
trunk/Master/tlpkg/tlgs/iccprofiles/
trunk/Master/tlpkg/tlgs/iccprofiles/default_cmyk.icc
trunk/Master/tlpkg/tlgs/iccprofiles/default_gray.icc
trunk/Master/tlpkg/tlgs/iccprofiles/default_rgb.icc
trunk/Master/tlpkg/tlgs/iccprofiles/gray_to_k.icc
trunk/Master/tlpkg/tlgs/iccprofiles/lab.icc
trunk/Master/tlpkg/tlgs/iccprofiles/ps_cmyk.icc
trunk/Master/tlpkg/tlgs/iccprofiles/ps_gray.icc
trunk/Master/tlpkg/tlgs/iccprofiles/ps_rgb.icc
trunk/Master/tlpkg/tlgs/iccprofiles/sgray.icc
trunk/Master/tlpkg/tlgs/iccprofiles/srgb.icc
trunk/Master/tlpkg/tlgs/kanji/
trunk/Master/tlpkg/tlgs/kanji/allkanji.ps
trunk/Master/tlpkg/tlgs/kanji/article9.ps
trunk/Master/tlpkg/tlgs/kanji/fmaptype.ps
trunk/Master/tlpkg/tlgs/kanji/hankaku.ps
trunk/Master/tlpkg/tlgs/kanji/kbase.ps
trunk/Master/tlpkg/tlgs/kanji/kbitmap.ps
trunk/Master/tlpkg/tlgs/kanji/kcomp.ps
trunk/Master/tlpkg/tlgs/kanji/kconfig.ps
trunk/Master/tlpkg/tlgs/kanji/kfwin32.ps
trunk/Master/tlpkg/tlgs/kanji/kfwin32bm.ps
trunk/Master/tlpkg/tlgs/kanji/kinit.ps
trunk/Master/tlpkg/tlgs/kanji/kmapping.ps
trunk/Master/tlpkg/tlgs/kanji/koutline.ps
trunk/Master/tlpkg/tlgs/kanji/metrics2.ps
trunk/Master/tlpkg/tlgs/kanji/useopentype.ps
trunk/Master/tlpkg/tlgs/kanji/vchars.ps
trunk/Master/tlpkg/tlgs/kanji/vchars1.ps
Modified: trunk/Build/source/texk/texlive/w32_wrapper/runscript.tlu
===================================================================
--- trunk/Build/source/texk/texlive/w32_wrapper/runscript.tlu 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Build/source/texk/texlive/w32_wrapper/runscript.tlu 2017-04-23 22:15:25 UTC (rev 43997)
@@ -1,7 +1,7 @@
-local svnrevision = string.match("$Revision: 40700 $", "%d+") or "0"
-local svndate = string.match("$Date: 2016-04-23 14:35:18 +0200 (Sat, 23 Apr 2016) $", "[-%d]+") or "2009-12-04"
+local svnrevision = string.match("$Revision: 43968 $", "%d+") or "0"
+local svndate = string.match("$Date: 2017-04-22 01:24:18 +0200 (Sat, 22 Apr 2017) $", "[-%d]+") or "2009-12-04"
local bannerstr = "runscript wrapper utility (rev. " ..
svnrevision .. ", " .. svndate .. ")\n" ..
"usage: runscript script-name [arguments]\n" ..
@@ -255,6 +255,8 @@
- fix spurious arguments for updmap and fmtutil
2016/04/22
- Warning if external perl is requested but missing
+ 2017/04/22 (exactly one year later ;-)
+ - Cater for fmtutil-user and updmap-user => -user arg
]]
-- HELPER SUBROUTINES --
@@ -437,6 +439,10 @@
-- special case of sys programs
progname, substcount = string.gsub(progname, '%-sys$', '')
local sysprog = (substcount > 0) -- true if there was a -sys suffix removed
+-- special case of user programs
+-- we do not guard against programs foobar-user-sys ... we don't ship them
+progname, substcount = string.gsub(progname, '%-user$', '')
+local userprog = (substcount > 0) -- true if there was a -user suffix removed
-- prevent recursive calls to this script
assert(progname ~= 'runscript', "oops! wrapping the wrapper?")
@@ -530,8 +536,12 @@
end
else
-- use built in gs
- os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts;'
- ..os.getenv('WINDIR')..'/Fonts;'..TEXMFDIST..'/fonts')
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'
+ ..TEXDIR..'/tlpkg/tlgs/fonts;'
+ ..TEXDIR..'/tlpkg/tlgs/Resource/Init;'
+ ..TEXDIR..'/tlpkg/tlgs/Resource;'
+ ..TEXDIR..'/tlpkg/tlgs/kanji;'
+ ..os.getenv('WINDIR')..'/Fonts;'..TEXMFDIST..'/fonts')
os.setenv('GS_DLL', TEXDIR..'/tlpkg/tlgs/bin/gsdll32.dll')
GSEXE = TEXDIR..'/tlpkg/tlgs/bin/gswin32c.exe'
GSNAME = 'gswin32c.exe'
@@ -589,10 +599,14 @@
elseif progname == 'updmap' then
if sysprog then
argline = ' --sys ' .. argline
+ elseif userprog then
+ argline = ' --user ' .. argline
end
elseif progname == 'fmtutil' then
if sysprog then
argline = ' --sys ' .. argline
+ elseif userprog then
+ argline = ' --user ' .. argline
end
elseif progname == 'asy' then
os.setenv('ASYMPTOTE_GS', GSEXE)
Modified: trunk/Master/bin/win32/runscript.tlu
===================================================================
--- trunk/Master/bin/win32/runscript.tlu 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/bin/win32/runscript.tlu 2017-04-23 22:15:25 UTC (rev 43997)
@@ -536,8 +536,12 @@
end
else
-- use built in gs
- os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'..TEXDIR..'/tlpkg/tlgs/fonts;'
- ..os.getenv('WINDIR')..'/Fonts;'..TEXMFDIST..'/fonts')
+ os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib;'
+ ..TEXDIR..'/tlpkg/tlgs/fonts;'
+ ..TEXDIR..'/tlpkg/tlgs/Resource/Init;'
+ ..TEXDIR..'/tlpkg/tlgs/Resource;'
+ ..TEXDIR..'/tlpkg/tlgs/kanji;'
+ ..os.getenv('WINDIR')..'/Fonts;'..TEXMFDIST..'/fonts')
os.setenv('GS_DLL', TEXDIR..'/tlpkg/tlgs/bin/gsdll32.dll')
GSEXE = TEXDIR..'/tlpkg/tlgs/bin/gswin32c.exe'
GSNAME = 'gswin32c.exe'
Modified: trunk/Master/tlpkg/tlgs/README.TEXLIVE
===================================================================
--- trunk/Master/tlpkg/tlgs/README.TEXLIVE 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/README.TEXLIVE 2017-04-23 22:15:25 UTC (rev 43997)
@@ -22,6 +22,8 @@
* A cidfmap file supporting CJK fonts provided by Windows XP and
newer releases as well as the Japanese IPA fonts was added.
+ * kanji directory copied from w23tex.
+
This version of Ghostscript will not be installed on your system and
will not interfere with other versions of Ghostscript which might be
installed already.
Added: trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CIDFSubst/DroidSansFallback.ttf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/x-font-ttf
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CIDFont/ArtifexBullet
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/78ms-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/83pv-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90ms-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90msp-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/90pv-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Add-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-0
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-1
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-2
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-3
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-4
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-5
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-CNS1-6
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-0
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-1
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-2
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-3
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-4
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-GB1-5
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-0
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-1
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-2
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-3
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-4
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-5
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Japan1-6
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-0
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-1
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Adobe-Korea1-2
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/B5pc-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS1-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/CNS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETHK-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETen-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/ETenms-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Ext-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GB-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBK2K-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBKp-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBT-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBTpc-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/GBpc-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdla-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKdlb-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKgccs-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm314-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKm471-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/HKscs-B5-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Hankaku
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Hiragana
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-UTF16-H (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-UTF16-H 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,53 @@
+% Copyright (C) 2003 Artifex Software. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+%
+% Identity-UTF16-H CMap
+% An identity mapping of UTF16 codes to CIDs.
+
+/CIDInit /ProcSet findresource begin
+
+12 dict begin
+
+begincmap
+
+/CIDSystemInfo 3 dict dup begin
+ /Registry (Artifex) def
+ /Ordering (Unicode) def
+ /Supplement 0 def
+end def
+
+/CMapName /Identity-UTF16-H def
+/CMapVersion 1.000 def
+/CMapType 1 def
+
+/UIDOffset 0 def
+% No XUID yet obtained.
+
+/WMode 0 def
+
+1 begincodespacerange
+ <0000> <FFFF>
+endcodespacerange
+
+1 begincidrange
+<0000> <FFFF> 0
+endcidrange
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+
+%%EndResource
+%%EOF
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Identity-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-Johab-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-HW-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCms-UHC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/KSCpc-EUC-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Katakana
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/NWP-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/RKSJ-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/Roman
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/Roman
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/Roman 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/Roman 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/Roman
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniCNS-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniGB-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniHojo-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-HW-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJIS2004-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-HW-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISPro-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX0213-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniJISX02132004-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UCS2-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF16-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF32-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-H
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/UniKS-UTF8-V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/V
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/V
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/V 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/V 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/V
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/CMap/WP-Symbol
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultCMYK
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultCMYK (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultCMYK 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,40 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% DefaultCMYK color space resource.
+
+currentglobal true setglobal
+
+/DefaultCMYK
+[ /CIEBasedDEFG
+ 4 dict begin
+ /WhitePoint [ 0.9505 1.0 1.089 ] def
+ /Table [ 2 2 2 2
+ % AcrobatReader-compatible table :
+ [
+ [ < FFFFFF 000000 FFFF00 000000>
+ < EA007F 000000 FC000F 000000> ]
+
+ [ < 00A0C8 000000 008436 000000>
+ < 00007C 000000 000000 000000> ]
+ ]
+ ] def
+ /DecodeLMN [ { 1.8 exp } bind dup dup ] def
+ /MatrixLMN [ 0.4439 0.2522 0.0436 0.3341 0.6371 0.1387 0.1725 0.1107 0.9067 ] def
+ currentdict end
+]
+/ColorSpace defineresource pop
+
+setglobal
Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultGray
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultGray (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultGray 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,30 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% DefaultGray color space resource.
+
+currentglobal true setglobal
+
+/DefaultGray
+[ /CIEBasedA
+ 3 dict begin
+ /WhitePoint [ 0.9505 1.0 1.089 ] def
+ /DecodeLMN [ { 1.8 exp } bind dup dup ] bind def
+ /MatrixLMN [ 0.4439 0.2522 0.0436 0.3341 0.6371 0.1387 0.1725 0.1107 0.9067 ] def
+ currentdict end
+]
+/ColorSpace defineresource pop
+
+setglobal
Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultRGB
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultRGB (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/DefaultRGB 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,36 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% DefaultRGB color space resource.
+
+currentglobal true setglobal
+
+/DefaultRGB
+[ /CIEBasedABC
+ 3 dict begin
+ /DecodeLMN [ {
+ dup 0.03928 le { 12.92321 div } { 0.055 add 1.055 div 2.4 exp } ifelse
+ } bind dup dup ] def
+ /MatrixLMN [
+ 0.4360 0.2225 0.0139
+ 0.3851 0.7169 0.09710
+ 0.1431 0.0606 0.7139
+ ] def
+ /WhitePoint [0.9642 1.0 0.8249] def
+ currentdict end
+]
+/ColorSpace defineresource pop
+
+setglobal
Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/TrivialCMYK
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/TrivialCMYK (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/TrivialCMYK 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,38 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Color space that simulates appearance of the standard CMYK to RGB conversion.
+
+currentglobal true setglobal
+
+/TrivialCMYK
+[ /CIEBasedDEFG
+ 4 dict begin
+ /WhitePoint [ 0.9505 1.0 1.089 ] def
+ /Table [ 2 2 2 2
+ [
+ [ < FFFFFF 000000 FFFF00 000000>
+ < FF00FF 000000 FF0000 000000> ]
+ [ < 00FFFF 000000 00FF00 000000>
+ < 0000FF 000000 000000 000000> ]
+ ]
+ ] def
+ /DecodeLMN [ { 1.8 exp } bind dup dup ] def
+ /MatrixLMN [ 0.4439 0.2522 0.0436 0.3341 0.6371 0.1387 0.1725 0.1107 0.9067 ] def
+ currentdict end
+]
+/ColorSpace defineresource pop
+
+setglobal
Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sGray
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sGray (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sGray 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,37 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% One-component color space similar to sRGB color space.
+
+currentglobal true setglobal
+
+/sGray
+[ /CIEBasedA
+ 3 dict begin
+ /WhitePoint [ 0.9505 1 1.0890 ] def % D65
+
+ /DecodeLMN [ % sRGB gamma transform
+ { dup 0.03928 le { 12.92321 div } { 0.055 add 1.055 div 2.4 exp } ifelse }
+ bind dup dup ] def
+
+ /MatrixLMN [ % sRGB to XYZ (D65) matrix (ITU-R BT.709-2 Primaries)
+ 0.412457 0.212673 0.019334
+ 0.357576 0.715152 0.119192
+ 0.180437 0.072175 0.950301 ] def
+ currentdict end
+]
+/ColorSpace defineresource pop
+
+setglobal
Added: trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sRGB
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sRGB (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/ColorSpace/sRGB 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,37 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% sRGB color space derived from the public domain HP sample.
+
+currentglobal true setglobal
+
+/sRGB
+[ /CIEBasedABC
+ 3 dict begin
+ /WhitePoint [ 0.9505 1 1.0890 ] def % D65
+
+ /DecodeLMN [ % sRGB gamma transform
+ { dup 0.03928 le { 12.92321 div } { 0.055 add 1.055 div 2.4 exp } ifelse }
+ bind dup dup ] def
+
+ /MatrixLMN [ % sRGB to XYZ (D65) matrix (ITU-R BT.709-2 Primaries)
+ 0.412457 0.212673 0.019334
+ 0.357576 0.715152 0.119192
+ 0.180437 0.072175 0.950301 ] def
+ currentdict end
+]
+/ColorSpace defineresource pop
+
+setglobal
Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Dingbats
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Dingbats (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Dingbats 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,229 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% FCO_Symbol Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+/FCO_Dingbats % resource name
+202 % tokens
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+% Generated for FCO from ZapfDingbats font encoding with adding F000
+% since MTFONTS/PS3/MT3/ps3___xh.fco wants so.
+
+16#0020 space % Note : UFST uses 0x20 when others are 0xF0**.
+16#F021 a1
+16#F022 a2
+16#F023 a202
+16#F024 a3
+16#F025 a4
+16#F026 a5
+16#F027 a119
+16#F028 a118
+16#F029 a117
+16#F02A a11
+16#F02B a12
+16#F02C a13
+16#F02D a14
+16#F02E a15
+16#F02F a16
+16#F030 a105
+16#F031 a17
+16#F032 a18
+16#F033 a19
+16#F034 a20
+16#F035 a21
+16#F036 a22
+16#F037 a23
+16#F038 a24
+16#F039 a25
+16#F03A a26
+16#F03B a27
+16#F03C a28
+16#F03D a6
+16#F03E a7
+16#F03F a8
+16#F040 a9
+16#F041 a10
+16#F042 a29
+16#F043 a30
+16#F044 a31
+16#F045 a32
+16#F046 a33
+16#F047 a34
+16#F048 a35
+16#F049 a36
+16#F04A a37
+16#F04B a38
+16#F04C a39
+16#F04D a40
+16#F04E a41
+16#F04F a42
+16#F050 a43
+16#F051 a44
+16#F052 a45
+16#F053 a46
+16#F054 a47
+16#F055 a48
+16#F056 a49
+16#F057 a50
+16#F058 a51
+16#F059 a52
+16#F05A a53
+16#F05B a54
+16#F05C a55
+16#F05D a56
+16#F05E a57
+16#F05F a58
+16#F060 a59
+16#F061 a60
+16#F062 a61
+16#F063 a62
+16#F064 a63
+16#F065 a64
+16#F066 a65
+16#F067 a66
+16#F068 a67
+16#F069 a68
+16#F06A a69
+16#F06B a70
+16#F06C a71
+16#F06D a72
+16#F06E a73
+16#F06F a74
+16#F070 a203
+16#F071 a75
+16#F072 a204
+16#F073 a76
+16#F074 a77
+16#F075 a78
+16#F076 a79
+16#F077 a81
+16#F078 a82
+16#F079 a83
+16#F07A a84
+16#F07B a97
+16#F07C a98
+16#F07D a99
+16#F07E a100
+16#F080 a89
+16#F081 a90
+16#F082 a93
+16#F083 a94
+16#F084 a91
+16#F085 a92
+16#F086 a205
+16#F087 a85
+16#F088 a206
+16#F089 a86
+16#F08A a87
+16#F08B a88
+16#F08C a95
+16#F08D a96
+16#F0A1 a101
+16#F0A2 a102
+16#F0A3 a103
+16#F0A4 a104
+16#F0A5 a106
+16#F0A6 a107
+16#F0A7 a108
+16#F0A8 a112
+16#F0A9 a111
+16#F0AA a110
+16#F0AB a109
+16#F0AC a120
+16#F0AD a121
+16#F0AE a122
+16#F0AF a123
+16#F0B0 a124
+16#F0B1 a125
+16#F0B2 a126
+16#F0B3 a127
+16#F0B4 a128
+16#F0B5 a129
+16#F0B6 a130
+16#F0B7 a131
+16#F0B8 a132
+16#F0B9 a133
+16#F0BA a134
+16#F0BB a135
+16#F0BC a136
+16#F0BD a137
+16#F0BE a138
+16#F0BF a139
+16#F0C0 a140
+16#F0C1 a141
+16#F0C2 a142
+16#F0C3 a143
+16#F0C4 a144
+16#F0C5 a145
+16#F0C6 a146
+16#F0C7 a147
+16#F0C8 a148
+16#F0C9 a149
+16#F0CA a150
+16#F0CB a151
+16#F0CC a152
+16#F0CD a153
+16#F0CE a154
+16#F0CF a155
+16#F0D0 a156
+16#F0D1 a157
+16#F0D2 a158
+16#F0D3 a159
+16#F0D4 a160
+16#F0D5 a161
+16#F0D6 a163
+16#F0D7 a164
+16#F0D8 a196
+16#F0D9 a165
+16#F0DA a192
+16#F0DB a166
+16#F0DC a167
+16#F0DD a168
+16#F0DE a169
+16#F0DF a170
+16#F0E0 a171
+16#F0E1 a172
+16#F0E2 a173
+16#F0E3 a162
+16#F0E4 a174
+16#F0E5 a175
+16#F0E6 a176
+16#F0E7 a177
+16#F0E8 a178
+16#F0E9 a179
+16#F0EA a193
+16#F0EB a180
+16#F0EC a199
+16#F0ED a181
+16#F0EE a200
+16#F0EF a182
+16#F0F1 a201
+16#F0F2 a183
+16#F0F3 a184
+16#F0F4 a197
+16#F0F5 a185
+16#F0F6 a194
+16#F0F7 a198
+16#F0F8 a186
+16#F0F9 a195
+16#F0FA a187
+16#F0FB a188
+16#F0FC a189
+16#F0FD a190
+16#F0FE a191
+
+%EOF
Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Symbol
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Symbol (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Symbol 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,217 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% FCO_Symbol Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+/FCO_Symbol % resource name
+200 % tokens
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+
+% Generated for FCO from Symbol encoding with adding F000
+% since MTFONTS/PS3/MT3/ps3___xh.fco wants so.
+
+16#0020 space % Note : UFST uses 0x20 when others are 0xF0**.
+16#F021 exclam
+16#F022 universal
+16#F023 numbersign
+16#F024 existential
+16#F025 percent
+16#F026 ampersand
+16#F027 suchthat
+16#F028 parenleft
+16#F029 parenright
+16#F02A asteriskmath
+16#F02B plus
+16#F02C comma
+16#F02D minus
+16#F02E period
+16#F02F slash
+16#F030 zero
+16#F031 one
+16#F032 two
+16#F033 three
+16#F034 four
+16#F035 five
+16#F036 six
+16#F037 seven
+16#F038 eight
+16#F039 nine
+16#F03A colon
+16#F03B semicolon
+16#F03C less
+16#F03D equal
+16#F03E greater
+16#F03F question
+16#F040 congruent
+16#F041 Alpha
+16#F042 Beta
+16#F043 Chi
+16#F044 Delta
+16#F045 Epsilon
+16#F046 Phi
+16#F047 Gamma
+16#F048 Eta
+16#F049 Iota
+16#F04A theta1
+16#F04B Kappa
+16#F04C Lambda
+16#F04D Mu
+16#F04E Nu
+16#F04F Omicron
+16#F050 Pi
+16#F051 Theta
+16#F052 Rho
+16#F053 Sigma
+16#F054 Tau
+16#F055 Upsilon
+16#F056 sigma1
+16#F057 Omega
+16#F058 Xi
+16#F059 Psi
+16#F05A Zeta
+16#F05B bracketleft
+16#F05C therefore
+16#F05D bracketright
+16#F05E perpendicular
+16#F05F underscore
+16#F060 radicalex
+16#F061 alpha
+16#F062 beta
+16#F063 chi
+16#F064 delta
+16#F065 epsilon
+16#F066 phi
+16#F067 gamma
+16#F068 eta
+16#F069 iota
+16#F06A phi1
+16#F06B kappa
+16#F06C lambda
+16#F06D mu
+16#F06E nu
+16#F06F omicron
+16#F070 pi
+16#F071 theta
+16#F072 rho
+16#F073 sigma
+16#F074 tau
+16#F075 upsilon
+16#F076 omega1
+16#F077 omega
+16#F078 xi
+16#F079 psi
+16#F07A zeta
+16#F07B braceleft
+16#F07C bar
+16#F07D braceright
+16#F07E similar
+16#F0A0 Euro
+16#F0A1 Upsilon1
+16#F0A2 minute
+16#F0A3 lessequal
+16#F0A4 fraction
+16#F0A5 infinity
+16#F0A6 florin
+16#F0A7 club
+16#F0A8 diamond
+16#F0A9 heart
+16#F0AA spade
+16#F0AB arrowboth
+16#F0AC arrowleft
+16#F0AD arrowup
+16#F0AE arrowright
+16#F0AF arrowdown
+16#F0B0 degree
+16#F0B1 plusminus
+16#F0B2 second
+16#F0B3 greaterequal
+16#F0B4 multiply
+16#F0B5 proportional
+16#F0B6 partialdiff
+16#F0B7 bullet
+16#F0B8 divide
+16#F0B9 notequal
+16#F0BA equivalence
+16#F0BB approxequal
+16#F0BC ellipsis
+16#F0BD arrowvertex
+16#F0BE arrowhorizex
+16#F0BF carriagereturn
+16#F0C0 aleph
+16#F0C1 Ifraktur
+16#F0C2 Rfraktur
+16#F0C3 weierstrass
+16#F0C4 circlemultiply
+16#F0C5 circleplus
+16#F0C6 emptyset
+16#F0C7 intersection
+16#F0C8 union
+16#F0C9 propersuperset
+16#F0CA reflexsuperset
+16#F0CB notsubset
+16#F0CC propersubset
+16#F0CD reflexsubset
+16#F0CE element
+16#F0CF notelement
+16#F0D0 angle
+16#F0D1 gradient
+16#F0D2 registerserif
+16#F0D3 copyrightserif
+16#F0D4 trademarkserif
+16#F0D5 product
+16#F0D6 radical
+16#F0D7 dotmath
+16#F0D8 logicalnot
+16#F0D9 logicaland
+16#F0DA logicalor
+16#F0DB arrowdblboth
+16#F0DC arrowdblleft
+16#F0DD arrowdblup
+16#F0DE arrowdblright
+16#F0DF arrowdbldown
+16#F0E0 lozenge
+16#F0E1 angleleft
+16#F0E2 registersans
+16#F0E3 copyrightsans
+16#F0E4 trademarksans
+16#F0E5 summation
+16#F0E6 parenlefttp
+16#F0E7 parenleftex
+16#F0E8 parenleftbt
+16#F0E9 bracketlefttp
+16#F0EA bracketleftex
+16#F0EB bracketleftbt
+16#F0EC bracelefttp
+16#F0ED braceleftmid
+16#F0EE braceleftbt
+16#F0EF braceex
+16#F0F1 angleright
+16#F0F2 integral
+16#F0F3 integraltp
+16#F0F4 integralex
+16#F0F5 integralbt
+16#F0F6 parenrighttp
+16#F0F7 parenrightex
+16#F0F8 parenrightbt
+16#F0F9 bracketrighttp
+16#F0FA bracketrightex
+16#F0FB bracketrightbt
+16#F0FC bracerighttp
+16#F0FD bracerightmid
+16#F0FE bracerightbt
+
+%EOF
Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Unicode
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Unicode (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Unicode 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,2492 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% Unicode Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+% This file is in the same format as the "Unicode" Decoding resource, and includes
+% the same mappings, with the following exceptions:
+% - the set of names is smaller, no new names were added since SVN revision 6799;
+% - there are a few FCO-specific mapping differences (look for "%FCO-specific:");
+% these are put in an extra, last column.
+
+/FCO_Unicode % resource name
+3375 % # of names
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+16#0000 .null NUL
+16#0001 SOH
+16#0002 STX
+16#0003 ETX
+16#0004 EOT
+16#0005 ENQ
+16#0006 ACK
+16#0007 BEL
+16#0008 BS
+16#0009 HT
+16#000A LF
+16#000B VT
+16#000C FF
+16#000D CR nonmarkingreturn
+16#000E SO
+16#000F SI
+16#0010 DLE DC0
+16#0011 XON DC1
+16#0012 DC2
+16#0013 XOF DC3
+16#0014 DC4
+16#0015 NAK
+16#0016 SYN
+16#0017 ETB
+16#0018 CAN
+16#0019 EM
+16#001A EOF SUB
+16#001B ESC
+16#001C IFS FS
+16#001D IGS GS
+16#001E IRS RS
+16#001F IUS US
+16#0020 space SP010000
+16#0021 exclam SP020000
+16#0022 quotedbl SP040000
+16#0023 numbersign SM010000
+16#0024 dollar SC030000 milreis escudo
+16#0025 percent SM020000
+16#0026 ampersand SM030000
+16#0027 quotesingle SP050000
+16#0028 parenleft SP060000
+16#0029 parenright SP070000
+16#002A asterisk SM040000
+16#002B plus SA010000
+16#002C comma SP080000
+16#002D hyphen SP100000 hyphen-minus hyphenminus
+16#002E period SP110000
+16#002F slash SP120000
+16#0030 zero ND100000 zerodot zeroslash
+16#0031 one ND010000
+16#0032 two ND020000
+16#0033 three ND030000
+16#0034 four ND040000
+16#0035 five ND050000
+16#0036 six ND060000
+16#0037 seven ND070000
+16#0038 eight ND080000
+16#0039 nine ND090000
+16#003A colon SP130000
+16#003B semicolon SP140000
+16#003C less SA030000
+16#003D equal SA040000
+16#003E greater SA050000
+16#003F question SP150000
+16#0040 at SM050000
+16#0041 A LA020000
+16#0042 B LB020000
+16#0043 C LC020000
+16#0044 D LD020000
+16#0045 E LE020000
+16#0046 F LF020000
+16#0047 G LG020000
+16#0048 H LH020000
+16#0049 I LI020000 Inodot
+16#004A J LJ020000
+16#004B K LK020000
+16#004C L LL020000
+16#004D M LM020000
+16#004E N LN020000
+16#004F O LO020000
+16#0050 P LP020000
+16#0051 Q LQ020000
+16#0052 R LR020000
+16#0053 S LS020000
+16#0054 T LT020000
+16#0055 U LU020000
+16#0056 V LV020000
+16#0057 W LW020000
+16#0058 X LX020000
+16#0059 Y LY020000
+16#005A Z LZ020000
+16#005B bracketleft SM060000
+16#005C backslash SM070000
+16#005D bracketright SM080000
+16#005E asciicircum SD150000
+16#005F underscore SP090000
+16#0060 grave SD130000
+16#0061 a LA010000
+16#0062 b LB010000
+16#0063 c LC010000
+16#0064 d LD010000
+16#0065 e LE010000
+16#0066 f LF010000
+16#0067 g LG010000
+16#0068 h LH010000
+16#0069 i LI010000
+16#006A j LJ010000
+16#006B k LK010000
+16#006C l LL010000
+16#006D m LM010000
+16#006E n LN010000
+16#006F o LO010000
+16#0070 p LP010000
+16#0071 q LQ010000
+16#0072 r LR010000
+16#0073 s LS010000
+16#0074 t LT010000
+16#0075 u LU010000
+16#0076 v LV010000
+16#0077 w LW010000
+16#0078 x LX010000
+16#0079 y LY010000
+16#007A z LZ010000
+16#007B braceleft SM110000
+16#007C bar SM130000
+16#007D braceright SM140000
+16#007E asciitilde SD190000
+16#007F DEL
+16#0080 SP300000 c128
+16#0081 SP030000 c129
+16#0082 SC040000
+16#0083 SC020000
+16#0084 SC010000
+16#0085 SC050000
+16#0086 SM650000
+16#0087 SM240000
+16#0088 SD170000 diaeresis
+16#0089 SM520000
+16#008A SM210000
+16#008B SP170000
+16#008C SM660000
+16#008D SP320000 c141
+16#008E SM530000 c142
+16#008F SM150000 overstore c143
+16#0090 SM190000
+16#0091 SA020000
+16#0092 ND021000
+16#0093 ND031000
+16#0094 SD110000
+16#0095 SM170000 micro
+16#0096 SM250000
+16#0097 SD630000 periodcentered.0
+16#0098 SD410000
+16#0099 ND011000
+16#009A SM200000
+16#009B SP180000
+16#009C NF040000
+16#009D NF010000
+16#009E NF050000
+16#009F SP160000
+16#00A0 nbspace LA140000
+16#00A1 exclamdown LA120000
+16#00A2 cent LA160000
+16#00A3 sterling LA200000
+16#00A4 currency LA180000
+16#00A5 yen LA280000
+16#00A6 brokenbar LA520000
+16#00A7 section LC420000
+16#00A8 dieresis LE140000
+16#00A9 copyright LE120000
+16#00AA ordfeminine LE160000
+16#00AB guillemotleft LE180000
+16#00AC logicalnot LI140000
+16#00AD sfthyphen softhyphen LI120000
+16#00AE registered LI160000
+16#00AF overscore LI180000 %FCO-specific: macron at 16#02C9, not 16#00AF
+16#00B0 degree
+16#00B1 plusminus LN200000
+16#00B2 twosuperior LO140000
+16#00B3 threesuperior LO120000
+16#00B4 acute LO160000
+16#00B5 mu LO200000
+16#00B6 paragraph LO180000
+16#00B7 middot SA070000 periodcentered.1 %FCO-specific: periodcentered at 16#2022, 16#00B7 is periodcentered.1
+16#00B8 cedilla
+16#00B9 onesuperior LU140000
+16#00BA ordmasculine LU120000
+16#00BB guillemotright LU160000
+16#00BC onequarter LU180000
+16#00BD onehalf LY120000
+16#00BE threequarters LT640000
+16#00BF questiondown LS610000
+16#00C0 Agrave LA130000
+16#00C1 Aacute LA110000
+16#00C2 Acircumflex LA150000
+16#00C3 Atilde LA190000
+16#00C4 Adieresis LA170000
+16#00C5 Aring LA270000
+16#00C6 AE LA510000
+16#00C7 Ccedilla LC410000
+16#00C8 Egrave LE130000
+16#00C9 Eacute LE110000
+16#00CA Ecircumflex LE150000
+16#00CB Edieresis LE170000
+16#00CC Igrave LI130000
+16#00CD Iacute LI110000
+16#00CE Icircumflex LI150000
+16#00CF Idieresis LI170000
+16#00D0 Eth LD630000
+16#00D1 Ntilde LN190000
+16#00D2 Ograve LO130000
+16#00D3 Oacute LO110000
+16#00D4 Ocircumflex LO150000
+16#00D5 Otilde LO190000
+16#00D6 Odieresis LO170000
+16#00D7 multiply SA060000
+16#00D8 Oslash
+16#00D9 Ugrave LU130000
+16#00DA Uacute LU110000
+16#00DB Ucircumflex LU150000
+16#00DC Udieresis LU170000
+16#00DD Yacute LY110000
+16#00DE Thorn LT630000
+16#00DF germandbls LY170000
+16#00E0 agrave LA620000
+16#00E1 aacute LA610000
+16#00E2 acircumflex LA240000
+16#00E3 atilde LA230000
+16#00E4 adieresis LA440000
+16#00E5 aring LA430000
+16#00E6 ae LC120000
+16#00E7 ccedilla LC110000
+16#00E8 egrave LC160000
+16#00E9 eacute LC150000
+16#00EA ecircumflex LC300000
+16#00EB edieresis LC290000
+16#00EC igrave LC220000
+16#00ED iacute LC210000
+16#00EE icircumflex LD220000
+16#00EF idieresis LD210000 dquoteright
+16#00F0 eth LD620000 Dbar Dmacron
+16#00F1 ntilde LD610000 dbar
+16#00F2 ograve LE620000
+16#00F3 oacute LE610000
+16#00F4 ocircumflex LE240000
+16#00F5 otilde LE230000
+16#00F6 odieresis LE300000
+16#00F7 divide LE290000 c144
+16#00F8 oslash LE440000
+16#00F9 ugrave LE430000
+16#00FA uacute LE220000
+16#00FB ucircumflex LE210000
+16#00FC udieresis LG160000
+16#00FD yacute LG150000
+16#00FE thorn LG240000
+16#00FF ydieresis LG230000
+16#0100 Amacron LG300000
+16#0101 amacron LG290000 c158
+16#0102 Abreve LG420000
+16#0103 abreve LG110000
+16#0104 Aogonek LH160000
+16#0105 aogonek LH150000
+16#0106 Cacute LH620000 Hmacron
+16#0107 cacute LH610000 hmacron
+16#0108 Ccircumflex LI200000
+16#0109 ccircumflex LI190000
+16#010A Cdotaccent Cdot LI620000
+16#010B cdotaccent cdot
+16#010C Ccaron LI240000
+16#010D ccaron LI230000
+16#010E Dcaron LI440000
+16#010F dcaron LI430000
+16#0110 Dcroat Dslash LI300000
+16#0111 dcroat dmacron LI610000 dslash
+16#0112 Emacron
+16#0113 emacron
+16#0114 Ebreve LJ160000
+16#0115 ebreve LJ150000
+16#0116 Edotaccent Edot LK420000
+16#0117 edotaccent edot LK410000
+16#0118 Eogonek kra
+16#0119 eogonek LL120000
+16#011A Ecaron LL110000
+16#011B ecaron LL420000
+16#011C Gcircumflex LL410000
+16#011D gcircumflex LL220000
+16#011E Gbreve LL210000
+16#011F gbreve LL640000
+16#0120 Gdotaccent Gdot LL630000
+16#0121 gdotaccent gdot LL620000
+16#0122 Gcedilla Gcommaaccent LL610000
+16#0123 gcedilla gcommaaccent LN120000
+16#0124 Hcircumflex LN110000
+16#0125 hcircumflex LN420000
+16#0126 Hbar LN410000
+16#0127 hbar LN220000
+16#0128 Itilde LN210000
+16#0129 itilde highcomman
+16#012A Imacron
+16#012B imacron
+16#012C Ibreve LO620000
+16#012D ibreve LO610000
+16#012E Iogonek LO240000
+16#012F iogonek LO230000
+16#0130 Idotaccent Idot LO260000
+16#0131 dotlessi LO250000
+16#0132 IJ LO520000
+16#0133 ij LO510000
+16#0134 Jcircumflex LR120000
+16#0135 jcircumflex LR110000
+16#0136 Kcedilla Kcommaaccent LR420000
+16#0137 kcedilla kcommaaccent LR410000
+16#0138 kgreenlandic LR220000
+16#0139 Lacute LR210000
+16#013A lacute LS120000
+16#013B Lcedilla Lcommaaccent LS110000
+16#013C lcedilla lcommaaccent LS160000
+16#013D Lcaron LS150000
+16#013E lcaron LS420000
+16#013F Ldot Ldotaccent LS410000
+16#0140 ldot ldotaccent LS220000
+16#0141 Lslash LS210000
+16#0142 lslash LT420000
+16#0143 Nacute LT410000
+16#0144 nacute LT220000
+16#0145 Ncedilla Ncommaaccent LT210000 tquoteright
+16#0146 ncedilla ncommaaccent LT620000 Tmacron
+16#0147 Ncaron LT610000 tmacron
+16#0148 ncaron LU200000
+16#0149 napostrophe LU190000
+16#014A Eng LU620000
+16#014B eng LU610000
+16#014C Omacron LU240000
+16#014D omacron LU230000
+16#014E Obreve LU280000
+16#014F obreve LU270000
+16#0150 Ohungarumlaut Odblacute LU260000
+16#0151 ohungarumlaut odblacute LU250000
+16#0152 OE LU440000
+16#0153 oe LU430000
+16#0154 Racute LW160000
+16#0155 racute LW150000
+16#0156 Rcedilla Rcommaaccent LY160000
+16#0157 rcedilla rcommaaccent LY150000
+16#0158 Rcaron LY180000
+16#0159 rcaron LZ120000
+16#015A Sacute LZ110000
+16#015B sacute LZ300000
+16#015C Scircumflex LZ290000
+16#015D scircumflex LZ220000
+16#015E Scedilla LZ210000
+16#015F scedilla
+16#0160 Scaron bbar
+16#0161 scaron
+16#0162 Tcedilla Tcommaaccent
+16#0163 tcedilla tcommaaccent
+16#0164 Tcaron
+16#0165 tcaron
+16#0166 Tbar
+16#0167 tbar
+16#0168 Utilde
+16#0169 utilde Dbar1
+16#016A Umacron
+16#016B umacron
+16#016C Ubreve
+16#016D ubreve deltaturn
+16#016E Uring Eturn
+16#016F uring
+16#0170 Uhungarumlaut Udblacute Epsilon1
+16#0171 uhungarumlaut udblacute
+16#0172 Uogonek SC070000 fscript
+16#0173 uogonek
+16#0174 Wcircumflex Gamma1
+16#0175 wcircumflex
+16#0176 Ycircumflex Iota1
+16#0177 ycircumflex Ibar
+16#0178 Ydieresis
+16#0179 Zacute
+16#017A zacute
+16#017B Zdotaccent Zdot lambdabar
+16#017C zdotaccent zdot mcapturn
+16#017D Zcaron Nhook
+16#017E zcaron nleg
+16#017F longs slong Obar
+16#0181 Bhook
+16#0182 Btopbar OI
+16#0183 btopbar
+16#0184 Tonesix
+16#0185 tonesix
+16#0186 Oopen YR
+16#0187 Chook
+16#0188 chook
+16#018A Dhook eshlooprev
+16#018B Dtopbar
+16#018C dtopbar
+16#018E Trthook
+16#018F Schwa
+16#0191 Fhook Upsilon2
+16#0192 florin Vcursive
+16#0193 Ghook
+16#0195 hv Zbar
+16#0196 zbar
+16#0197 Yogh
+16#0198 Khook Yoghrev
+16#0199 khook yoghrev
+16#019A lbar yoghtail
+16#019B 2bar
+16#019E glottalstopbarinv
+16#01A0 Ohorn pipe
+16#01A1 ohorn pipedbl
+16#01A2 pipedblbar
+16#01A3 oi exclam1
+16#01A4 Phook DZhacek
+16#01A5 phook Dzhacek
+16#01A6 dzhacek
+16#01A7 Tonetwo
+16#01A8 tonetwo
+16#01A9 Esh
+16#01AB tpalatalhook
+16#01AC Thook
+16#01AD thook Ahacek
+16#01AE ahacek
+16#01AF Uhorn Ihacek
+16#01B0 uhorn ihacek
+16#01B1 Ohacek
+16#01B2 ohacek
+16#01B3 Yhook Uhacek
+16#01B4 yhook uhacek
+16#01B9 Udieresishacek
+16#01BA udieresishacek
+16#01BC Tonefive
+16#01BD tonefive eturn
+16#01BF wynn
+16#01C4 Gbar
+16#01C5 gbar
+16#01C6 Ghacek
+16#01C7 LJ ghacek
+16#01C8 Lj Khacek
+16#01C9 lj khacek
+16#01CA NJ
+16#01CB Nj
+16#01CC nj
+16#01CE Yoghhacek
+16#01CF yoghhacek
+16#01D0 jhacek
+16#01D5 Udieresismacron
+16#01D6 udieresismacron
+16#01D7 Udieresisacute
+16#01D8 udieresisacute
+16#01DA Aacutering
+16#01DB Udieresisgrave aacutering
+16#01DC udieresisgrave
+16#01DE Adieresismacron
+16#01DF adieresismacron
+16#01E0 Adotmacron aturn
+16#01E1 adotmacron
+16#01E2 AEmacron ascriptturn
+16#01E3 aemacron
+16#01E4 cturn
+16#01E6 Gcaron drthook
+16#01E7 gcaron
+16#01E8 erev
+16#01EA Oogonek
+16#01EB oogonek epsilon1
+16#01EC Oogonekmacron epsilon1rev
+16#01ED oogonekmacron epsilon1revhook
+16#01EE epsilon1revclosed
+16#01EF jdotlessbar
+16#01F1 DZ gcursive
+16#01F2 Dz Gsmallcap
+16#01F3 dz gamma1
+16#01F4 Gacute babygamma
+16#01F5 gacute hturn
+16#01F8 ibar
+16#01F9 iota1
+16#01FA Aringacute Ismallcap
+16#01FB aringacute lmidtilde
+16#01FC AEacute
+16#01FD aeacute lrthook
+16#01FE Oslashacute lyogh
+16#01FF oslashacute mturn
+16#0200 mturndescend
+16#0202 nlftlfthook
+16#0203 nrthook
+16#0204 Nsmallcap
+16#0205 obar
+16#0206 OEsmallcap
+16#0207 omegaclosed
+16#0209 rturn
+16#020A rturnascend
+16#020B rturnrthook rturnhook
+16#020C rdescend
+16#020D rrthook
+16#020F rfishhookrev
+16#0210 Rsmallcap
+16#0211 Rsmallcapinv
+16#0212 srthook
+16#0214 jhookdblbar
+16#0215 eshshortrev
+16#0217 tturn
+16#0218 Scommaaccent trthook
+16#0219 scommaaccent
+16#021B vscript
+16#021C vturn
+16#021D wturn
+16#021E yturn
+16#021F Ysmallcap
+16#0220 zrthook
+16#0222 yogh
+16#0223 yoghcurl
+16#0225 glottalstoprevinv
+16#0226 glottalstopinv
+16#0227 cstretch
+16#0229 Bsmallcap
+16#022A epsilonclosed
+16#022B Gsmallcaphook
+16#022C Hsmallcap
+16#022D jcrosstail
+16#022E kturn
+16#022F Lsmallcap
+16#0231 glottalstopbar
+16#0232 glottalstopbarrev
+16#0234 dyogh
+16#0239 hsuper
+16#023A hhooksuper
+16#023B jsuper
+16#023C rsuper
+16#023D rturnsuper
+16#023E rturnrthooksuper rturnhooksuper
+16#023F Rturnsuper
+16#0240 wsuper
+16#0241 ysuper
+16#0243 primedblmod
+16#0244 quoteleftmod
+16#0245 apostrophe
+16#0246 apostropherev
+16#0247 ringrighthalfsuper
+16#0248 ringlefthalfsuper
+16#0249 glottal
+16#024A glottalrev
+16#024B fronted
+16#024C backed
+16#024D raised
+16#024E lowered
+16#024F SD150100
+16#0250 SD210000
+16#0251 ascript linevert
+16#0252 SD310000 overscore1 macron1
+16#0253 bhook acute1
+16#0254 grave1
+16#0255 ccurl linevertsub
+16#0256 macronsub
+16#0257 dhook gravesub
+16#0258 acutesub
+16#0259 schwa length
+16#025A schwahook halflength
+16#025B ringrighthalfcenter
+16#025C ringlefthalfsup
+16#025D tackupmid
+16#025E tackdownmid
+16#0260 ghook
+16#0261 gscript SD230000
+16#0262 SD290000
+16#0263 SD270000
+16#0264 SD430000
+16#0265 SD190100
+16#0266 hhook SD250000
+16#0267 henghook rhotichook
+16#0269 gammasuper
+16#026A lsuper
+16#026B ssuper
+16#026C lbelt xsuper
+16#026D glottalrevsuper
+16#026E toneextrahigh
+16#026F tonehigh
+16#0270 tonemid
+16#0271 mhook tonelow
+16#0272 toneextralow
+16#0273 gravenosp
+16#0274 acutenosp
+16#0275 circumflexnosp
+16#0276 tildenosp
+16#0277 macronnosp
+16#0278 philatin overscorenosp
+16#0279 brevenosp
+16#027A dotnosp
+16#027B dieresisnosp
+16#027C hooksupnosp
+16#027D ringnosp
+16#027E rfishhook acutedblnosp
+16#027F haceknosp
+16#0280 linevertnosp
+16#0281 linevertdblnosp
+16#0282 gravedblnosp
+16#0283 esh candrabindunosp
+16#0284 breveinvnosp
+16#0285 commaturnsupnosp
+16#0286 eshcurl apostrophesupnosp
+16#0287 commasuprevnosp
+16#0288 commasuprightnosp
+16#0289 ubar gravesubnosp
+16#028A upsilonlatin acutesubnosp
+16#028B tackleftsubnosp
+16#028C tackrightsubnosp
+16#028D anglesupnosp
+16#028E hornnosp
+16#028F ringlefthalfsubnosp
+16#0290 tackupsubnosp
+16#0291 zcurl tackdownsubnosp
+16#0292 plussubnosp
+16#0293 minussubnosp
+16#0294 glottalstop hooksubpalatnosp
+16#0295 hooksubretronosp
+16#0296 dotsubnosp
+16#0297 dotdblsubnosp
+16#0298 ringsubnosp
+16#0299 commasubnosp
+16#029A cedillanosp
+16#029B ogoneknosp
+16#029C linevertsubnosp
+16#029D bridgesubnosp
+16#029E archdblsubnosp
+16#029F haceksubnosp
+16#02A0 qhook circumflexsubnosp
+16#02A1 brevesubnosp
+16#02A2 breveinvsubnosp
+16#02A3 tildesubnosp
+16#02A4 macronsubnosp
+16#02A5 dzcurl underscorenosp
+16#02A6 ts underscoredblnosp
+16#02A7 tesh tildemidnosp
+16#02A8 tccurl barmidshortnosp
+16#02A9 barmidlongnosp
+16#02AA slashshortnosp
+16#02AB slashlongnosp
+16#02AC ringrighthalfsubnosp
+16#02AD bridgeinvsubnosp
+16#02AE squaresubnosp
+16#02AF seagullsubnosp
+16#02B0 xsupnosp
+16#02B1 tildevertsupnosp
+16#02B2 overscoredblnosp
+16#02B3 graveleftnosp
+16#02B4 acuterightnosp
+16#02B7 diaeresistonosnosp
+16#02B8 iotasubnosp
+16#02B9 primemod
+16#02BC afii57929
+16#02BD afii64937 numeralgreek
+16#02BE numeralgreeksub
+16#02C3 iotasub
+16#02C6 circumflex
+16#02C7 caron
+16#02C9 macron %FCO-specific: macron at 16#02C9, not 16#00AF
+16#02CE diaeresistonos
+16#02D6 plusmod
+16#02D7 minusmod
+16#02D8 breve
+16#02D9 dotaccent iotadiaeresistonos
+16#02DA ring GA020000
+16#02DB ogonek GB020000
+16#02DC tilde GG020000
+16#02DD hungarumlaut GD020000
+16#02DE GE020000
+16#02E1 GT620000
+16#02E9 GP020000
+16#02EC GS020000
+16#02ED GT020000
+16#02EF GF020000
+16#02F2 GO320000
+16#02F3 Iotadiaeresis
+16#02F4 Upsilondiaeresis
+16#02F9 upsilondiaeresistonos
+16#02FA GA010000
+16#02FB GB010000
+16#02FC GG010000
+16#02FD GD010000
+16#02FE GE010000
+16#0300 gravecomb
+16#0301 acutecomb GT610000
+16#0303 tildecomb
+16#0309 hookabovecomb GP010000
+16#030C GS010000
+16#030D GT010000
+16#030F GF010000
+16#0312 GO310000
+16#0313 iotadiaeresis
+16#0314 upsilondiaeresis
+16#0319 beta1
+16#031C Upsilon1tonos
+16#031D Upsilon1diaeresis Upsilon1dieresis
+16#031F pi1
+16#0323 dotbelowcomb Stigma
+16#0325 Digamma
+16#0327 Koppa
+16#0329 Sampi
+16#0337 Dei
+16#0338 dei
+16#0339 kappa1
+16#033A rho1
+16#033B sigmalunate
+16#037E questiongreek
+16#0384 tonos
+16#0385 dieresistonos
+16#0386 Alphatonos
+16#0387 anoteleia
+16#0388 Epsilontonos
+16#0389 Etatonos
+16#038A Iotatonos
+16#038C Omicrontonos
+16#038E Upsilontonos
+16#038F Omegatonos
+16#0390 iotadieresistonos
+16#0391 Alpha
+16#0392 Beta
+16#0393 Gamma
+16#0394 Delta %FCO-specific: 16#0394 named Delta, not Deltagreek
+16#0395 Epsilon
+16#0396 Zeta
+16#0397 Eta
+16#0398 Theta
+16#0399 Iota
+16#039A Kappa
+16#039B Lambda
+16#039C Mu
+16#039D Nu
+16#039E Xi Yat
+16#039F Omicron yat
+16#03A0 Pi
+16#03A1 Rho
+16#03A3 Sigma
+16#03A4 Tau
+16#03A5 Upsilon
+16#03A6 Phi Yusbig
+16#03A7 Chi yusbig
+16#03A8 Psi
+16#03A9 Omega %FCO-specific: 16#03A9 named Omega, not Omegagreek
+16#03AA Iotadieresis
+16#03AB Upsilondieresis
+16#03AC alphatonos
+16#03AD epsilontonos
+16#03AE etatonos
+16#03AF iotatonos
+16#03B0 upsilondieresistonos
+16#03B1 alpha
+16#03B2 beta
+16#03B3 gamma
+16#03B4 delta
+16#03B5 epsilon
+16#03B6 zeta
+16#03B7 eta
+16#03B8 theta
+16#03B9 iota
+16#03BA kappa
+16#03BB lambda
+16#03BD nu
+16#03BE xi
+16#03BF omicron
+16#03C0 pi
+16#03C1 rho
+16#03C2 sigma1 sigmafinal
+16#03C3 sigma
+16#03C4 tau
+16#03C5 upsilon
+16#03C6 phi
+16#03C7 chi
+16#03C8 psi
+16#03C9 omega
+16#03CA iotadieresis
+16#03CB upsilondieresis
+16#03CC omicrontonos
+16#03CD upsilontonos
+16#03CE omegatonos Gebar
+16#03CF gebar
+16#03D0 Gehook
+16#03D1 theta1 gehook
+16#03D2 Upsilon1 Zhertdes
+16#03D3 zhertdes
+16#03D4 Zecedilla
+16#03D5 phi1 zecedilla
+16#03D6 omega1 Kartdes
+16#03D7 kartdes
+16#03D8 Kavertbar
+16#03D9 kavertbar
+16#03DA Kabar
+16#03DB kabar
+16#03DC GeKarev
+16#03DD gekarev
+16#03DE Enrtdes
+16#03DF enrtdes
+16#03E0 EnGe
+16#03E1 enge
+16#03E2 Pehook
+16#03E3 pehook
+16#03E4 Ohook
+16#03E5 ohook
+16#03E6 Escedilla
+16#03E7 escedilla
+16#03E8 Tertdes
+16#03E9 tertdes
+16#03EA Ustrt
+16#03EB ustrt
+16#03EC Ustrtbar
+16#03ED ustrtbar
+16#03EE Khartdes
+16#03EF khartdes
+16#03F0 TeTse
+16#03F1 tetse
+16#03F2 Chertdes
+16#03F3 chertdes
+16#03F4 Chevertbar
+16#03F5 chevertbar
+16#03F6 Hcyril
+16#03F7 hcyril
+16#03F8 Iehook
+16#03F9 iehook
+16#03FA Iehookogonek
+16#03FB iehookogonek
+16#03FC Icyril1
+16#03FD Zhebreve
+16#03FE zhebreve
+16#03FF Kahook
+16#0400 kahook
+16#0401 afii10023 Io
+16#0402 afii10051 Dje
+16#0403 afii10052 Gje
+16#0404 afii10053 Ecyril
+16#0405 afii10054 Dze
+16#0406 afii10055 Icyril
+16#0407 afii10056 Yi
+16#0408 afii10057 Je
+16#0409 afii10058 Lje
+16#040A afii10059 Nje
+16#040B afii10060 Tshe
+16#040C afii10061 Kje
+16#040E afii10062 Ucyrilbreve
+16#040F afii10145 Dzhe
+16#0410 afii10017 Acyril
+16#0411 afii10018 Be
+16#0412 afii10019 Ve
+16#0413 afii10020 Ge
+16#0414 afii10021 De
+16#0415 afii10022 Ie
+16#0416 afii10024 Zhe
+16#0417 afii10025 Ze
+16#0418 afii10026 Ii
+16#0419 afii10027 Iibreve
+16#041A afii10028 Ka
+16#041B afii10029 El
+16#041C afii10030 Em
+16#041D afii10031 En
+16#041E afii10032 Ocyril
+16#041F afii10033 Pecyril
+16#0420 afii10034 Er
+16#0421 afii10035 Es
+16#0422 afii10036 Te
+16#0423 afii10037 Ucyril
+16#0424 afii10038 Ef
+16#0425 afii10039 Kha
+16#0426 afii10040 Tse
+16#0427 afii10041 Che
+16#0428 afii10042 Sha
+16#0429 afii10043 Shcha
+16#042A afii10044 Hard
+16#042B afii10045 Yeri
+16#042C afii10046 Soft
+16#042D afii10047 Ecyrilrev
+16#042E afii10048 Iu
+16#042F afii10049 Ia
+16#0430 afii10065 acyril
+16#0431 afii10066 be
+16#0432 afii10067 ve
+16#0433 afii10068 ge
+16#0434 afii10069 de
+16#0435 afii10070 ie
+16#0436 afii10072 zhe
+16#0437 afii10073 ze
+16#0438 afii10074 ii
+16#0439 afii10075 iibreve
+16#043A afii10076 ka
+16#043B afii10077 el
+16#043C afii10078 em
+16#043D afii10079 en
+16#043E afii10080 ocyril
+16#043F afii10081 pecyril
+16#0440 afii10082 er
+16#0441 afii10083 es
+16#0442 afii10084 te
+16#0443 afii10085 ucyril
+16#0444 afii10086 ef
+16#0445 afii10087 kha
+16#0446 afii10088 tse
+16#0447 afii10089 che
+16#0448 afii10090 sha
+16#0449 afii10091 shcha
+16#044A afii10092 hard
+16#044B afii10093 yeri
+16#044C afii10094 soft
+16#044D afii10095 ecyrilrev
+16#044E afii10096 iu
+16#044F afii10097 ia
+16#0451 afii10071 io
+16#0452 afii10099 dje
+16#0453 afii10100 gje
+16#0454 afii10101 ecyril
+16#0455 afii10102 dze
+16#0456 afii10103 icyril
+16#0457 afii10104 yi
+16#0458 afii10105 je
+16#0459 afii10106 lje
+16#045A afii10107 nje
+16#045B afii10108 tshe
+16#045C afii10109 kje
+16#045E afii10110 ucyrilbreve
+16#045F afii10193 dzhe
+16#0462 afii10146
+16#0463 afii10194
+16#0472 afii10147
+16#0473 afii10195
+16#0474 afii10148
+16#0475 afii10196 afii10190
+16#0490 afii10050 Geupturn
+16#0491 afii10098 geupturn
+16#04B5 Lcircumflex
+16#04B6 lcircumflex
+16#04D9 afii10846
+16#0579 SM300000
+16#057A SM320000
+16#057B SM310000
+16#057C SM330000
+16#057D SM780000 arrowlongboth
+16#057E SM760000 arrowlongbothv
+16#057F arrownorthwest
+16#0580 arrownortheast
+16#0581 arrowsoutheast
+16#0582 arrowsouthwest
+16#0583 arrowleftnot
+16#0584 arrowrightnot
+16#0585 arrowwaveleft
+16#0586 arrowwaveright
+16#0587 dblarrowheadleft
+16#0588 dblarrowheadup
+16#0589 dblarrowheadright
+16#058A dblarrowheaddown
+16#058B arrowtailleft
+16#058C arrowtailright
+16#058D arrowbarleft
+16#058E arrowbarup
+16#058F arrowbarright
+16#0590 arrowbardown
+16#0591 SM770000 arrowbothvbase
+16#0592 arrowhookleft
+16#0593 arrowhookright
+16#0594 arrowloopleft
+16#0595 arrowloopright
+16#0596 arrowwaveboth
+16#0597 arrowlongbothnot
+16#0598 arrowzigzag
+16#0599 null
+16#059A startofhead
+16#059B starttext
+16#059C endtext
+16#059D endtrans
+16#059E enquiry
+16#059F acknowledge
+16#05A0 bell
+16#05A1 backspace
+16#05A2 horiztab
+16#05A3 linefeed
+16#05A4 verttab
+16#05A5 formfeed
+16#05A7 shiftout
+16#05A8 shiftin
+16#05A9 datalinkescape devcon0
+16#05AA auxiliaryon devcon1
+16#05AB devcon2
+16#05AC auxiliaryoff devcon3
+16#05AD devcon4
+16#05AE negacknowledge
+16#05AF synch
+16#05B0 afii57799 sheva endtransblock
+16#05B1 afii57801 hatafsegol cancel
+16#05B2 afii57800 hatafpatah endmedium
+16#05B3 afii57802 hatafqamats substitute endoffile
+16#05B4 afii57793 hiriq escape
+16#05B5 afii57794 tsere fileseparator
+16#05B6 afii57795 segol groupseparator
+16#05B7 afii57798 patah recordseparator
+16#05B8 afii57797 qamats unitseparator
+16#05B9 afii57806 holam spaceliteral
+16#05BA delete
+16#05BB afii57796 qubuts qibuts blankb
+16#05BC afii57807 dagesh spaceopenbox
+16#05BD afii57839 meteg newline
+16#05BE afii57645 maqaf
+16#05BF afii57841 rafe
+16#05C0 afii57842 paseq
+16#05C1 afii57804 shindot
+16#05C2 afii57803 sindot
+16#05C3 afii57658 sofpasuq
+16#05D0 afii57664 alef
+16#05D1 afii57665 bet
+16#05D2 afii57666 gimel
+16#05D3 afii57667 dalet
+16#05D4 afii57668 he
+16#05D5 afii57669 vav
+16#05D6 afii57670 zayin
+16#05D7 afii57671 het
+16#05D8 afii57672 tet
+16#05D9 afii57673 yod
+16#05DA afii57674 kaffinal
+16#05DB afii57675 kaf
+16#05DC afii57676 lamed
+16#05DD afii57677 memfinal
+16#05DE afii57678 mem
+16#05DF afii57679 nunfinal
+16#05E0 afii57680 nun
+16#05E1 afii57681 samekh
+16#05E2 afii57682 ayin
+16#05E3 afii57683 pefinal
+16#05E4 afii57684 pe
+16#05E5 afii57685 tsadifinal
+16#05E6 afii57686 tsadi
+16#05E7 afii57687 qof
+16#05E8 afii57688 resh
+16#05E9 afii57689 shin
+16#05EA afii57690 tav
+16#05F0 afii57716 vavdbl
+16#05F1 afii57717 vavyod
+16#05F2 afii57718 yoddbl
+16#05F3 geresh
+16#05F4 gershayim
+16#060C afii57388 arabiccomma
+16#061B afii57403 arabicsemicolon
+16#061F afii57407 arabicquestionmark
+16#0621 afii57409 hamza
+16#0622 afii57410 alefwithmaddaabove
+16#0623 afii57411 alefwithhamzaabove
+16#0624 afii57412 wawwithhamzaabove
+16#0625 afii57413 alefwithhamzabelow
+16#0626 afii57414 yehwithhamzaabove
+16#0627 afii57415 arabicalef
+16#0628 afii57416 beh
+16#0629 afii57417 tehmarbuta
+16#062A afii57418 teh
+16#062B afii57419 theh
+16#062C afii57420 jeem
+16#062D afii57421 hah
+16#062E afii57422 khah
+16#062F afii57423 dal
+16#0630 afii57424 thal
+16#0631 afii57425 reh
+16#0632 afii57426 zain
+16#0633 afii57427 seen
+16#0634 afii57428 sheen
+16#0635 afii57429 sad
+16#0636 afii57430 dad
+16#0637 afii57431 tah
+16#0638 afii57432 zah
+16#0639 afii57433 ain
+16#063A afii57434 ghain
+16#0640 afii57440 tatweel
+16#0641 afii57441 feh
+16#0642 afii57442 qaf
+16#0643 afii57443 arabickaf
+16#0644 afii57444 lam
+16#0645 afii57445 meem
+16#0646 afii57446 noon
+16#0647 afii57470 heh
+16#0648 afii57448 waw
+16#0649 afii57449 alefmaksura
+16#064A afii57450 yeh
+16#064B afii57451 fathatan
+16#064C afii57452 dammatan
+16#064D afii57453 kasratan
+16#064E afii57454 fatha
+16#064F afii57455 damma
+16#0650 afii57456 kasra
+16#0651 afii57457 shadda
+16#0652 afii57458 sukun
+16#0660 afii57392 arabicindicdigitzero
+16#0661 afii57393 arabicindicdigitone
+16#0662 afii57394 arabicindicdigittwo
+16#0663 afii57395 arabicindicdigitthree
+16#0664 afii57396 arabicindicdigitfour
+16#0665 afii57397 arabicindicdigitfive
+16#0666 afii57398 arabicindicdigitsix
+16#0667 afii57399 arabicindicdigitseven
+16#0668 afii57400 arabicindicdigiteight
+16#0669 afii57401 arabicindicdigitnine
+16#066A afii57381 arabicpercentsign
+16#066D afii63167 arabicfivepointedstar
+16#0670 superscriptalef
+16#0671 alefwasla
+16#0674 highhamza
+16#0679 afii57511
+16#067E afii57506 peh
+16#0686 afii57507 tcheh
+16#0688 afii57512
+16#0691 afii57513
+16#0698 afii57508 jeh
+16#06A4 afii57505 veh
+16#06A9 keheh
+16#06AF afii57509 gaf
+16#06BA afii57514
+16#06CC farsiyeh
+16#06D2 afii57519
+16#06D5 afii57534 arabicae
+16#06E4 smallhighmadda
+16#06F0 extendedarabicindicdigitzero
+16#06F1 extendedarabicindicdigitone
+16#06F2 extendedarabicindicdigittwo
+16#06F3 extendedarabicindicdigitthree
+16#06F4 extendedarabicindicdigitfour
+16#06F5 extendedarabicindicdigitfive
+16#06F6 extendedarabicindicdigitsix
+16#06F7 extendedarabicindicdigitseven
+16#06F8 extendedarabicindicdigiteight
+16#06F9 extendedarabicindicdigitnine
+16#0E00 0.0
+16#0E01 afii59681
+16#0E02 afii59682
+16#0E03 afii59683
+16#0E04 afii59684
+16#0E05 afii59685
+16#0E06 afii59686
+16#0E07 afii59687
+16#0E08 afii59688
+16#0E09 afii59689
+16#0E0A afii59690
+16#0E0B afii59691
+16#0E0C afii59692
+16#0E0D afii59693
+16#0E0E afii59694
+16#0E0F afii59695
+16#0E10 afii59696
+16#0E11 afii59697
+16#0E12 afii59698
+16#0E13 afii59699
+16#0E14 afii59700
+16#0E15 afii59701
+16#0E16 afii59702
+16#0E17 afii59703
+16#0E18 afii59704
+16#0E19 afii59705
+16#0E1A afii59706
+16#0E1B afii59707
+16#0E1C afii59708
+16#0E1D afii59709
+16#0E1E afii59710
+16#0E1F afii59711
+16#0E20 afii59712
+16#0E21 afii59713
+16#0E22 afii59714
+16#0E23 afii59715
+16#0E24 afii59716
+16#0E25 afii59717
+16#0E26 afii59718
+16#0E27 afii59719
+16#0E28 afii59720
+16#0E29 afii59721
+16#0E2A afii59722
+16#0E2B afii59723
+16#0E2C afii59724
+16#0E2D afii59725
+16#0E2E afii59726
+16#0E2F afii59727
+16#0E30 afii59729
+16#0E31 afii59728
+16#0E32 afii59730
+16#0E33 afii59731
+16#0E34 afii59732
+16#0E35 afii59733
+16#0E36 afii59734
+16#0E37 afii59735
+16#0E38 afii59736
+16#0E39 afii59737
+16#0E3A afii59738
+16#0E3F afii59743
+16#0E40 afii59744
+16#0E41 afii59745
+16#0E42 afii59746
+16#0E43 afii59747
+16#0E44 afii59748
+16#0E45 afii59749
+16#0E46 afii59750
+16#0E47 afii59751
+16#0E48 afii59752
+16#0E49 afii59753
+16#0E4A afii59754
+16#0E4B afii59755
+16#0E4C afii59756
+16#0E4D afii59757
+16#0E4E afii59758
+16#0E4F afii59759
+16#0E50 afii59760
+16#0E51 afii59761
+16#0E52 afii59762
+16#0E53 afii59763
+16#0E54 afii59764
+16#0E55 afii59765
+16#0E56 afii59766
+16#0E57 afii59767
+16#0E58 afii59768
+16#0E59 afii59769
+16#0E5A afii59770
+16#0E5B afii59771
+16#1E80 Wgrave
+16#1E81 wgrave
+16#1E82 Wacute
+16#1E83 wacute
+16#1E84 Wdieresis
+16#1E85 wdieresis
+16#1EF2 Ygrave
+16#1EF3 ygrave
+16#2000 enquad
+16#2001 emquad
+16#2002 enspace
+16#2003 emspace
+16#2004 threeperemspace
+16#2005 fourperemspace
+16#2006 sixperemspace
+16#2007 figurespace
+16#2008 punctuationspace
+16#2009 thinspace
+16#200A hairspace
+16#200B zerospace
+16#200C afii61664 zeronojoin
+16#200D afii301 zerojoin
+16#200E afii299 lefttoright
+16#200F afii300 righttoleft
+16#2010 hyphen1
+16#2011 hyphennobreak nbhyphen
+16#2012 figuredash
+16#2013 endash SS680000
+16#2014 emdash SM900000
+16#2015 afii00208 longdash quotedash
+16#2016 verticalbardbl vertlinedbl
+16#2017 underscoredbl SM100000
+16#2018 quoteleft SP190000 quotesinglleft
+16#2019 quoteright SP200000 quotesinglright
+16#201A quotesinglbase SP260000
+16#201B quotereversed quotesinglrev
+16#201C quotedblleft SP210000
+16#201D quotedblright SP220000
+16#201E quotedblbase SP230000
+16#201F quotedblrev
+16#2020 dagger SM340000
+16#2021 daggerdbl SM350000
+16#2022 bullet SM570000 periodcentered %FCO-specific: periodcentered at 16#2022, 16#00B7 is periodcentered.1
+16#2023 trianglebullet
+16#2024 onedotenleader onedotlead onedotleader
+16#2025 twodotenleader twodotleader twodotlead
+16#2026 ellipsis SV520000
+16#2027 hyphendot
+16#2028 lineseparator
+16#2029 paragraphseparator
+16#202A lre
+16#202B rle
+16#202C afii61573 pdf
+16#202D afii61574 lro
+16#202E afii61575 rlo
+16#2030 perthousand SM560000
+16#2031 pertenthousand
+16#2032 minute prime1 prime
+16#2033 second primedbl1 primedbl
+16#2034 primetripl1 primetripl
+16#2035 minuterev primerev1 primerev
+16#2036 primedblrev1 primedblrev secondrev
+16#2037 primetriplerev1 primetriplerev
+16#2038 caret
+16#2039 guilsinglleft SP270000
+16#203A guilsinglright SP280000
+16#203B refmark
+16#203C exclamdbl SP330000
+16#203D interrobang
+16#203E overline
+16#203F undertie
+16#2040 tie tie1
+16#2041 caretinsert
+16#2042 asterism
+16#2043 hyphenbullet
+16#2044 fraction1 %FCO-specific: fraction at 16#2215, not 16#2044
+16#2045 bracketleftquill
+16#2046 bracketrightquill
+16#2070 zerosuperior
+16#2074 foursuperior
+16#2075 fivesuperior
+16#2076 sixsuperior
+16#2077 sevensuperior
+16#2078 eightsuperior
+16#2079 ninesuperior
+16#207A plussuperior
+16#207B minussuperior
+16#207C equalsuperior
+16#207D parenleftsuperior
+16#207E parenrightsuperior
+16#207F nsuperior LN011000
+16#2080 zeroinferior zerosub
+16#2081 oneinferior onesub
+16#2082 twoinferior twosub
+16#2083 threeinferior threesub
+16#2084 fourinferior foursub
+16#2085 fiveinferior fivesub
+16#2086 sixinferior sixsub
+16#2087 seveninferior sevensub
+16#2088 eightinferior eightsub
+16#2089 nineinferior ninesub
+16#208A plussub plusinferior
+16#208B minussub minusinferior
+16#208C equalsub equalinferior
+16#208D parenleftinferior parenleftsub
+16#208E parenrightinferior parenrightsub
+16#20A0 eurocurrency
+16#20A1 colonmonetary coloncurrency Colonmonetary coloncur
+16#20A2 cruzeiro
+16#20A3 franc
+16#20A4 lira afii08941
+16#20A5 mill
+16#20A6 naira
+16#20A7 peseta SC060000 Pts pesetas
+16#20A8 rupees rupee
+16#20A9 won
+16#20AA afii57636 newsheqel
+16#20AB dong
+16#20AC Euro
+16#2100 accountof
+16#2101 addresssubject
+16#2102 Cbb Cdblstruck
+16#2103 degreecentigrade celsius
+16#2104 centreline CL
+16#2105 afii61248 careof
+16#2106 cadauna
+16#2107 Euler
+16#2108 scruple
+16#2109 fahrenheit degreefarenheit degreefahrenheit farenheit
+16#210A gscriptmath
+16#210B Hscript
+16#210C Hfractur Hfraktur Hblackletter
+16#210D Hdblstruck Hbb
+16#210E planck
+16#210F planckover2pi
+16#2110 Iscript
+16#2111 Ifraktur Ifractur Iblackletter
+16#2112 Lscript
+16#2113 afii61289 lscript liter
+16#2114 lbbar
+16#2115 Ndblstruck Nbb
+16#2116 afii61352 numero
+16#2117 recordright soundcopyright
+16#2118 weierstrass Pscript
+16#2119 Pdblstruck Pbb
+16#211A Qdblstruck Qbb
+16#211B Rscript
+16#211C Rfraktur Rblackletter Rfractur
+16#211D Rdblstruck Rbb
+16#211E prescription Rx
+16#211F response
+16#2120 servicemark
+16#2121 telephone tel
+16#2122 trademark SM540000
+16#2123 versicle
+16#2124 Zbb Zdblstruck
+16#2125 ounce
+16#2126 ohm %FCO-specific: 16#03A9 named Omega, not Omegagreek
+16#2127 Omegainv ohminverted mho
+16#2128 Zfraktur Zblackletter Zfractur
+16#2129 iotaturn
+16#212A kelvin degreekelvin
+16#212B angstrom
+16#212C Bscript
+16#212D Cblackletter Cfraktur Cfractur
+16#212E estimated
+16#212F escript
+16#2130 Escript
+16#2131 Fscript
+16#2132 Fturn
+16#2133 Mscript
+16#2134 oscript 0script
+16#2135 aleph alephmath
+16#2136 bethmath
+16#2137 gimelmath
+16#2138 dalethmath
+16#2153 onethird
+16#2154 twothirds
+16#2155 onefifth
+16#2156 twofifths
+16#2157 threefifths
+16#2158 fourfifths
+16#2159 onesixth
+16#215A fivesixth
+16#215B oneeighth
+16#215C threeeighths
+16#215D fiveeighths
+16#215E seveneighths
+16#2190 arrowleft
+16#2191 arrowup
+16#2192 arrowright
+16#2193 arrowdown
+16#2194 arrowboth
+16#2195 arrowupdn
+16#2196 arrowupleft
+16#2197 arrowupright
+16#2198 arrowdownright
+16#2199 arrowdownleft
+16#21A8 arrowupdnbse
+16#21B4 arrowrightdown
+16#21B5 carriagereturn carriagerreturn
+16#21B6 arrowsemanticlockw
+16#21B7 arrowsemclockw
+16#21B8 home
+16#21B9 tableftright
+16#21BA arrowanticlockw
+16#21BB arrowclockw
+16#21BC arrowlefttophalf
+16#21BD arrowleftbothalf
+16#21BE harpoonupright
+16#21BF harpoonupleft
+16#21C0 arrowrighttophalf
+16#21C1 arrowrightbothalf
+16#21C2 harpoondownright
+16#21C3 harpoondownleft
+16#21C4 arrowparrrightleft
+16#21C5 dblarrowupdown
+16#21C6 arrowparrleftright
+16#21C8 dblarrowup
+16#21CA dblarrowdown
+16#21CB harpoonleftright
+16#21CC harpoonrightleft
+16#21CD arrowdblleftnot
+16#21CE arrowdbllongbothnot
+16#21CF arrowdblrightnot
+16#21D0 arrowdblleft
+16#21D1 arrowdblup
+16#21D2 arrowdblright dblarrowright
+16#21D3 arrowdbldown
+16#21D4 arrowdblboth dblarrowleft arrowdbllongboth
+16#21D5 arrowdbllongbothv
+16#21D6 arrowdblnw
+16#21D7 arrowdblne
+16#21D8 arrowdblse
+16#21D9 arrowdblsw
+16#21DA arrowtripleleft
+16#21DB arrowtripleright
+16#21DC arrowsquiggleleft
+16#21DD arrowsquiggleright
+16#21DE pageup
+16#21DF pagedown
+16#21E0 arrowdashleft
+16#21E1 arrowdashup
+16#21E2 arrowdashright
+16#21E3 arrowdashdown
+16#21E4 arrowtableft
+16#21E5 arrowtabright
+16#21E6 arrowopenleft
+16#21E7 arrowupwhite arrowopenup
+16#21E8 arrowopenright
+16#21E9 arrowopendown
+16#21EA capslock
+16#2200 universal
+16#2201 complement
+16#2202 partialdiff
+16#2203 existential
+16#2204 notexistential
+16#2205 emptyset
+16#2206 increment %FCO-specific: 16#0394 named Delta, not Deltagreek
+16#2207 gradient nabla
+16#2208 element
+16#2209 notelement
+16#220A elementsmall smallelement
+16#220B suchthat owner contains
+16#220C notcontains notowner notsuchthat
+16#220D ownersmall smallcontains
+16#220E eop endofproof
+16#220F product
+16#2210 coproduct
+16#2211 summation
+16#2212 minus
+16#2213 minusplus
+16#2214 dotplus
+16#2215 slashmath fraction %FCO-specific: fraction at 16#2215, not 16#2044
+16#2216 setminus backslashmath
+16#2217 asteriskmath
+16#2218 openbullet1 ringmath
+16#2219 productdot bulletmath
+16#221A radical squareroot
+16#221B cuberoot
+16#221C fourthroot
+16#221D proportional
+16#221E infinity
+16#221F orthogonal rightangle
+16#2220 angle
+16#2221 measuredangle
+16#2222 sphericalangle
+16#2223 divides bar1
+16#2224 notbar notdivides
+16#2225 parallel bardbl2
+16#2226 notparallel notbardbl
+16#2227 logicaland
+16#2228 logicalor
+16#2229 intersection
+16#222A union
+16#222B integral
+16#222C integraldbl doubleintegral
+16#222D tripleintegral integraltrpl
+16#222E contourintegral contintegral
+16#222F surfintegral surfaceintegral
+16#2230 volintegral volumeintegral
+16#2231 clwintegral
+16#2232 clwcontintegral
+16#2233 cclwcontintegral
+16#2234 therefore
+16#2235 because
+16#2236 ratio
+16#2237 proportion
+16#2238 dotminus
+16#2239 excess
+16#223A geomproportion proportiongeom
+16#223B homothetic
+16#223C similar tildemath
+16#223D revsimilar tildereversed
+16#223E Sinvlazy lazysinv
+16#223F sine sinewave
+16#2240 wreathproduct
+16#2241 notsimilar
+16#2242 minustilde
+16#2243 similarequal approxequalalt asymptequal
+16#2244 notasymptequal
+16#2245 congruent approxorequal
+16#2246 approxnotequal
+16#2247 notapproxequal
+16#2248 approxequal almostequal
+16#2249 notalmostequal
+16#224A almostorequal
+16#224B tildetrpl
+16#224C allequal
+16#224D equivasymptotic
+16#224E geomequivalent
+16#224F difference
+16#2250 approachlimit
+16#2251 geomequal
+16#2252 approxequalorimage
+16#2253 imageorapproxequal
+16#2254 colonequal
+16#2255 equalcolon
+16#2256 ringinequal
+16#2257 ringequal
+16#2258 corresponds
+16#2259 estimates
+16#225A equiangular
+16#225B starequal
+16#225C deltaequal
+16#225D definequal
+16#225E measurequal
+16#225F questionequal
+16#2260 notequal
+16#2261 equivalence
+16#2262 notequivalence
+16#2263 strictequivalence
+16#2264 lessequal
+16#2265 greaterequal
+16#2266 lessdblequal
+16#2267 greaterdblequal
+16#2268 lessnotdblequal
+16#2269 greaternotdblequal
+16#226A lessmuch
+16#226B greatermuch
+16#226C between
+16#226D notequivasymptotic
+16#226E notless
+16#226F notgreater
+16#2270 notlessequal1
+16#2271 notgreaterequal1
+16#2272 lessequivlnt
+16#2273 greaterequivlnt
+16#2274 notlessequivlnt
+16#2275 notgreaterequivlnt
+16#2276 lessorgreater
+16#2277 greaterorless
+16#2278 notlessgreater
+16#2279 notgreaterless
+16#227A precedes
+16#227B follows
+16#227C precedesequal1
+16#227D followsequal1
+16#227E precedequivlnt
+16#227F followsequivlnt
+16#2280 notpreceeds
+16#2281 notfollows
+16#2282 propersubset
+16#2283 propersuperset
+16#2284 notsubset notpropersubset
+16#2285 notsuperset notpropersuperset
+16#2286 reflexsubset
+16#2287 reflexsuperset
+16#2288 notreflexsubset
+16#2289 notreflexsuperset
+16#228A subsetnotequal
+16#228B supersetnotequal
+16#228C multiset
+16#228D multiplymultiset
+16#228E unionmulti
+16#228F squareimage
+16#2290 squareoriginal
+16#2291 subsetsqequal
+16#2292 supersetsqequal
+16#2293 intersectionsq
+16#2294 unionsq
+16#2295 circleplus
+16#2296 circleminus
+16#2297 circlemultiply
+16#2298 circledivide
+16#2299 circledot
+16#229A circlering
+16#229B circleasterisk
+16#229C circleequal
+16#229D circleminus1
+16#229E squareplus
+16#229F squareminus
+16#22A0 squaremultiply
+16#22A1 squaredot
+16#22A2 turnstileleft
+16#22A3 turnstileright
+16#22A4 latticetop
+16#22A5 perpendicular
+16#22A6 assertion
+16#22A7 truestate
+16#22A8 satisfy
+16#22A9 force
+16#22AA tacktrpl
+16#22AB forceextr
+16#22AC notturnstileleft
+16#22AD notsatisfy
+16#22AE notforce
+16#22AF notforceextr
+16#22B0 lowerrank
+16#22B1 higherrank
+16#22B2 triangleright
+16#22B3 triangleleft
+16#22B4 triangleftequal
+16#22B5 triangrightequal
+16#22B6 original
+16#22B7 image
+16#22B8 multimap
+16#22B9 hermitconjmatrix
+16#22BA intercal
+16#22BB orunderscore xor
+16#22BC nand
+16#22BD nor
+16#22BE rightanglearc
+16#22BF righttriangle
+16#22C0 narylogicaland
+16#22C1 narylogicalor
+16#22C2 naryintersection
+16#22C3 naryunion
+16#22C4 diamondmath
+16#22C5 dotmath
+16#22C6 star
+16#22C7 divideonmultiply
+16#22C8 bowtie
+16#22C9 multicloseleft
+16#22CA multicloseright
+16#22CB multiopenleft
+16#22CC multiopenright
+16#22CD revasymptequal
+16#22CE curlor
+16#22CF curland
+16#22D0 subsetdbl
+16#22D1 supersetdbl
+16#22D2 uniondbl
+16#22D3 intersectiondbl
+16#22D4 fork
+16#22D5 equalparallel
+16#22D6 lessdot
+16#22D7 greaterdot
+16#22D8 verymuchless
+16#22D9 verymuchgreater
+16#22DA lessequalgreater
+16#22DB greaterequalless
+16#22DC equalless
+16#22DD equalgreater
+16#22DE equalprecedes1
+16#22DF equalfollows1
+16#22E0 preceedsnotequal
+16#22E1 followsnotequal
+16#22E2 notsubsetsqequal
+16#22E3 notsupersetsqequal
+16#22E4 sqimageornotequal
+16#22E5 sqoriginornotequal
+16#22E6 lessnotequivlnt
+16#22E7 greaternotequivlnt
+16#22E8 preceedsnotsimilar
+16#22E9 followsnotequivlnt
+16#22EA nottriangleleft
+16#22EB nottriangleright
+16#22EC nottriangleleftequal
+16#22ED nottrianglerightequal
+16#22EE vertellipsis
+16#22EF midhorizellipsis
+16#22F0 upslopeellipsis
+16#22F1 downslopeellipsis
+16#2302 house SM790000
+16#2303 control
+16#2306 perspcorrespond
+16#2308 ceilingleft
+16#2309 ceilingright
+16#230A floorleft
+16#230B floorright
+16#2310 revlogicalnot
+16#2318 propellor
+16#2320 integraltp SS260000
+16#2321 integralbt SS270000
+16#2322 slurabove
+16#2323 slurbelow
+16#2325 option
+16#2326 deleteright
+16#2327 clear
+16#2329 angleleft
+16#232A angleright
+16#232B deleteleft
+16#2423 blank
+16#2500 SF100000
+16#2502 SF110000
+16#250A 250a
+16#250B 250b
+16#250C SF010000 250c
+16#250D 250d
+16#250E 250e
+16#250F 250f
+16#2510 SF030000
+16#2514 SF020000
+16#2518 SF040000
+16#251A 251a
+16#251B 251b
+16#251C SF080000 251c
+16#251D 251d
+16#251E 251e
+16#251F 251f
+16#2524 SF090000
+16#252A 252a
+16#252B 252b
+16#252C SF060000 252c
+16#252D 252d
+16#252E 252e
+16#252F 252f
+16#2534 SF070000
+16#253A 253a
+16#253B 253b
+16#253C SF050000 253c
+16#253D 253d
+16#253E 253e
+16#253F 253f
+16#254A 254a
+16#254B 254b
+16#254C 254c
+16#254D 254d
+16#254E 254e
+16#254F 254f
+16#2550 SF430000
+16#2551 SF240000
+16#2552 SF510000
+16#2553 SF520000
+16#2554 SF390000
+16#2555 SF220000
+16#2556 SF210000
+16#2557 SF250000
+16#2558 SF500000
+16#2559 SF490000
+16#255A SF380000 255a
+16#255B SF280000 255b
+16#255C SF270000 255c
+16#255D SF260000 255d
+16#255E SF360000 255e
+16#255F SF370000 255f
+16#2560 SF420000
+16#2561 SF190000
+16#2562 SF200000
+16#2563 SF230000
+16#2564 SF470000
+16#2565 SF480000
+16#2566 SF410000
+16#2567 SF450000
+16#2568 SF460000
+16#2569 SF400000
+16#256A SF540000 256a
+16#256B SF530000 256b
+16#256C SF440000 256c
+16#256D 256d
+16#256E 256e
+16#256F 256f
+16#257A 257a
+16#257B 257b
+16#257C 257c
+16#257D 257d
+16#257E 257e
+16#257F 257f
+16#2580 upblock SF600000
+16#2581 dneightblock
+16#2582 dnquarterblock
+16#2583 dnthreeeighthblock
+16#2584 dnblock SF570000
+16#2585 dnfiveeighthblock
+16#2586 dnthreequarterblock
+16#2587 dnseveneighthblock
+16#2588 block SF610000
+16#2589 lfseveneighthblock
+16#258A lfthreequarterblock
+16#258B lffiveeighthblock
+16#258C lfblock SF580000
+16#258D lfthreeeighthblock
+16#258E lfquarterblock
+16#258F lfeighthblock
+16#2590 rtblock SF590000
+16#2591 ltshade SF140000
+16#2592 shade SF150000
+16#2593 dkshade SF160000
+16#2594 upeighthblock
+16#2595 rteighthblock
+16#25A0 filledbox SM470000
+16#25A1 H22073 box
+16#25A2 boxrounded
+16#25A3 boxnested
+16#25A4 boxhorizhatch
+16#25A5 boxverthatch
+16#25A6 boxcrosshatch
+16#25A7 boxleftdiaghatch
+16#25A8 boxrtdiaghatch
+16#25A9 boxcrossdiaghatch
+16#25AA H18543 smallboxfilled
+16#25AB H18551 smallbox
+16#25AC filledrect SM700000
+16#25AD rectangle
+16#25AE filledvertrect
+16#25AF vertrectangle
+16#25B0 filledparallelogram
+16#25B1 parallelogram
+16#25B2 triagup SM600000
+16#25B3 triangle
+16#25B4 smalltrianglesld
+16#25B5 smalltriangle
+16#25B6 trianglerightsld1
+16#25B7 triangleright1
+16#25B8 smalltrianglerightsld
+16#25B9 smalltriangleright
+16#25BA triagrt SM590000
+16#25BB triagrtopen
+16#25BC triagdn SV040000
+16#25BD triangleinv
+16#25BE smalltriangleinvsld
+16#25BF smalltriangleinv
+16#25C0 triangleleftsld1
+16#25C1 triangleleft1
+16#25C2 smalltriangleleftsld
+16#25C3 smalltriangleleft
+16#25C4 triaglf SM630000
+16#25C5 triaglfopen
+16#25C6 diamondrhombsolid
+16#25C7 diamondrhomb
+16#25C8 diamondrhombnested
+16#25C9 fisheye
+16#25CA lozenge SA660000
+16#25CB circle SM750000
+16#25CC circledash
+16#25CD circleverthatch
+16#25CE bullseye bullseye1
+16#25CF H18533 SM580000 bulletaltone circlesolid
+16#25D0 circleleftsld
+16#25D1 circlerightsld
+16#25D2 circlebottomsld
+16#25D3 circletopsld
+16#25D4 circlenesld
+16#25D5 circlenwopen
+16#25D6 semicircleleftsld
+16#25D7 semicirclelertsld
+16#25D8 invbullet SM570001
+16#25D9 invcircle SM750002
+16#25DA invsemicircleup
+16#25DB invsemicircledn
+16#25DC nwquadarc
+16#25DD nequadarc
+16#25DE sequadarc
+16#25DF swquadarc
+16#25E0 toparc
+16#25E1 bottomarc
+16#25E2 trianglesesld
+16#25E3 triangleswsld
+16#25E4 tranglenwsld
+16#25E5 trianglenesld
+16#25E6 openbullet
+16#25E7 squareleftsld
+16#25E8 squarerightsld
+16#25E9 squarenwsld
+16#25EA squaresesld
+16#25EB squarevertbisect
+16#25EC triangledot
+16#25ED triangleleftsld
+16#25EE trianglerightsld
+16#263A smileface SS000000
+16#263B invsmileface SS010000
+16#263C sun SM690000
+16#2640 female SM290000
+16#2642 male SM280000
+16#2643 u2643
+16#2660 spade SS050000
+16#2663 club SS040000
+16#2665 heart SS020000
+16#2666 diamond SS030000
+16#266A musicalnote SM930000
+16#266B musicalnotedbl SM910000
+16#266D flat
+16#266E natural
+16#266F sharp
+16#E802 finalkafwithsheva
+16#E803 finalkafwithqamats
+16#E804 lamedwithholam
+16#E805 lamedwithdageshandholam
+16#E811 lamwithmeemwithjeeminitial
+16#E812 behwithhehinitial
+16#E813 pehwithhehinitial
+16#E814 tehwithhehinitial
+16#E815 noonwithhehinitial
+16#E816 rayaleflam
+16#E818 shaddawithfathatanisolated
+16#E820 fathalow
+16#E821 dammalow
+16#E822 sukunlow
+16#E823 fathatanlow
+16#E824 dammatanlow
+16#E825 shaddalow
+16#E826 kasralow
+16#E827 kasratanlow
+16#E828 shaddawithfathalow shaddawithfathaisolatedlow
+16#E829 shaddawithdammalow shaddawithdammaisolatedlow
+16#E82A shaddawithfathatanisolatedlow shaddawithfathatanlow
+16#E82B shaddawithdammatanisolatedlow shaddawithdammatanlow
+16#E82C shaddawithkasraisolatedlow shaddawithkasralow
+16#E82D shaddawithkasratanisolatedlow shaddawithkasratanlow
+16#E832 fathaonhamza
+16#E833 fathatanonhamza
+16#E834 sukunonhamza
+16#E835 dammaonhamza
+16#E836 dammatanonhamza
+16#F003 circumflex1
+16#F004 tilde1
+16#F005 dieresis1
+16#F006 breve1
+16#F007 ring1
+16#F008 cedilla1
+16#F009 hungarumlaut1
+16#F00A caron1
+16#F00D cedilla2
+16#F6BE dotlessj
+16#F6BF LL
+16#F6C0 ll
+16#F6C3 commaaccent
+16#F6C4 afii10063
+16#F6C5 afii10064
+16#F6C6 afii10192
+16#F6C7 afii10831
+16#F6C8 afii10832
+16#F6C9 Acute
+16#F6CA Caron
+16#F6CB Dieresis
+16#F6CC DieresisAcute
+16#F6CD DieresisGrave
+16#F6CE Grave
+16#F6CF Hungarumlaut
+16#F6D0 Macron
+16#F6D1 cyrBreve
+16#F6D2 cyrFlex
+16#F6D3 dblGrave
+16#F6D4 cyrbreve
+16#F6D5 cyrflex
+16#F6D6 dblgrave
+16#F6D7 dieresisacute
+16#F6D8 dieresisgrave
+16#F6D9 copyrightserif
+16#F6DA registerserif
+16#F6DB trademarkserif
+16#F6DC onefitted
+16#F6DD rupiah
+16#F6DE threequartersemdash
+16#F6DF centinferior
+16#F6E0 centsuperior
+16#F6E1 commainferior
+16#F6E2 commasuperior
+16#F6E3 dollarinferior
+16#F6E4 dollarsuperior
+16#F6E5 hypheninferior
+16#F6E6 hyphensuperior
+16#F6E7 periodinferior
+16#F6E8 periodsuperior
+16#F6E9 asuperior
+16#F6EA bsuperior
+16#F6EB dsuperior
+16#F6EC esuperior
+16#F6ED isuperior
+16#F6EE lsuperior
+16#F6EF msuperior
+16#F6F0 osuperior
+16#F6F1 rsuperior
+16#F6F2 ssuperior
+16#F6F3 tsuperior
+16#F6F4 Brevesmall
+16#F6F5 Caronsmall
+16#F6F6 Circumflexsmall
+16#F6F7 Dotaccentsmall
+16#F6F8 Hungarumlautsmall
+16#F6F9 Lslashsmall
+16#F6FA OEsmall
+16#F6FB Ogoneksmall
+16#F6FC Ringsmall
+16#F6FD Scaronsmall
+16#F6FE Tildesmall
+16#F6FF Zcaronsmall
+16#F700 f700
+16#F701 f701
+16#F702 f702
+16#F703 f703
+16#F704 f704
+16#F705 f705
+16#F706 f706
+16#F707 f707
+16#F708 f708
+16#F709 f709
+16#F70A f70a
+16#F70B f70b
+16#F70C f70c
+16#F70D f70d
+16#F70E f70e
+16#F70F f70f
+16#F710 f710
+16#F711 f711
+16#F712 f712
+16#F713 f713
+16#F714 f714
+16#F715 f715
+16#F716 f716
+16#F717 f717
+16#F718 f718
+16#F719 f719
+16#F71A f71a
+16#F71C f71c
+16#F71D f71d
+16#F721 exclamsmall
+16#F724 dollaroldstyle
+16#F726 ampersandsmall
+16#F730 zerooldstyle
+16#F731 oneoldstyle
+16#F732 twooldstyle
+16#F733 threeoldstyle
+16#F734 fouroldstyle
+16#F735 fiveoldstyle
+16#F736 sixoldstyle
+16#F737 sevenoldstyle
+16#F738 eightoldstyle
+16#F739 nineoldstyle
+16#F73F questionsmall
+16#F760 Gravesmall
+16#F761 Asmall
+16#F762 Bsmall
+16#F763 Csmall
+16#F764 Dsmall
+16#F765 Esmall
+16#F766 Fsmall
+16#F767 Gsmall
+16#F768 Hsmall
+16#F769 Ismall
+16#F76A Jsmall
+16#F76B Ksmall
+16#F76C Lsmall
+16#F76D Msmall
+16#F76E Nsmall
+16#F76F Osmall
+16#F770 Psmall
+16#F771 Qsmall
+16#F772 Rsmall
+16#F773 Ssmall
+16#F774 Tsmall
+16#F775 Usmall
+16#F776 Vsmall
+16#F777 Wsmall
+16#F778 Xsmall
+16#F779 Ysmall
+16#F77A Zsmall
+16#F7A1 exclamdownsmall
+16#F7A2 centoldstyle
+16#F7A8 Dieresissmall
+16#F7AF Macronsmall
+16#F7B4 Acutesmall
+16#F7B8 Cedillasmall
+16#F7BF questiondownsmall
+16#F7E0 Agravesmall
+16#F7E1 Aacutesmall
+16#F7E2 Acircumflexsmall
+16#F7E3 Atildesmall
+16#F7E4 Adieresissmall
+16#F7E5 Aringsmall
+16#F7E6 AEsmall
+16#F7E7 Ccedillasmall
+16#F7E8 Egravesmall
+16#F7E9 Eacutesmall
+16#F7EA Ecircumflexsmall
+16#F7EB Edieresissmall
+16#F7EC Igravesmall
+16#F7ED Iacutesmall
+16#F7EE Icircumflexsmall
+16#F7EF Idieresissmall
+16#F7F0 Ethsmall
+16#F7F1 Ntildesmall
+16#F7F2 Ogravesmall
+16#F7F3 Oacutesmall
+16#F7F4 Ocircumflexsmall
+16#F7F5 Otildesmall
+16#F7F6 Odieresissmall
+16#F7F8 Oslashsmall
+16#F7F9 Ugravesmall
+16#F7FA Uacutesmall
+16#F7FB Ucircumflexsmall
+16#F7FC Udieresissmall
+16#F7FD Yacutesmall
+16#F7FE Thornsmall
+16#F7FF Ydieresissmall
+16#F810 Dcaron1
+16#F811 dcaron1
+16#F812 Lcaron1
+16#F813 lcaron1
+16#F814 Tcaron1
+16#F815 tcaron1 tcaronaltone
+16#F816 Scedilla1
+16#F817 scedilla1
+16#F818 Tcedilla1 Kcedilla1
+16#F819 kcedilla1 tcedilla1
+16#F81A Lcedilla1 gcedilla1
+16#F81B lcedilla1 peso1 pesoph
+16#F81C Ncedilla1
+16#F81D ncedilla1
+16#F81E Rcedilla1
+16#F81F rcedilla1
+16#F820 dotcircle1
+16#F821 ltshade1
+16#F822 shade1
+16#F823 dkshade1
+16#F830 logonek
+16#F831 Rcircumflex
+16#F832 rcircumflex
+16#F833 Ucedilla
+16#F834 ucedilla
+16#F8E5 radicalex
+16#F8E6 arrowvertex
+16#F8E7 arrowhorizex
+16#F8E8 registersans
+16#F8E9 copyrightsans
+16#F8EA trademarksans
+16#F8EB parenlefttp
+16#F8EC parenleftex
+16#F8ED parenleftbt
+16#F8EE bracketlefttp
+16#F8EF bracketleftex
+16#F8F0 bracketleftbt
+16#F8F1 bracelefttp
+16#F8F2 braceleftmid
+16#F8F3 braceleftbt
+16#F8F4 braceex
+16#F8F5 integralex
+16#F8F6 parenrighttp help
+16#F8F7 parenrightex
+16#F8F8 parenrightbt
+16#F8F9 bracketrighttp power
+16#F8FA bracketrightex
+16#F8FB bracketrightbt contextmenu
+16#F8FC bracerighttp carriagereturnleft
+16#F8FD bracerightmid enter
+16#F8FE bracerightbt appleopen
+16#F8FF apple
+16#FB00 ff
+16#FB01 fi
+16#FB02 fl
+16#FB03 ffi
+16#FB04 ffl
+16#FB05 slongt longst
+16#FB06 st
+16#FB1E varika
+16#FB1F afii57705
+16#FB20 alternativeayin
+16#FB2A afii57694 shinwithshindot
+16#FB2B afii57695 shinwithsindot
+16#FB2C shinwithdageshandshindot
+16#FB2D shinwithdageshandsindot
+16#FB2E alefwithpatah
+16#FB2F alefwithqamats
+16#FB30 alefwithmapiq
+16#FB31 betwithdagesh
+16#FB32 gimelwithdagesh
+16#FB33 daletwithdagesh
+16#FB34 hewithmapiq
+16#FB35 afii57723 vavwithdagesh
+16#FB36 zayinwithdagesh
+16#FB38 tetwithdagesh
+16#FB39 yodwithdagesh
+16#FB3A finalkafwithdagesh
+16#FB3B kafwithdagesh
+16#FB3C lamedwithdagesh
+16#FB3E memwithdagesh
+16#FB40 nunwithdagesh
+16#FB41 samekhwithdagesh
+16#FB43 finalpewithdagesh
+16#FB44 pewithdagesh
+16#FB46 tsadiwithdagesh
+16#FB47 qofwithdagesh
+16#FB48 reshwithdagesh
+16#FB49 shinwithdagesh
+16#FB4A tavwithdagesh
+16#FB4B afii57700 vavwithholam
+16#FB4C betwithrafe
+16#FB4D kafwithrafe
+16#FB4E pewithrafe
+16#FB4F aleflamed
+16#FB50 alefwaslaisolated
+16#FB51 alefwaslafinal
+16#FB56 pehisolated
+16#FB57 pehfinal
+16#FB58 pehinitial
+16#FB59 pehmedial
+16#FB6A vehisolated
+16#FB6B vehfinal
+16#FB6C vehinitial
+16#FB6D vehmedial
+16#FB7A tchehisolated
+16#FB7B tchehfinal
+16#FB7C tchehinitial
+16#FB7D tchehmedial
+16#FB8A jehisolated
+16#FB8B jehfinal
+16#FB8E kehehisolated
+16#FB8F kehehfinal
+16#FB90 kehehinitial
+16#FB91 kehehmedial
+16#FB92 gafisolated
+16#FB93 gaffinal
+16#FB94 gafinitial
+16#FB95 gafmedial
+16#FBFC farsiyehisolated
+16#FBFD farsiyehfinal
+16#FC08 behwithmeemisolated
+16#FC09 behwithalefmaksuraisolated
+16#FC0A behwithyehisolated
+16#FC0E tehwithmeemisolated
+16#FC10 tehwithyehisolated
+16#FC12 thehwithmeemisolated
+16#FC31 fehwithalefmaksuraisolated
+16#FC32 fehwithyehisolated
+16#FC3F lamwithjeemisolated
+16#FC40 lamwithhahisolated
+16#FC41 lamwithkhahisolated
+16#FC42 lamwithmeemisolated
+16#FC43 lamwithalefmaksuraisolated
+16#FC44 lamwithyehisolated
+16#FC4E noonwithmeemisolated
+16#FC4F noonwithalefmaksuraisolated
+16#FC50 noonwithyehisolated
+16#FC58 yehwithmeemisolated
+16#FC59 yehwithalefmaksuraisolated
+16#FC5E shaddawithdammatanisolated
+16#FC5F shaddawithkasratanisolated
+16#FC60 shaddawithfathaisolated
+16#FC61 shaddawithdammaisolated
+16#FC62 shaddawithkasraisolated
+16#FC6A behwithrehfinal
+16#FC6D behwithnoonfinal
+16#FC6E behwithalefmaksurafinal
+16#FC6F behwithyehfinal
+16#FC70 noonwithzainfinal
+16#FC73 tehwithnoonfinal
+16#FC74 tehwithalefmaksurafinal
+16#FC75 tehwithyehfinal
+16#FC8E noonwithalefmaksurafinal
+16#FC8F noonwithyehfinal
+16#FC91 yehwithrehfinal
+16#FC94 yehwithnoonfinal
+16#FC95 yehwithalefmaksurafinal
+16#FC9C behwithjeeminitial
+16#FC9D behwithhahinitial
+16#FC9E behwithkhahinitial
+16#FC9F behwithmeeminitial
+16#FCA1 tehwithjeeminitial
+16#FCA2 tehwithhahinitial
+16#FCA3 tehwithkhahinitial
+16#FCA4 tehwithmeeminitial
+16#FCA6 thehwithmeeminitial
+16#FCA8 jeemwithmeeminitial
+16#FCAA hahwithmeeminitial
+16#FCAC khahwithmeeminitial
+16#FCB0 seenwithmeeminitial
+16#FCC9 lamwithjeeminitial
+16#FCCA lamwithhahinitial
+16#FCCB lamwithkhahinitial
+16#FCCC lamwithmeeminitial
+16#FCCD lamwithhehinitial
+16#FCCE meemwithjeeminitial
+16#FCCF meemwithhahinitial
+16#FCD0 meemwithkhahinitial
+16#FCD1 meemwithmeeminitial
+16#FCD2 noonwithjeeminitial
+16#FCD3 noonwithhahinitial
+16#FCD4 noonwithkhahinitial
+16#FCD5 noonwithmeeminitial
+16#FCD8 hehwithmeeminitial
+16#FCDA yehwithjeeminitial
+16#FCDB yehwithhahinitial
+16#FCDC yehwithkhahinitial
+16#FCDD yehwithmeeminitial
+16#FCF2 shaddawithfathamedial
+16#FCF3 shaddawithdammamedial
+16#FCF4 shaddawithkasramedial
+16#FD30 sheenwithmeeminitial
+16#FD3C alefwithfathatanfinal
+16#FD3D alefwithfathatanisolated
+16#FD3E ornateleftparenthesis
+16#FD3F ornaterightparenthesis
+16#FD88 lamwithmeemwithhahinitial
+16#FDF2 allahisolated
+16#FE70 fathatanisolated
+16#FE71 fathatanontatweel tatweelwithfathatanabove
+16#FE72 dammatanisolated
+16#FE74 kasratanisolated
+16#FE76 fathaisolated
+16#FE77 fathahontatweel fathamedial
+16#FE78 dammaisolated
+16#FE79 dammahontatweel dammamedial
+16#FE7A kasraisolated
+16#FE7B kasrahontatweel kasramedial
+16#FE7C shaddaisolated
+16#FE7D shaddahontatweel shaddamedial
+16#FE7E sukunisolated
+16#FE7F sukunontatweel sukunmedial
+16#FE80 hamzaisolated
+16#FE81 alefwithmaddaaboveisolated
+16#FE82 alefwithmaddaabovefinal
+16#FE83 alefwithhamzaaboveisolated
+16#FE84 alefwithhamzaabovefinal
+16#FE85 wawwithhamzaaboveisolated
+16#FE86 wawwithhamzaabovefinal
+16#FE87 alefwithhamzabelowisolated
+16#FE88 alefwithhamzabelowfinal
+16#FE89 yehwithhamzaaboveisolated
+16#FE8A yehwithhamzaabovefinal
+16#FE8B yehwithhamzaaboveinitial
+16#FE8C yehwithhamzaabovemedial
+16#FE8D alefisolated
+16#FE8E aleffinal
+16#FE8F behisolated
+16#FE90 behfinal
+16#FE91 behinitial
+16#FE92 behmedial
+16#FE93 tehmarbutaisolated
+16#FE94 tehmarbutafinal
+16#FE95 tehisolated
+16#FE96 tehfinal
+16#FE97 tehinitial
+16#FE98 tehmedial
+16#FE99 thehisolated
+16#FE9A thehfinal
+16#FE9B thehinitial
+16#FE9C thehmedial
+16#FE9D jeemisolated
+16#FE9E jeemfinal
+16#FE9F jeeminitial
+16#FEA0 jeemmedial
+16#FEA1 hahisolated
+16#FEA2 hahfinal
+16#FEA3 hahinitial
+16#FEA4 hahmedial
+16#FEA5 khahisolated
+16#FEA6 khahfinal
+16#FEA7 khahinitial
+16#FEA8 khahmedial
+16#FEA9 dalisolated
+16#FEAA dalfinal
+16#FEAB thalisolated
+16#FEAC thalfinal
+16#FEAD rehisolated
+16#FEAE rehfinal
+16#FEAF zainisolated
+16#FEB0 zainfinal
+16#FEB1 seenisolated
+16#FEB2 seenfinal
+16#FEB3 seeninitial
+16#FEB4 seenmedial
+16#FEB5 sheenisolated
+16#FEB6 sheenfinal
+16#FEB7 sheeninitial
+16#FEB8 sheenmedial
+16#FEB9 sadisolated
+16#FEBA sadfinal
+16#FEBB sadinitial
+16#FEBC sadmedial
+16#FEBD dadisolated
+16#FEBE dadfinal
+16#FEBF dadinitial
+16#FEC0 dadmedial
+16#FEC1 tahisolated
+16#FEC2 tahfinal
+16#FEC3 tahinitial
+16#FEC4 tahmedial
+16#FEC5 zahisolated
+16#FEC6 zahfinal
+16#FEC7 zahinitial
+16#FEC8 zahmedial
+16#FEC9 ainisolated
+16#FECA ainfinal
+16#FECB aininitial
+16#FECC ainmedial
+16#FECD ghainisolated
+16#FECE ghainfinal
+16#FECF ghaininitial
+16#FED0 ghainmedial
+16#FED1 fehisolated
+16#FED2 fehfinal
+16#FED3 fehinitial
+16#FED4 fehmedial
+16#FED5 qafisolated
+16#FED6 qaffinal
+16#FED7 qafinitial
+16#FED8 qafmedial
+16#FED9 kafisolated
+16#FEDA arabickaffinal
+16#FEDB kafinitial
+16#FEDC kafmedial
+16#FEDD lamisolated
+16#FEDE lamfinal
+16#FEDF laminitial
+16#FEE0 lammedial
+16#FEE1 meemisolated
+16#FEE2 meemfinal
+16#FEE3 meeminitial
+16#FEE4 meemmedial
+16#FEE5 noonisolated
+16#FEE6 noonfinal
+16#FEE7 nooninitial
+16#FEE8 noonmedial
+16#FEE9 hehisolated
+16#FEEA hehfinal
+16#FEEB hehinitial
+16#FEEC hehmedial
+16#FEED wawisolated
+16#FEEE wawfinal
+16#FEEF alefmaksuraisolated
+16#FEF0 alefmaksurafinal
+16#FEF1 yehisolated
+16#FEF2 yehfinal
+16#FEF3 yehinitial
+16#FEF4 yehmedial
+16#FEF5 lamwithalefmaddaaboveisolatedd
+16#FEF6 lamwithalefmaddaabovefinal
+16#FEF7 lamwithalefhamzaaboveisolatedd
+16#FEF8 lamwithalefhamzaabovefinal
+16#FEF9 lamwithalefhamzabelowisolated
+16#FEFA lamwithalefhamzabelowfinal
+16#FEFB lamwithalefisolated
+16#FEFC lamwithaleffinal
+16#FEFF zerowidthnobreakspace bom
+
+%EOF
Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Wingdings
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Wingdings (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/FCO_Wingdings 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,252 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% FCO_Wingdings Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+/FCO_Wingdings % resource name
+230 % tokens
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+
+% Generated for FCO from Wingdings encoding with adding F000
+% since MTFONTS/PS3/MT3/ps3___xh.fco wants so.
+
+16#0020 space % Note : UFST uses 0x20 when others are 0xF0**.
+16#F021 pencil
+16#F022 scissors
+16#F023 scissorscutting
+16#F024 readingglasses
+16#F025 bell
+16#F026 book
+16#F027 candle
+16#F028 telephonesolid
+16#F029 telhandsetcirc
+16#F02A envelopeback
+16#F02B envelopefront
+16#F02C mailboxflagdwn
+16#F02D mailboxflagup
+16#F02E mailbxopnflgup
+16#F02F mailbxopnflgdwn
+16#F030 folder
+16#F031 folderopen
+16#F032 filetalltext1
+16#F033 filetalltext
+16#F034 filetalltext3
+16#F035 filecabinet
+16#F036 hourglass
+16#F037 keyboard
+16#F038 mouse2button
+16#F039 ballpoint
+16#F03A pc
+16#F03B harddisk
+16#F03C floppy3
+16#F03D floppy5
+16#F03E tapereel
+16#F03F handwrite
+16#F040 handwriteleft
+16#F041 handv
+16#F042 handok
+16#F043 thumbup
+16#F044 thumbdown
+16#F045 handptleft
+16#F046 handptright
+16#F047 handptup
+16#F048 handptdwn
+16#F049 handhalt
+16#F04A smileface
+16#F04B neutralface
+16#F04C frownface
+16#F04D bomb
+16#F04E skullcrossbones
+16#F04F flag
+16#F050 pennant
+16#F051 airplane
+16#F052 sunshine
+16#F053 droplet
+16#F054 snowflake
+16#F055 crossoutline
+16#F056 crossshadow
+16#F057 crossceltic
+16#F058 crossmaltese
+16#F059 starofdavid
+16#F05A crescentstar
+16#F05B yinyang
+16#F05C om
+16#F05D wheel
+16#F05E aries
+16#F05F taurus
+16#F060 gemini
+16#F061 cancer
+16#F062 leo
+16#F063 virgo
+16#F064 libra
+16#F065 scorpio
+16#F066 saggitarius
+16#F067 capricorn
+16#F068 aquarius
+16#F069 pisces
+16#F06A ampersanditlc
+16#F06B ampersandit
+16#F06C circle6
+16#F06D circleshadowdwn
+16#F06E square6
+16#F06F box3
+16#F070 box4
+16#F071 boxshadowdwn
+16#F072 boxshadowup
+16#F073 lozenge4
+16#F074 lozenge6
+16#F075 rhombus6
+16#F076 xrhombus
+16#F077 rhombus4
+16#F078 clear
+16#F079 escape
+16#F07A command
+16#F07B rosette
+16#F07C rosettesolid
+16#F07D quotedbllftbld
+16#F07E quotedblrtbld
+16#F080 zerosans
+16#F081 onesans
+16#F082 twosans
+16#F083 threesans
+16#F084 foursans
+16#F085 fivesans
+16#F086 sixsans
+16#F087 sevensans
+16#F088 eightsans
+16#F089 ninesans
+16#F08A tensans
+16#F08B zerosansinv
+16#F08C onesansinv
+16#F08D twosansinv
+16#F08E threesansinv
+16#F08F foursansinv
+16#F090 fivesansinv
+16#F091 sixsansinv
+16#F092 sevensansinv
+16#F093 eightsansinv
+16#F094 ninesansinv
+16#F095 tensansinv
+16#F096 budleafne
+16#F097 budleafnw
+16#F098 budleafsw
+16#F099 budleafse
+16#F09A vineleafboldne
+16#F09B vineleafboldnw
+16#F09C vineleafboldsw
+16#F09D vineleafboldse
+16#F09E circle2
+16#F09F circle4
+16#F0A0 square2
+16#F0A1 ring2
+16#F0A2 ring4
+16#F0A3 ring6
+16#F0A4 ringbutton2
+16#F0A5 target
+16#F0A6 circleshadowup
+16#F0A7 square4
+16#F0A8 box2
+16#F0A9 tristar2
+16#F0AA crosstar2
+16#F0AB pentastar2
+16#F0AC hexstar2
+16#F0AD octastar2
+16#F0AE dodecastar3
+16#F0AF octastar4
+16#F0B0 registersquare
+16#F0B1 registercircle
+16#F0B2 cuspopen
+16#F0B3 cuspopen1
+16#F0B4 query
+16#F0B5 circlestar
+16#F0B6 starshadow
+16#F0B7 oneoclock
+16#F0B8 twooclock
+16#F0B9 threeoclock
+16#F0BA fouroclock
+16#F0BB fiveoclock
+16#F0BC sixoclock
+16#F0BD sevenoclock
+16#F0BE eightoclock
+16#F0BF nineoclock
+16#F0C0 tenoclock
+16#F0C1 elevenoclock
+16#F0C2 twelveoclock
+16#F0C3 arrowdwnleft1
+16#F0C4 arrowdwnrt1
+16#F0C5 arrowupleft1
+16#F0C6 arrowuprt1
+16#F0C7 arrowleftup1
+16#F0C8 arrowrtup1
+16#F0C9 arrowleftdwn1
+16#F0CA arrowrtdwn1
+16#F0CB quiltsquare2
+16#F0CC quiltsquare2inv
+16#F0CD leafccwsw
+16#F0CE leafccwnw
+16#F0CF leafccwse
+16#F0D0 leafccwne
+16#F0D1 leafnw
+16#F0D2 leafsw
+16#F0D3 leafne
+16#F0D4 leafse
+16#F0D5 deleteleft
+16#F0D6 deleteright
+16#F0D7 head2left
+16#F0D8 head2right
+16#F0D9 head2up
+16#F0DA head2down
+16#F0DB circleleft
+16#F0DC circleright
+16#F0DD circleup
+16#F0DE circledown
+16#F0DF barb2left
+16#F0E0 barb2right
+16#F0E1 barb2up
+16#F0E2 barb2down
+16#F0E3 barb2nw
+16#F0E4 barb2ne
+16#F0E5 barb2sw
+16#F0E6 barb2se
+16#F0E7 barb4left
+16#F0E8 barb4right
+16#F0E9 barb4up
+16#F0EA barb4down
+16#F0EB barb4nw
+16#F0EC barb4ne
+16#F0ED barb4sw
+16#F0EE barb4se
+16#F0EF bleft
+16#F0F0 bright
+16#F0F1 bup
+16#F0F2 bdown
+16#F0F3 bleftright
+16#F0F4 bupdown
+16#F0F5 bnw
+16#F0F6 bne
+16#F0F7 bsw
+16#F0F8 bse
+16#F0F9 bdash1
+16#F0FA bdash2
+16#F0FB xmarkbld
+16#F0FC checkbld
+16#F0FD boxxmarkbld
+16#F0FE boxcheckbld
+16#F0FF windowslogo
+
+
+%EOF
Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/Latin1
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/Latin1 (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/Latin1 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,464 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Decoding for mapping PS names to codes for renderers which cannot
+% retrive characters by names.
+
+/Latin1
+<<
+/idot 105
+/Inodot 73
+/SM070000 92
+/LC420000 199
+/LG010000 103
+/LO120000 211
+/LR010000 114
+/LT640000 222
+/ND020000 50
+/SM140000 125
+/LE110000 233
+/SP030000 161
+/LO150000 244
+/SP130000 58
+/SP170000 171
+/LY170000 255
+/LE020000 69
+/ND031000 179
+/LP020000 80
+/SP180000 187
+/SM060000 91
+/LA520000 198
+/LF010000 102
+/LO140000 210
+/LQ010000 113
+/LY120000 221
+/ND010000 49
+/SM130000 124
+/LE130000 232
+/SP300000 160
+/LO110000 243
+/ND090000 57
+/SM210000 170
+/LT630000 254
+/LD020000 68
+/ND021000 178
+/LO020000 79
+/SM200000 186
+/LZ020000 90
+/LA280000 197
+/LE010000 101
+/LN200000 209
+/LP010000 112
+/LU180000 220
+/ND100000 48
+/SM110000 123
+/LC410000 231
+/c143 143
+/LO130000 242
+/ND080000 56
+/SM520000 169
+/LY110000 253
+/LC020000 67
+/SA020000 177
+/LN020000 78
+/ND011000 185
+/LY020000 89
+/LA180000 196
+/LD010000 100
+/LI180000 207
+/LO010000 111
+/LU160000 219
+/LZ010000 122
+/LA510000 230
+/c142 142
+/LN190000 241
+/ND070000 55
+/diaeresis 168
+/LU170000 252
+/LB020000 66
+/SM190000 176
+/LM020000 77
+/SD410000 184
+/LX020000 88
+/LA200000 195
+/LC010000 99
+/LI160000 206
+/LN010000 110
+/LU120000 218
+/LY010000 121
+/LA270000 229
+/c141 141
+/LD630000 240
+/ND060000 54
+/SD170000 168
+/LU150000 251
+/LA020000 65
+/overstore 175
+/LL020000 76
+/periodcentered.0 183
+/LW020000 87
+/LA160000 194
+/LB010000 98
+/LI120000 205
+/LM010000 109
+/LU140000 217
+/LX010000 120
+/LA170000 228
+/c129 129
+/LI170000 239
+/ND050000 53
+/SM240000 167
+/LU110000 250
+/SM050000 64
+/SM150000 175
+/LK020000 75
+/middot 183
+/LV020000 86
+/LA120000 193
+/LA010000 97
+/LI140000 204
+/LL010000 108
+/LW010000 119
+/LA190000 227
+/c128 128
+/LI150000 238
+/ND040000 52
+/SM650000 166
+/LU130000 249
+/SP150000 63
+/SM530000 174
+/LJ020000 74
+/SD630000 183
+/LU020000 85
+/LA140000 192
+/SD130000 96
+/LE180000 203
+/LK010000 107
+/SA070000 215
+/LV010000 118
+/LA150000 226
+/zerodot 48
+/LI110000 237
+/ND030000 51
+/SC050000 165
+/SA050000 62
+/softhyphen 173
+/LI020000 73
+/SM250000 182
+/LT020000 84
+/SP160000 191
+/SP090000 95
+/LE160000 202
+/LJ010000 106
+/LO180000 214
+/LU010000 117
+/LA110000 225
+/zeroslash 48
+/LI130000 236
+/SC010000 164
+/SA060000 247
+/SA040000 61
+/sfthyphen 173
+/LH020000 72
+/micro 181
+/LS020000 83
+/NF050000 190
+/SD150000 94
+/LE120000 201
+/LI010000 105
+/LO200000 213
+/LT010000 116
+/LA130000 224
+/DEL 127
+/LE170000 235
+/SC020000 163
+/LO170000 246
+/SA030000 60
+/SP320000 173
+/LG020000 71
+/SM170000 181
+/LR020000 82
+/NF010000 189
+/SM080000 93
+/LE140000 200
+/LH010000 104
+/LO160000 212
+/LS010000 115
+/LS610000 223
+/SD190000 126
+/LE150000 234
+/SC040000 162
+/LO190000 245
+/SP140000 59
+/SM660000 172
+/c144 247
+/LF020000 70
+/SD110000 180
+/LQ020000 81
+/NF040000 188
+/hyphen-minus 45
+/IUS 31
+/SC030000 36
+/SP100000 45
+/SM010000 35
+/SP080000 44
+/SP040000 34
+/SA010000 43
+/SP020000 33
+/SM040000 42
+/US 31
+/SP010000 32
+/SP070000 41
+/SP060000 40
+/SP050000 39
+/SM030000 38
+/SP120000 47
+/SM020000 37
+/SP110000 46
+/escudo 36
+/hyphenminus 45
+/milreis 36
+/nbspace 160
+/.null 0
+/IRS 30
+/RS 30
+/copyrightserif 169
+/copyrightsans 169
+/BS 8
+/GS 29
+/HT 9
+/CR 13
+/IGS 29
+/ESC 27
+/IFS 28
+/EOF 26
+/SUB 26
+/FS 28
+/SO 14
+/DLE 16
+/DC1 17
+/CAN 24
+/DC4 20
+/nonmarkingreturn 13
+/ETB 23
+/FF 12
+/XOF 19
+/VT 11
+/SYN 22
+/LF 10
+/NAK 21
+/DC3 19
+/DC2 18
+/BEL 7
+/XON 17
+/EM 25
+/DC0 16
+/ACK 6
+/SI 15
+/ENQ 5
+/germandbls 223
+/onesuperior 185
+/Egrave 200
+/Oacute 211
+/agrave 224
+/igrave 236
+/divide 247
+/Ccedilla 199
+/Ograve 210
+/Thorn 222
+/edieresis 235
+/odieresis 246
+/oslash 248
+/threesuperior 179
+/Aring 197
+/Ntilde 209
+/Yacute 221
+/ecircumflex 234
+/otilde 245
+/twosuperior 178
+/Adieresis 196
+/Eth 208
+/Udieresis 220
+/eacute 233
+/ocircumflex 244
+/plusminus 177
+/Atilde 195
+/Idieresis 207
+/Ucircumflex 219
+/egrave 232
+/oacute 243
+/ydieresis 255
+/ae 230
+/degree 176
+/Acircumflex 194
+/Icircumflex 206
+/Uacute 218
+/ccedilla 231
+/ograve 242
+/thorn 254
+/ordmasculine 186
+/registered 174
+/Aacute 193
+/Iacute 205
+/Ugrave 217
+/aring 229
+/ntilde 241
+/yacute 253
+/logicalnot 172
+/Agrave 192
+/Igrave 204
+/multiply 215
+/adieresis 228
+/eth 240
+/udieresis 252
+/Oslash 216
+/brokenbar 166
+/threequarters 190
+/Edieresis 203
+/Odieresis 214
+/atilde 227
+/idieresis 239
+/ucircumflex 251
+/onehalf 189
+/Ecircumflex 202
+/Otilde 213
+/acircumflex 226
+/icircumflex 238
+/uacute 250
+/ordfeminine 170
+/onequarter 188
+/Eacute 201
+/Ocircumflex 212
+/aacute 225
+/iacute 237
+/ugrave 249
+/AE 198
+/two 50
+/equal 61
+/bar 124
+/quotesingle 39
+/paragraph 182
+/ampersand 38
+/one 49
+/less 60
+/braceleft 123
+/currency 164
+/acute 180
+/EOT 4
+/percent 37
+/zero 48
+/semicolon 59
+/section 167
+/grave 96
+/dollar 36
+/slash 47
+/colon 58
+/underscore 95
+/questiondown 191
+/numbersign 35
+/ETX 3
+/period 46
+/nine 57
+/asciicircum 94
+/yen 165
+/cedilla 184
+/quotedbl 34
+/hyphen 45
+/eight 56
+/bracketright 93
+/exclam 33
+/comma 44
+/seven 55
+/backslash 92
+/sterling 163
+/guillemotright 187
+/dieresis 168
+/space 32
+/plus 43
+/six 54
+/bracketleft 91
+/cent 162
+/asterisk 42
+/five 53
+/at 64
+/exclamdown 161
+/parenright 41
+/four 52
+/question 63
+/asciitilde 126
+/guillemotleft 171
+/macron 175
+/parenleft 40
+/three 51
+/greater 62
+/braceright 125
+/NUL 0
+/STX 2
+/SOH 1
+/W 87
+/b 98
+/m 109
+/x 120
+/K 75
+/V 86
+/a 97
+/l 108
+/w 119
+/J 74
+/U 85
+/k 107
+/v 118
+/I 73
+/T 84
+/j 106
+/u 117
+/H 72
+/S 83
+/i 105
+/t 116
+/G 71
+/R 82
+/h 104
+/s 115
+/F 70
+/Q 81
+/g 103
+/r 114
+/E 69
+/P 80
+/f 102
+/copyright 169
+/q 113
+/D 68
+/O 79
+/Z 90
+/e 101
+/p 112
+/C 67
+/N 78
+/Y 89
+/d 100
+/o 111
+/z 122
+/B 66
+/M 77
+/X 88
+/c 99
+/n 110
+/y 121
+/A 65
+/L 76
+>> /Decoding defineresource pop
+
Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/StandardEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/StandardEncoding (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/StandardEncoding 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,172 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Decoding for StandardEncoding
+% Maps StandardEncoding character codes to PS character names.
+
+/StandardEncoding
+<<
+/.notdef 0
+/space 32
+/exclam 33
+/quotedbl 34
+/numbersign 35
+/dollar 36
+/percent 37
+/ampersand 38
+/quoteright 39
+/parenleft 40
+/parenright 41
+/asterisk 42
+/plus 43
+/comma 44
+/hyphen 45
+/period 46
+/slash 47
+/zero 48
+/one 49
+/two 50
+/three 51
+/four 52
+/five 53
+/six 54
+/seven 55
+/eight 56
+/nine 57
+/colon 58
+/semicolon 59
+/less 60
+/equal 61
+/greater 62
+/question 63
+/at 64
+/A 65
+/B 66
+/C 67
+/D 68
+/E 69
+/F 70
+/G 71
+/H 72
+/I 73
+/J 74
+/K 75
+/L 76
+/M 77
+/N 78
+/O 79
+/P 80
+/Q 81
+/R 82
+/S 83
+/T 84
+/U 85
+/V 86
+/W 87
+/X 88
+/Y 89
+/Z 90
+/bracketleft 91
+/backslash 92
+/bracketright 93
+/asciicircum 94
+/underscore 95
+/quoteleft 96
+/a 97
+/b 98
+/c 99
+/d 100
+/e 101
+/f 102
+/g 103
+/h 104
+/i 105
+/j 106
+/k 107
+/l 108
+/m 109
+/n 110
+/o 111
+/p 112
+/q 113
+/r 114
+/s 115
+/t 116
+/u 117
+/v 118
+/w 119
+/x 120
+/y 121
+/z 122
+/braceleft 123
+/bar 124
+/braceright 125
+/asciitilde 126
+/exclamdown 161
+/cent 162
+/sterling 163
+/fraction 164
+/yen 165
+/florin 166
+/section 167
+/currency 168
+/quotesingle 169
+/quotedblleft 170
+/guillemotleft 171
+/guilsinglleft 172
+/guilsinglright 173
+/fi 174
+/fl 175
+/endash 177
+/dagger 178
+/daggerdbl 179
+/periodcentered 180
+/paragraph 182
+/bullet 183
+/quotesinglbase 184
+/quotedblbase 185
+/quotedblright 186
+/guillemotright 187
+/ellipsis 188
+/perthousand 189
+/questiondown 191
+/grave 193
+/acute 194
+/circumflex 195
+/tilde 196
+/macron 197
+/breve 198
+/dotaccent 199
+/dieresis 200
+/ring 202
+/cedilla 203
+/hungarumlaut 205
+/ogonek 206
+/caron 207
+/emdash 208
+/AE 225
+/ordfeminine 227
+/Lslash 232
+/Oslash 233
+/OE 234
+/ordmasculine 235
+/ae 241
+/dotlessi 245
+/lslash 248
+/oslash 249
+/oe 250
+/germandbls 251
+>>
+/Decoding defineresource pop
Added: trunk/Master/tlpkg/tlgs/Resource/Decoding/Unicode
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Decoding/Unicode (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Decoding/Unicode 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,4648 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+%
+% Unicode Decoding
+% Maps PS and TT names to Unicode UTF-16.
+
+% The file is in tabular format, with columns separated by exactly 2 spaces.
+% The 1st column is the Unicode value assigned to all names in that row.
+% The other columns contain glyph names based on the source these names
+% came from; if a column contains more than 1 name, these are separated by
+% exactly one space. So, WHITESPACE IS SIGNIFICANT (for documenting/editing purposes).
+%
+% The sources of glyph names in the current version of this file are, in column order:
+%
+% [AGLFN] Adobe Glyph List For New Fonts v1.7 dated November 6, 2008
+% http://www.adobe.com/devnet-archive/opentype/archives/aglfn.txt
+% [AGLv2] Adobe Glyph List v2.0 dated September 20, 2002
+% http://www.adobe.com/devnet-archive/opentype/archives/glyphlist.txt
+% - this list is a strict superset of [AGLFN], and only names that are not
+% already in [AGLFN] are present in this column.
+% - mappings to sequences of UVs (decomposed ligatures) are
+% commented out with a "%L#" at the beginning of the line.
+% [ZDGL2] ITC Zapf Dingbats Glyph List v2.0 dated September 20, 2002
+% http://www.adobe.com/devnet-archive/opentype/archives/zapfdingbats.txt
+% [R9887] All names that were present in SVN revision 9887 of this file and
+% are not included in any of the lists above.
+
+/Unicode % resource name
+6514 % # of names
+/ParseDecoding /ProcSet findresource /Parse get exec
+
+16#0000 .null NUL
+16#0001 controlSTX SOH
+16#0002 controlSOT STX
+16#0003 controlETX ETX
+16#0004 controlEOT EOT
+16#0005 controlENQ ENQ
+16#0006 controlACK ACK
+16#0007 controlBEL BEL
+16#0008 controlBS BS
+16#0009 controlHT HT
+16#000A controlLF LF
+16#000B controlVT VT
+16#000C controlFF FF
+16#000D controlCR CR nonmarkingreturn
+16#000E controlSO SO
+16#000F controlSI SI
+16#0010 controlDLE DLE DC0
+16#0011 controlDC1 XON DC1
+16#0012 controlDC2 DC2
+16#0013 controlDC3 XOF DC3
+16#0014 controlDC4 DC4
+16#0015 controlNAK NAK
+16#0016 controlSYN SYN
+16#0017 controlETB ETB
+16#0018 controlCAN CAN
+16#0019 controlEM EM
+16#001A controlSUB EOF SUB
+16#001B controlESC ESC
+16#001C controlFS IFS FS
+16#001D controlGS IGS GS
+16#001E controlRS IRS RS
+16#001F controlUS IUS US
+16#0020 space spacehackarabic SP010000
+16#0021 exclam SP020000
+16#0022 quotedbl SP040000
+16#0023 numbersign SM010000
+16#0024 dollar SC030000 milreis escudo
+16#0025 percent SM020000
+16#0026 ampersand SM030000
+16#0027 quotesingle SP050000
+16#0028 parenleft SP060000
+16#0029 parenright SP070000
+16#002A asterisk SM040000
+16#002B plus SA010000
+16#002C comma SP080000
+16#002D hyphen SP100000 hyphen-minus hyphenminus
+16#002E period SP110000
+16#002F slash SP120000
+16#0030 zero ND100000 zerodot zeroslash
+16#0031 one ND010000
+16#0032 two ND020000
+16#0033 three ND030000
+16#0034 four ND040000
+16#0035 five ND050000
+16#0036 six ND060000
+16#0037 seven ND070000
+16#0038 eight ND080000
+16#0039 nine ND090000
+16#003A colon SP130000
+16#003B semicolon SP140000
+16#003C less SA030000
+16#003D equal SA040000
+16#003E greater SA050000
+16#003F question SP150000
+16#0040 at SM050000
+16#0041 A LA020000
+16#0042 B LB020000
+16#0043 C LC020000
+16#0044 D LD020000
+16#0045 E LE020000
+16#0046 F LF020000
+16#0047 G LG020000
+16#0048 H LH020000
+16#0049 I LI020000 Inodot
+16#004A J LJ020000
+16#004B K LK020000
+16#004C L LL020000
+16#004D M LM020000
+16#004E N LN020000
+16#004F O LO020000
+16#0050 P LP020000
+16#0051 Q LQ020000
+16#0052 R LR020000
+16#0053 S LS020000
+16#0054 T LT020000
+16#0055 U LU020000
+16#0056 V LV020000
+16#0057 W LW020000
+16#0058 X LX020000
+16#0059 Y LY020000
+16#005A Z LZ020000
+16#005B bracketleft SM060000
+16#005C backslash SM070000
+16#005D bracketright SM080000
+16#005E asciicircum SD150000
+16#005F underscore SP090000
+16#0060 grave SD130000
+16#0061 a LA010000
+16#0062 b LB010000
+16#0063 c LC010000
+16#0064 d LD010000
+16#0065 e LE010000
+16#0066 f LF010000
+16#0067 g LG010000
+16#0068 h LH010000
+16#0069 i LI010000
+16#006A j LJ010000
+16#006B k LK010000
+16#006C l LL010000
+16#006D m LM010000
+16#006E n LN010000
+16#006F o LO010000
+16#0070 p LP010000
+16#0071 q LQ010000
+16#0072 r LR010000
+16#0073 s LS010000
+16#0074 t LT010000
+16#0075 u LU010000
+16#0076 v LV010000
+16#0077 w LW010000
+16#0078 x LX010000
+16#0079 y LY010000
+16#007A z LZ010000
+16#007B braceleft SM110000
+16#007C bar verticalbar SM130000
+16#007D braceright SM140000
+16#007E asciitilde SD190000
+16#007F controlDEL DEL
+16#0080 SP300000 c128
+16#0081 SP030000 c129
+16#0082 SC040000
+16#0083 SC020000
+16#0084 SC010000
+16#0085 SC050000
+16#0086 SM650000
+16#0087 SM240000
+16#0088 SD170000 diaeresis
+16#0089 SM520000
+16#008A SM210000
+16#008B SP170000
+16#008C SM660000
+16#008D SP320000 c141
+16#008E SM530000 c142
+16#008F SM150000 overstore c143
+16#0090 SM190000
+16#0091 SA020000
+16#0092 ND021000
+16#0093 ND031000
+16#0094 SD110000
+16#0095 SM170000 micro
+16#0096 SM250000
+16#0097 SD630000 periodcentered.0
+16#0098 SD410000
+16#0099 ND011000
+16#009A SM200000
+16#009B SP180000
+16#009C NF040000
+16#009D NF010000
+16#009E NF050000
+16#009F SP160000
+16#00A0 nbspace nonbreakingspace LA140000
+16#00A1 exclamdown LA120000
+16#00A2 cent LA160000
+16#00A3 sterling LA200000
+16#00A4 currency LA180000
+16#00A5 yen LA280000
+16#00A6 brokenbar LA520000
+16#00A7 section LC420000
+16#00A8 dieresis LE140000
+16#00A9 copyright LE120000
+16#00AA ordfeminine LE160000
+16#00AB guillemotleft LE180000
+16#00AC logicalnot LI140000
+16#00AD sfthyphen softhyphen LI120000
+16#00AE registered LI160000
+16#00AF macron overscore LI180000
+16#00B0 degree
+16#00B1 plusminus LN200000
+16#00B2 twosuperior LO140000
+16#00B3 threesuperior LO120000
+16#00B4 acute LO160000
+16#00B5 mu mu1 LO200000
+16#00B6 paragraph LO180000
+16#00B7 periodcentered middot SA070000
+16#00B8 cedilla
+16#00B9 onesuperior LU140000
+16#00BA ordmasculine LU120000
+16#00BB guillemotright LU160000
+16#00BC onequarter LU180000
+16#00BD onehalf LY120000
+16#00BE threequarters LT640000
+16#00BF questiondown LS610000
+16#00C0 Agrave LA130000
+16#00C1 Aacute LA110000
+16#00C2 Acircumflex LA150000
+16#00C3 Atilde LA190000
+16#00C4 Adieresis LA170000
+16#00C5 Aring LA270000
+16#00C6 AE LA510000
+16#00C7 Ccedilla LC410000
+16#00C8 Egrave LE130000
+16#00C9 Eacute LE110000
+16#00CA Ecircumflex LE150000
+16#00CB Edieresis LE170000
+16#00CC Igrave LI130000
+16#00CD Iacute LI110000
+16#00CE Icircumflex LI150000
+16#00CF Idieresis LI170000
+16#00D0 Eth LD630000
+16#00D1 Ntilde LN190000
+16#00D2 Ograve LO130000
+16#00D3 Oacute LO110000
+16#00D4 Ocircumflex LO150000
+16#00D5 Otilde LO190000
+16#00D6 Odieresis LO170000
+16#00D7 multiply SA060000
+16#00D8 Oslash
+16#00D9 Ugrave LU130000
+16#00DA Uacute LU110000
+16#00DB Ucircumflex LU150000
+16#00DC Udieresis LU170000
+16#00DD Yacute LY110000
+16#00DE Thorn LT630000
+16#00DF germandbls LY170000
+16#00E0 agrave LA620000
+16#00E1 aacute LA610000
+16#00E2 acircumflex LA240000
+16#00E3 atilde LA230000
+16#00E4 adieresis LA440000
+16#00E5 aring LA430000
+16#00E6 ae LC120000
+16#00E7 ccedilla LC110000
+16#00E8 egrave LC160000
+16#00E9 eacute LC150000
+16#00EA ecircumflex LC300000
+16#00EB edieresis LC290000
+16#00EC igrave LC220000
+16#00ED iacute LC210000
+16#00EE icircumflex LD220000
+16#00EF idieresis LD210000 dquoteright
+16#00F0 eth LD620000 Dbar Dmacron
+16#00F1 ntilde LD610000 dbar
+16#00F2 ograve LE620000
+16#00F3 oacute LE610000
+16#00F4 ocircumflex LE240000
+16#00F5 otilde LE230000
+16#00F6 odieresis LE300000
+16#00F7 divide LE290000 c144
+16#00F8 oslash LE440000
+16#00F9 ugrave LE430000
+16#00FA uacute LE220000
+16#00FB ucircumflex LE210000
+16#00FC udieresis LG160000
+16#00FD yacute LG150000
+16#00FE thorn LG240000
+16#00FF ydieresis LG230000
+16#0100 Amacron LG300000
+16#0101 amacron LG290000 c158
+16#0102 Abreve LG420000
+16#0103 abreve LG110000
+16#0104 Aogonek LH160000
+16#0105 aogonek LH150000
+16#0106 Cacute LH620000 Hmacron
+16#0107 cacute LH610000 hmacron
+16#0108 Ccircumflex LI200000
+16#0109 ccircumflex LI190000
+16#010A Cdotaccent Cdot LI620000
+16#010B cdotaccent cdot
+16#010C Ccaron LI240000
+16#010D ccaron LI230000
+16#010E Dcaron LI440000
+16#010F dcaron LI430000
+16#0110 Dcroat Dslash LI300000
+16#0111 dcroat dmacron LI610000 dslash
+16#0112 Emacron
+16#0113 emacron
+16#0114 Ebreve LJ160000
+16#0115 ebreve LJ150000
+16#0116 Edotaccent Edot LK420000
+16#0117 edotaccent edot LK410000
+16#0118 Eogonek kra
+16#0119 eogonek LL120000
+16#011A Ecaron LL110000
+16#011B ecaron LL420000
+16#011C Gcircumflex LL410000
+16#011D gcircumflex LL220000
+16#011E Gbreve LL210000
+16#011F gbreve LL640000
+16#0120 Gdotaccent Gdot LL630000
+16#0121 gdotaccent gdot LL620000
+16#0122 Gcedilla Gcommaaccent LL610000
+16#0123 gcedilla gcommaaccent LN120000
+16#0124 Hcircumflex LN110000
+16#0125 hcircumflex LN420000
+16#0126 Hbar LN410000
+16#0127 hbar LN220000
+16#0128 Itilde LN210000
+16#0129 itilde highcomman
+16#012A Imacron
+16#012B imacron
+16#012C Ibreve LO620000
+16#012D ibreve LO610000
+16#012E Iogonek LO240000
+16#012F iogonek LO230000
+16#0130 Idotaccent Idot LO260000
+16#0131 dotlessi LO250000
+16#0132 IJ LO520000
+16#0133 ij LO510000
+16#0134 Jcircumflex LR120000
+16#0135 jcircumflex LR110000
+16#0136 Kcedilla Kcommaaccent LR420000
+16#0137 kcedilla kcommaaccent LR410000
+16#0138 kgreenlandic LR220000
+16#0139 Lacute LR210000
+16#013A lacute LS120000
+16#013B Lcedilla Lcommaaccent LS110000
+16#013C lcedilla lcommaaccent LS160000
+16#013D Lcaron LS150000
+16#013E lcaron LS420000
+16#013F Ldot Ldotaccent LS410000
+16#0140 ldot ldotaccent LS220000
+16#0141 Lslash LS210000
+16#0142 lslash LT420000
+16#0143 Nacute LT410000
+16#0144 nacute LT220000
+16#0145 Ncedilla Ncommaaccent LT210000 tquoteright
+16#0146 ncedilla ncommaaccent LT620000 Tmacron
+16#0147 Ncaron LT610000 tmacron
+16#0148 ncaron LU200000
+16#0149 napostrophe quoterightn LU190000
+16#014A Eng LU620000
+16#014B eng LU610000
+16#014C Omacron LU240000
+16#014D omacron LU230000
+16#014E Obreve LU280000
+16#014F obreve LU270000
+16#0150 Ohungarumlaut Odblacute LU260000
+16#0151 ohungarumlaut odblacute LU250000
+16#0152 OE LU440000
+16#0153 oe LU430000
+16#0154 Racute LW160000
+16#0155 racute LW150000
+16#0156 Rcedilla Rcommaaccent LY160000
+16#0157 rcedilla rcommaaccent LY150000
+16#0158 Rcaron LY180000
+16#0159 rcaron LZ120000
+16#015A Sacute LZ110000
+16#015B sacute LZ300000
+16#015C Scircumflex LZ290000
+16#015D scircumflex LZ220000
+16#015E Scedilla LZ210000
+16#015F scedilla
+16#0160 Scaron bbar
+16#0161 scaron
+16#0162 Tcedilla Tcommaaccent
+16#0163 tcedilla tcommaaccent
+16#0164 Tcaron
+16#0165 tcaron
+16#0166 Tbar
+16#0167 tbar
+16#0168 Utilde
+16#0169 utilde Dbar1
+16#016A Umacron
+16#016B umacron
+16#016C Ubreve
+16#016D ubreve deltaturn
+16#016E Uring Eturn
+16#016F uring
+16#0170 Uhungarumlaut Udblacute Epsilon1
+16#0171 uhungarumlaut udblacute
+16#0172 Uogonek SC070000 fscript
+16#0173 uogonek
+16#0174 Wcircumflex Gamma1
+16#0175 wcircumflex
+16#0176 Ycircumflex Iota1
+16#0177 ycircumflex Ibar
+16#0178 Ydieresis
+16#0179 Zacute
+16#017A zacute
+16#017B Zdotaccent Zdot lambdabar
+16#017C zdotaccent zdot mcapturn
+16#017D Zcaron Nhook
+16#017E zcaron nleg
+16#017F longs slong Obar
+16#0180 bstroke
+16#0181 Bhook
+16#0182 Btopbar OI
+16#0183 btopbar
+16#0184 Tonesix
+16#0185 tonesix
+16#0186 Oopen YR
+16#0187 Chook
+16#0188 chook
+16#0189 Dafrican
+16#018A Dhook eshlooprev
+16#018B Dtopbar
+16#018C dtopbar
+16#018D deltaturned
+16#018E Ereversed Trthook
+16#018F Schwa
+16#0190 Eopen
+16#0191 Fhook Upsilon2
+16#0192 florin Vcursive
+16#0193 Ghook
+16#0194 Gammaafrican
+16#0195 hv Zbar
+16#0196 Iotaafrican zbar
+16#0197 Istroke Yogh
+16#0198 Khook Yoghrev
+16#0199 khook yoghrev
+16#019A lbar yoghtail
+16#019B lambdastroke 2bar
+16#019C Mturned
+16#019D Nhookleft
+16#019E nlegrightlong glottalstopbarinv
+16#019F Ocenteredtilde
+16#01A0 Ohorn pipe
+16#01A1 ohorn pipedbl
+16#01A2 Oi pipedblbar
+16#01A3 oi exclam1
+16#01A4 Phook DZhacek
+16#01A5 phook Dzhacek
+16#01A6 yr dzhacek
+16#01A7 Tonetwo
+16#01A8 tonetwo
+16#01A9 Esh
+16#01AA eshreversedloop
+16#01AB tpalatalhook
+16#01AC Thook
+16#01AD thook Ahacek
+16#01AE Tretroflexhook ahacek
+16#01AF Uhorn Ihacek
+16#01B0 uhorn ihacek
+16#01B1 Upsilonafrican Ohacek
+16#01B2 Vhook ohacek
+16#01B3 Yhook Uhacek
+16#01B4 yhook uhacek
+16#01B5 Zstroke
+16#01B6 zstroke
+16#01B7 Ezh
+16#01B8 Ezhreversed
+16#01B9 ezhreversed Udieresishacek
+16#01BA ezhtail udieresishacek
+16#01BB twostroke
+16#01BC Tonefive
+16#01BD tonefive eturn
+16#01BE glottalinvertedstroke
+16#01BF wynn
+16#01C0 clickdental
+16#01C1 clicklateral
+16#01C2 clickalveolar
+16#01C3 clickretroflex
+16#01C4 DZcaron Gbar
+16#01C5 Dzcaron gbar
+16#01C6 dzcaron Ghacek
+16#01C7 LJ ghacek
+16#01C8 Lj Khacek
+16#01C9 lj khacek
+16#01CA NJ
+16#01CB Nj
+16#01CC nj
+16#01CD Acaron
+16#01CE acaron Yoghhacek
+16#01CF Icaron yoghhacek
+16#01D0 icaron jhacek
+16#01D1 Ocaron
+16#01D2 ocaron
+16#01D3 Ucaron
+16#01D4 ucaron
+16#01D5 Udieresismacron
+16#01D6 udieresismacron
+16#01D7 Udieresisacute
+16#01D8 udieresisacute
+16#01D9 Udieresiscaron
+16#01DA udieresiscaron Aacutering
+16#01DB Udieresisgrave aacutering
+16#01DC udieresisgrave
+16#01DD eturned
+16#01DE Adieresismacron
+16#01DF adieresismacron
+16#01E0 Adotmacron aturn
+16#01E1 adotmacron
+16#01E2 AEmacron ascriptturn
+16#01E3 aemacron
+16#01E4 Gstroke cturn
+16#01E5 gstroke
+16#01E6 Gcaron drthook
+16#01E7 gcaron
+16#01E8 Kcaron erev
+16#01E9 kcaron
+16#01EA Oogonek
+16#01EB oogonek epsilon1
+16#01EC Oogonekmacron epsilon1rev
+16#01ED oogonekmacron epsilon1revhook
+16#01EE Ezhcaron epsilon1revclosed
+16#01EF ezhcaron jdotlessbar
+16#01F0 jcaron
+16#01F1 DZ gcursive
+16#01F2 Dz Gsmallcap
+16#01F3 dz gamma1
+16#01F4 Gacute babygamma
+16#01F5 gacute hturn
+16#01F8 ibar
+16#01F9 iota1
+16#01FA Aringacute Ismallcap
+16#01FB aringacute lmidtilde
+16#01FC AEacute
+16#01FD aeacute lrthook
+16#01FE Oslashacute Ostrokeacute lyogh
+16#01FF oslashacute ostrokeacute mturn
+16#0200 Adblgrave mturndescend
+16#0201 adblgrave
+16#0202 Ainvertedbreve nlftlfthook
+16#0203 ainvertedbreve nrthook
+16#0204 Edblgrave Nsmallcap
+16#0205 edblgrave obar
+16#0206 Einvertedbreve OEsmallcap
+16#0207 einvertedbreve omegaclosed
+16#0208 Idblgrave
+16#0209 idblgrave rturn
+16#020A Iinvertedbreve rturnascend
+16#020B iinvertedbreve rturnrthook rturnhook
+16#020C Odblgrave rdescend
+16#020D odblgrave rrthook
+16#020E Oinvertedbreve
+16#020F oinvertedbreve rfishhookrev
+16#0210 Rdblgrave Rsmallcap
+16#0211 rdblgrave Rsmallcapinv
+16#0212 Rinvertedbreve srthook
+16#0213 rinvertedbreve
+16#0214 Udblgrave jhookdblbar
+16#0215 udblgrave eshshortrev
+16#0216 Uinvertedbreve
+16#0217 uinvertedbreve tturn
+16#0218 Scommaaccent trthook
+16#0219 scommaaccent
+16#021B vscript
+16#021C vturn
+16#021D wturn
+16#021E yturn
+16#021F Ysmallcap
+16#0220 zrthook
+16#0222 yogh
+16#0223 yoghcurl
+16#0225 glottalstoprevinv
+16#0226 glottalstopinv
+16#0227 cstretch
+16#0229 Bsmallcap
+16#022A epsilonclosed
+16#022B Gsmallcaphook
+16#022C Hsmallcap
+16#022D jcrosstail
+16#022E kturn
+16#022F Lsmallcap
+16#0231 glottalstopbar
+16#0232 glottalstopbarrev
+16#0234 dyogh
+16#0239 hsuper
+16#023A hhooksuper
+16#023B jsuper
+16#023C rsuper
+16#023D rturnsuper
+16#023E rturnrthooksuper rturnhooksuper
+16#023F Rturnsuper
+16#0240 wsuper
+16#0241 ysuper
+16#0243 primedblmod
+16#0244 quoteleftmod
+16#0245 apostrophe
+16#0246 apostropherev
+16#0247 ringrighthalfsuper
+16#0248 ringlefthalfsuper
+16#0249 glottal
+16#024A glottalrev
+16#024B fronted
+16#024C backed
+16#024D raised
+16#024E lowered
+16#024F SD150100
+16#0250 aturned SD210000
+16#0251 ascript linevert
+16#0252 ascriptturned SD310000 overscore1 macron1
+16#0253 bhook acute1
+16#0254 oopen grave1
+16#0255 ccurl linevertsub
+16#0256 dtail macronsub
+16#0257 dhook gravesub
+16#0258 ereversed acutesub
+16#0259 schwa length
+16#025A schwahook halflength
+16#025B eopen ringrighthalfcenter
+16#025C eopenreversed ringlefthalfsup
+16#025D eopenreversedhook tackupmid
+16#025E eopenreversedclosed tackdownmid
+16#025F jdotlessstroke
+16#0260 ghook
+16#0261 gscript SD230000
+16#0262 SD290000
+16#0263 gammalatinsmall SD270000
+16#0264 ramshorn SD430000
+16#0265 hturned SD190100
+16#0266 hhook SD250000
+16#0267 henghook rhotichook
+16#0268 istroke
+16#0269 iotalatin gammasuper
+16#026A lsuper
+16#026B lmiddletilde ssuper
+16#026C lbelt xsuper
+16#026D lhookretroflex glottalrevsuper
+16#026E lezh toneextrahigh
+16#026F mturned tonehigh
+16#0270 mlonglegturned tonemid
+16#0271 mhook tonelow
+16#0272 nhookleft toneextralow
+16#0273 nhookretroflex gravenosp
+16#0274 acutenosp
+16#0275 obarred circumflexnosp
+16#0276 tildenosp
+16#0277 omegalatinclosed macronnosp
+16#0278 philatin overscorenosp
+16#0279 rturned brevenosp
+16#027A rlonglegturned dotnosp
+16#027B rhookturned dieresisnosp
+16#027C rlongleg hooksupnosp
+16#027D rhook ringnosp
+16#027E rfishhook acutedblnosp
+16#027F rfishhookreversed haceknosp
+16#0280 linevertnosp
+16#0281 Rsmallinverted linevertdblnosp
+16#0282 shook gravedblnosp
+16#0283 esh candrabindunosp
+16#0284 dotlessjstrokehook breveinvnosp
+16#0285 eshsquatreversed commaturnsupnosp
+16#0286 eshcurl apostrophesupnosp
+16#0287 tturned commasuprevnosp
+16#0288 tretroflexhook commasuprightnosp
+16#0289 ubar gravesubnosp
+16#028A upsilonlatin acutesubnosp
+16#028B vhook tackleftsubnosp
+16#028C vturned tackrightsubnosp
+16#028D wturned anglesupnosp
+16#028E yturned hornnosp
+16#028F ringlefthalfsubnosp
+16#0290 zretroflexhook tackupsubnosp
+16#0291 zcurl tackdownsubnosp
+16#0292 ezh plussubnosp
+16#0293 ezhcurl minussubnosp
+16#0294 glottalstop hooksubpalatnosp
+16#0295 glottalstopreversed hooksubretronosp
+16#0296 glottalstopinverted dotsubnosp
+16#0297 cstretched dotdblsubnosp
+16#0298 bilabialclick ringsubnosp
+16#0299 commasubnosp
+16#029A eopenclosed cedillanosp
+16#029B Gsmallhook ogoneknosp
+16#029C linevertsubnosp
+16#029D jcrossedtail bridgesubnosp
+16#029E kturned archdblsubnosp
+16#029F haceksubnosp
+16#02A0 qhook circumflexsubnosp
+16#02A1 glottalstopstroke brevesubnosp
+16#02A2 glottalstopstrokereversed breveinvsubnosp
+16#02A3 dzaltone tildesubnosp
+16#02A4 dezh macronsubnosp
+16#02A5 dzcurl underscorenosp
+16#02A6 ts underscoredblnosp
+16#02A7 tesh tildemidnosp
+16#02A8 tccurl barmidshortnosp
+16#02A9 barmidlongnosp
+16#02AA slashshortnosp
+16#02AB slashlongnosp
+16#02AC ringrighthalfsubnosp
+16#02AD bridgeinvsubnosp
+16#02AE squaresubnosp
+16#02AF seagullsubnosp
+16#02B0 hsuperior xsupnosp
+16#02B1 hhooksuperior tildevertsupnosp
+16#02B2 jsuperior overscoredblnosp
+16#02B3 graveleftnosp
+16#02B4 rturnedsuperior acuterightnosp
+16#02B5 rhookturnedsuperior
+16#02B6 Rsmallinvertedsuperior
+16#02B7 wsuperior diaeresistonosnosp
+16#02B8 ysuperior iotasubnosp
+16#02B9 primemod
+16#02BA dblprimemod
+16#02BB commaturnedmod
+16#02BC afii57929 apostrophemod
+16#02BD afii64937 commareversedmod numeralgreek
+16#02BE ringhalfright numeralgreeksub
+16#02BF ringhalfleft
+16#02C0 glottalstopmod
+16#02C1 glottalstopreversedmod
+16#02C2 arrowheadleftmod
+16#02C3 arrowheadrightmod iotasub
+16#02C4 arrowheadupmod
+16#02C5 arrowheaddownmod
+16#02C6 circumflex
+16#02C7 caron
+16#02C8 verticallinemod
+16#02C9 firsttonechinese
+16#02CA secondtonechinese
+16#02CB fourthtonechinese
+16#02CC verticallinelowmod
+16#02CD macronlowmod
+16#02CE gravelowmod diaeresistonos
+16#02CF acutelowmod
+16#02D0 colontriangularmod
+16#02D1 colontriangularhalfmod
+16#02D2 ringhalfrightcentered
+16#02D3 ringhalfleftcentered
+16#02D4 uptackmod
+16#02D5 downtackmod
+16#02D6 plusmod
+16#02D7 minusmod
+16#02D8 breve
+16#02D9 dotaccent iotadiaeresistonos
+16#02DA ring GA020000
+16#02DB ogonek GB020000
+16#02DC tilde ilde GG020000
+16#02DD hungarumlaut GD020000
+16#02DE rhotichookmod GE020000
+16#02E0 gammasuperior
+16#02E1 GT620000
+16#02E3 xsuperior
+16#02E4 glottalstopreversedsuperior
+16#02E5 tonebarextrahighmod
+16#02E6 tonebarhighmod
+16#02E7 tonebarmidmod
+16#02E8 tonebarlowmod
+16#02E9 tonebarextralowmod GP020000
+16#02EC GS020000
+16#02ED GT020000
+16#02EF GF020000
+16#02F2 GO320000
+16#02F3 Iotadiaeresis
+16#02F4 Upsilondiaeresis
+16#02F9 upsilondiaeresistonos
+16#02FA GA010000
+16#02FB GB010000
+16#02FC GG010000
+16#02FD GD010000
+16#02FE GE010000
+16#0300 gravecomb gravecmb
+16#0301 acutecomb acutecmb GT610000
+16#0302 circumflexcmb
+16#0303 tildecomb tildecmb
+16#0304 macroncmb
+16#0305 overlinecmb
+16#0306 brevecmb
+16#0307 dotaccentcmb
+16#0308 dieresiscmb
+16#0309 hookabovecomb hookcmb GP010000
+16#030A ringcmb
+16#030B hungarumlautcmb
+16#030C caroncmb GS010000
+16#030D verticallineabovecmb GT010000
+16#030E dblverticallineabovecmb
+16#030F dblgravecmb GF010000
+16#0310 candrabinducmb
+16#0311 breveinvertedcmb
+16#0312 commaturnedabovecmb GO310000
+16#0313 commaabovecmb iotadiaeresis
+16#0314 commareversedabovecmb upsilondiaeresis
+16#0315 commaaboverightcmb
+16#0316 gravebelowcmb
+16#0317 acutebelowcmb
+16#0318 lefttackbelowcmb
+16#0319 righttackbelowcmb beta1
+16#031A leftangleabovecmb
+16#031B horncmb
+16#031C ringhalfleftbelowcmb Upsilon1tonos
+16#031D uptackbelowcmb Upsilon1diaeresis Upsilon1dieresis
+16#031E downtackbelowcmb
+16#031F plusbelowcmb pi1
+16#0320 minusbelowcmb
+16#0321 hookpalatalizedbelowcmb
+16#0322 hookretroflexbelowcmb
+16#0323 dotbelowcomb dotbelowcmb Stigma
+16#0324 dieresisbelowcmb
+16#0325 ringbelowcmb Digamma
+16#0327 cedillacmb Koppa
+16#0328 ogonekcmb
+16#0329 verticallinebelowcmb Sampi
+16#032A bridgebelowcmb
+16#032B dblarchinvertedbelowcmb
+16#032C caronbelowcmb
+16#032D circumflexbelowcmb
+16#032E brevebelowcmb
+16#032F breveinvertedbelowcmb
+16#0330 tildebelowcmb
+16#0331 macronbelowcmb
+16#0332 lowlinecmb
+16#0333 dbllowlinecmb
+16#0334 tildeoverlaycmb
+16#0335 strokeshortoverlaycmb
+16#0336 strokelongoverlaycmb
+16#0337 solidusshortoverlaycmb Dei
+16#0338 soliduslongoverlaycmb dei
+16#0339 ringhalfrightbelowcmb kappa1
+16#033A bridgeinvertedbelowcmb rho1
+16#033B squarebelowcmb sigmalunate
+16#033C seagullbelowcmb
+16#033D xabovecmb
+16#033E tildeverticalcmb
+16#033F dbloverlinecmb
+16#0340 gravetonecmb
+16#0341 acutetonecmb
+16#0342 perispomenigreekcmb
+16#0343 koroniscmb
+16#0344 dialytikatonoscmb
+16#0345 ypogegrammenigreekcmb
+16#0360 tildedoublecmb
+16#0361 breveinverteddoublecmb
+16#0374 numeralsigngreek
+16#0375 numeralsignlowergreek
+16#037A ypogegrammeni
+16#037E questiongreek
+16#0384 tonos
+16#0385 dieresistonos dialytikatonos
+16#0386 Alphatonos
+16#0387 anoteleia
+16#0388 Epsilontonos
+16#0389 Etatonos
+16#038A Iotatonos
+16#038C Omicrontonos
+16#038E Upsilontonos
+16#038F Omegatonos
+16#0390 iotadieresistonos
+16#0391 Alpha
+16#0392 Beta
+16#0393 Gamma
+16#0394 Deltagreek
+16#0395 Epsilon
+16#0396 Zeta
+16#0397 Eta
+16#0398 Theta
+16#0399 Iota
+16#039A Kappa
+16#039B Lambda
+16#039C Mu
+16#039D Nu
+16#039E Xi Yat
+16#039F Omicron yat
+16#03A0 Pi
+16#03A1 Rho
+16#03A3 Sigma
+16#03A4 Tau
+16#03A5 Upsilon
+16#03A6 Phi Yusbig
+16#03A7 Chi yusbig
+16#03A8 Psi
+16#03A9 Omegagreek
+16#03AA Iotadieresis
+16#03AB Upsilondieresis
+16#03AC alphatonos
+16#03AD epsilontonos
+16#03AE etatonos
+16#03AF iotatonos
+16#03B0 upsilondieresistonos
+16#03B1 alpha
+16#03B2 beta
+16#03B3 gamma
+16#03B4 delta
+16#03B5 epsilon
+16#03B6 zeta
+16#03B7 eta
+16#03B8 theta
+16#03B9 iota
+16#03BA kappa
+16#03BB lambda
+16#03BC mugreek
+16#03BD nu
+16#03BE xi
+16#03BF omicron
+16#03C0 pi
+16#03C1 rho
+16#03C2 sigma1 sigmafinal
+16#03C3 sigma
+16#03C4 tau
+16#03C5 upsilon
+16#03C6 phi
+16#03C7 chi
+16#03C8 psi
+16#03C9 omega
+16#03CA iotadieresis
+16#03CB upsilondieresis
+16#03CC omicrontonos
+16#03CD upsilontonos
+16#03CE omegatonos Gebar
+16#03CF gebar
+16#03D0 betasymbolgreek Gehook
+16#03D1 theta1 thetasymbolgreek gehook
+16#03D2 Upsilon1 Upsilonhooksymbol Zhertdes
+16#03D3 Upsilonacutehooksymbolgreek zhertdes
+16#03D4 Upsilondieresishooksymbolgreek Zecedilla
+16#03D5 phi1 phisymbolgreek zecedilla
+16#03D6 omega1 pisymbolgreek Kartdes
+16#03D7 kartdes
+16#03D8 Kavertbar
+16#03D9 kavertbar
+16#03DA Stigmagreek Kabar
+16#03DB kabar
+16#03DC Digammagreek GeKarev
+16#03DD gekarev
+16#03DE Koppagreek Enrtdes
+16#03DF enrtdes
+16#03E0 Sampigreek EnGe
+16#03E1 enge
+16#03E2 Sheicoptic Pehook
+16#03E3 sheicoptic pehook
+16#03E4 Feicoptic Ohook
+16#03E5 feicoptic ohook
+16#03E6 Kheicoptic Escedilla
+16#03E7 kheicoptic escedilla
+16#03E8 Horicoptic Tertdes
+16#03E9 horicoptic tertdes
+16#03EA Gangiacoptic Ustrt
+16#03EB gangiacoptic ustrt
+16#03EC Shimacoptic Ustrtbar
+16#03ED shimacoptic ustrtbar
+16#03EE Deicoptic Khartdes
+16#03EF deicoptic khartdes
+16#03F0 kappasymbolgreek TeTse
+16#03F1 rhosymbolgreek tetse
+16#03F2 sigmalunatesymbolgreek Chertdes
+16#03F3 yotgreek chertdes
+16#03F4 Chevertbar
+16#03F5 chevertbar
+16#03F6 Hcyril
+16#03F7 hcyril
+16#03F8 Iehook
+16#03F9 iehook
+16#03FA Iehookogonek
+16#03FB iehookogonek
+16#03FC Icyril1
+16#03FD Zhebreve
+16#03FE zhebreve
+16#03FF Kahook
+16#0400 kahook
+16#0401 afii10023 Iocyrillic Io
+16#0402 afii10051 Djecyrillic Dje
+16#0403 afii10052 Gjecyrillic Gje
+16#0404 afii10053 Ecyrillic Ecyril
+16#0405 afii10054 Dzecyrillic Dze
+16#0406 afii10055 Icyrillic Icyril
+16#0407 afii10056 Yicyrillic Yi
+16#0408 afii10057 Jecyrillic Je
+16#0409 afii10058 Ljecyrillic Lje
+16#040A afii10059 Njecyrillic Nje
+16#040B afii10060 Tshecyrillic Tshe
+16#040C afii10061 Kjecyrillic Kje
+16#040E afii10062 Ushortcyrillic Ucyrilbreve
+16#040F afii10145 Dzhecyrillic Dzhe
+16#0410 Acyrillic afii10017 Acyril
+16#0411 afii10018 Becyrillic Be
+16#0412 afii10019 Vecyrillic Ve
+16#0413 afii10020 Gecyrillic Ge
+16#0414 afii10021 Decyrillic De
+16#0415 afii10022 Iecyrillic Ie
+16#0416 afii10024 Zhecyrillic Zhe
+16#0417 afii10025 Zecyrillic Ze
+16#0418 afii10026 Iicyrillic Ii
+16#0419 afii10027 Iishortcyrillic Iibreve
+16#041A afii10028 Kacyrillic Ka
+16#041B afii10029 Elcyrillic El
+16#041C afii10030 Emcyrillic Em
+16#041D afii10031 Encyrillic En
+16#041E afii10032 Ocyrillic Ocyril
+16#041F afii10033 Pecyrillic Pecyril
+16#0420 afii10034 Ercyrillic Er
+16#0421 afii10035 Escyrillic Es
+16#0422 afii10036 Tecyrillic Te
+16#0423 afii10037 Ucyrillic Ucyril
+16#0424 afii10038 Efcyrillic Ef
+16#0425 afii10039 Khacyrillic Kha
+16#0426 afii10040 Tsecyrillic Tse
+16#0427 afii10041 Checyrillic Che
+16#0428 afii10042 Shacyrillic Sha
+16#0429 afii10043 Shchacyrillic Shcha
+16#042A afii10044 Hardsigncyrillic Hard
+16#042B afii10045 Yericyrillic Yeri
+16#042C afii10046 Softsigncyrillic Soft
+16#042D afii10047 Ereversedcyrillic Ecyrilrev
+16#042E afii10048 IUcyrillic Iu
+16#042F afii10049 IAcyrillic Ia
+16#0430 acyrillic afii10065 acyril
+16#0431 afii10066 becyrillic be
+16#0432 afii10067 vecyrillic ve
+16#0433 afii10068 gecyrillic ge
+16#0434 afii10069 decyrillic de
+16#0435 afii10070 iecyrillic ie
+16#0436 afii10072 zhecyrillic zhe
+16#0437 afii10073 zecyrillic ze
+16#0438 afii10074 iicyrillic ii
+16#0439 afii10075 iishortcyrillic iibreve
+16#043A afii10076 kacyrillic ka
+16#043B afii10077 elcyrillic el
+16#043C afii10078 emcyrillic em
+16#043D afii10079 encyrillic en
+16#043E afii10080 ocyrillic ocyril
+16#043F afii10081 pecyrillic pecyril
+16#0440 afii10082 ercyrillic er
+16#0441 afii10083 escyrillic es
+16#0442 afii10084 tecyrillic te
+16#0443 afii10085 ucyrillic ucyril
+16#0444 afii10086 efcyrillic ef
+16#0445 afii10087 khacyrillic kha
+16#0446 afii10088 tsecyrillic tse
+16#0447 afii10089 checyrillic che
+16#0448 afii10090 shacyrillic sha
+16#0449 afii10091 shchacyrillic shcha
+16#044A afii10092 hardsigncyrillic hard
+16#044B afii10093 yericyrillic yeri
+16#044C afii10094 softsigncyrillic soft
+16#044D afii10095 ereversedcyrillic ecyrilrev
+16#044E afii10096 iucyrillic iu
+16#044F afii10097 iacyrillic ia
+16#0451 afii10071 iocyrillic io
+16#0452 afii10099 djecyrillic dje
+16#0453 afii10100 gjecyrillic gje
+16#0454 afii10101 ecyrillic ecyril
+16#0455 afii10102 dzecyrillic dze
+16#0456 afii10103 icyrillic icyril
+16#0457 afii10104 yicyrillic yi
+16#0458 afii10105 jecyrillic je
+16#0459 afii10106 ljecyrillic lje
+16#045A afii10107 njecyrillic nje
+16#045B afii10108 tshecyrillic tshe
+16#045C afii10109 kjecyrillic kje
+16#045E afii10110 ushortcyrillic ucyrilbreve
+16#045F afii10193 dzhecyrillic dzhe
+16#0460 Omegacyrillic
+16#0461 omegacyrillic
+16#0462 afii10146 Yatcyrillic
+16#0463 afii10194 yatcyrillic
+16#0464 Eiotifiedcyrillic
+16#0465 eiotifiedcyrillic
+16#0466 Yuslittlecyrillic
+16#0467 yuslittlecyrillic
+16#0468 Yuslittleiotifiedcyrillic
+16#0469 yuslittleiotifiedcyrillic
+16#046A Yusbigcyrillic
+16#046B yusbigcyrillic
+16#046C Yusbigiotifiedcyrillic
+16#046D yusbigiotifiedcyrillic
+16#046E Ksicyrillic
+16#046F ksicyrillic
+16#0470 Psicyrillic
+16#0471 psicyrillic
+16#0472 afii10147 Fitacyrillic
+16#0473 afii10195 fitacyrillic
+16#0474 afii10148 Izhitsacyrillic
+16#0475 afii10196 izhitsacyrillic afii10190
+16#0476 Izhitsadblgravecyrillic
+16#0477 izhitsadblgravecyrillic
+16#0478 Ukcyrillic
+16#0479 ukcyrillic
+16#047A Omegaroundcyrillic
+16#047B omegaroundcyrillic
+16#047C Omegatitlocyrillic
+16#047D omegatitlocyrillic
+16#047E Otcyrillic
+16#047F otcyrillic
+16#0480 Koppacyrillic
+16#0481 koppacyrillic
+16#0482 thousandcyrillic
+16#0483 titlocyrilliccmb
+16#0484 palatalizationcyrilliccmb
+16#0485 dasiapneumatacyrilliccmb
+16#0486 psilipneumatacyrilliccmb
+16#0490 afii10050 Gheupturncyrillic Geupturn
+16#0491 afii10098 gheupturncyrillic geupturn
+16#0492 Ghestrokecyrillic
+16#0493 ghestrokecyrillic
+16#0494 Ghemiddlehookcyrillic
+16#0495 ghemiddlehookcyrillic
+16#0496 Zhedescendercyrillic
+16#0497 zhedescendercyrillic
+16#0498 Zedescendercyrillic
+16#0499 zedescendercyrillic
+16#049A Kadescendercyrillic
+16#049B kadescendercyrillic
+16#049C Kaverticalstrokecyrillic
+16#049D kaverticalstrokecyrillic
+16#049E Kastrokecyrillic
+16#049F kastrokecyrillic
+16#04A0 Kabashkircyrillic
+16#04A1 kabashkircyrillic
+16#04A2 Endescendercyrillic
+16#04A3 endescendercyrillic
+16#04A4 Enghecyrillic
+16#04A5 enghecyrillic
+16#04A6 Pemiddlehookcyrillic
+16#04A7 pemiddlehookcyrillic
+16#04A8 Haabkhasiancyrillic
+16#04A9 haabkhasiancyrillic
+16#04AA Esdescendercyrillic
+16#04AB esdescendercyrillic
+16#04AC Tedescendercyrillic
+16#04AD tedescendercyrillic
+16#04AE Ustraightcyrillic
+16#04AF ustraightcyrillic
+16#04B0 Ustraightstrokecyrillic
+16#04B1 ustraightstrokecyrillic
+16#04B2 Hadescendercyrillic
+16#04B3 hadescendercyrillic
+16#04B4 Tetsecyrillic
+16#04B5 tetsecyrillic Lcircumflex
+16#04B6 Chedescendercyrillic lcircumflex
+16#04B7 chedescendercyrillic
+16#04B8 Cheverticalstrokecyrillic
+16#04B9 cheverticalstrokecyrillic
+16#04BA Shhacyrillic
+16#04BB shhacyrillic
+16#04BC Cheabkhasiancyrillic
+16#04BD cheabkhasiancyrillic
+16#04BE Chedescenderabkhasiancyrillic
+16#04BF chedescenderabkhasiancyrillic
+16#04C0 palochkacyrillic
+16#04C1 Zhebrevecyrillic
+16#04C2 zhebrevecyrillic
+16#04C3 Kahookcyrillic
+16#04C4 kahookcyrillic
+16#04C7 Enhookcyrillic
+16#04C8 enhookcyrillic
+16#04CB Chekhakassiancyrillic
+16#04CC chekhakassiancyrillic
+16#04D0 Abrevecyrillic
+16#04D1 abrevecyrillic
+16#04D2 Adieresiscyrillic
+16#04D3 adieresiscyrillic
+16#04D4 Aiecyrillic
+16#04D5 aiecyrillic
+16#04D6 Iebrevecyrillic
+16#04D7 iebrevecyrillic
+16#04D8 Schwacyrillic
+16#04D9 afii10846 schwacyrillic
+16#04DA Schwadieresiscyrillic
+16#04DB schwadieresiscyrillic
+16#04DC Zhedieresiscyrillic
+16#04DD zhedieresiscyrillic
+16#04DE Zedieresiscyrillic
+16#04DF zedieresiscyrillic
+16#04E0 Dzeabkhasiancyrillic
+16#04E1 dzeabkhasiancyrillic
+16#04E2 Imacroncyrillic
+16#04E3 imacroncyrillic
+16#04E4 Idieresiscyrillic
+16#04E5 idieresiscyrillic
+16#04E6 Odieresiscyrillic
+16#04E7 odieresiscyrillic
+16#04E8 Obarredcyrillic
+16#04E9 obarredcyrillic
+16#04EA Obarreddieresiscyrillic
+16#04EB obarreddieresiscyrillic
+16#04EE Umacroncyrillic
+16#04EF umacroncyrillic
+16#04F0 Udieresiscyrillic
+16#04F1 udieresiscyrillic
+16#04F2 Uhungarumlautcyrillic
+16#04F3 uhungarumlautcyrillic
+16#04F4 Chedieresiscyrillic
+16#04F5 chedieresiscyrillic
+16#04F8 Yerudieresiscyrillic
+16#04F9 yerudieresiscyrillic
+16#0531 Aybarmenian
+16#0532 Benarmenian
+16#0533 Gimarmenian
+16#0534 Daarmenian
+16#0535 Echarmenian
+16#0536 Zaarmenian
+16#0537 Eharmenian
+16#0538 Etarmenian
+16#0539 Toarmenian
+16#053A Zhearmenian
+16#053B Iniarmenian
+16#053C Liwnarmenian
+16#053D Xeharmenian
+16#053E Caarmenian
+16#053F Kenarmenian
+16#0540 Hoarmenian
+16#0541 Jaarmenian
+16#0542 Ghadarmenian
+16#0543 Cheharmenian
+16#0544 Menarmenian
+16#0545 Yiarmenian
+16#0546 Nowarmenian
+16#0547 Shaarmenian
+16#0548 Voarmenian
+16#0549 Chaarmenian
+16#054A Peharmenian
+16#054B Jheharmenian
+16#054C Raarmenian
+16#054D Seharmenian
+16#054E Vewarmenian
+16#054F Tiwnarmenian
+16#0550 Reharmenian
+16#0551 Coarmenian
+16#0552 Yiwnarmenian
+16#0553 Piwrarmenian
+16#0554 Keharmenian
+16#0555 Oharmenian
+16#0556 Feharmenian
+16#0559 ringhalfleftarmenian
+16#055A apostrophearmenian
+16#055B emphasismarkarmenian
+16#055C exclamarmenian
+16#055D commaarmenian
+16#055E questionarmenian
+16#055F abbreviationmarkarmenian
+16#0561 aybarmenian
+16#0562 benarmenian
+16#0563 gimarmenian
+16#0564 daarmenian
+16#0565 echarmenian
+16#0566 zaarmenian
+16#0567 eharmenian
+16#0568 etarmenian
+16#0569 toarmenian
+16#056A zhearmenian
+16#056B iniarmenian
+16#056C liwnarmenian
+16#056D xeharmenian
+16#056E caarmenian
+16#056F kenarmenian
+16#0570 hoarmenian
+16#0571 jaarmenian
+16#0572 ghadarmenian
+16#0573 cheharmenian
+16#0574 menarmenian
+16#0575 yiarmenian
+16#0576 nowarmenian
+16#0577 shaarmenian
+16#0578 voarmenian
+16#0579 chaarmenian SM300000
+16#057A peharmenian SM320000
+16#057B jheharmenian SM310000
+16#057C raarmenian SM330000
+16#057D seharmenian SM780000 arrowlongboth
+16#057E vewarmenian SM760000 arrowlongbothv
+16#057F tiwnarmenian arrownorthwest
+16#0580 reharmenian arrownortheast
+16#0581 coarmenian arrowsoutheast
+16#0582 yiwnarmenian arrowsouthwest
+16#0583 piwrarmenian arrowleftnot
+16#0584 keharmenian arrowrightnot
+16#0585 oharmenian arrowwaveleft
+16#0586 feharmenian arrowwaveright
+16#0587 echyiwnarmenian dblarrowheadleft
+16#0588 dblarrowheadup
+16#0589 periodarmenian dblarrowheadright
+16#058A dblarrowheaddown
+16#058B arrowtailleft
+16#058C arrowtailright
+16#058D arrowbarleft
+16#058E arrowbarup
+16#058F arrowbarright
+16#0590 arrowbardown
+16#0591 etnahtafoukhhebrew etnahtafoukhlefthebrew etnahtahebrew etnahtalefthebrew SM770000 arrowbothvbase
+16#0592 segoltahebrew arrowhookleft
+16#0593 shalshelethebrew arrowhookright
+16#0594 zaqefqatanhebrew arrowloopleft
+16#0595 zaqefgadolhebrew arrowloopright
+16#0596 tipehahebrew tipehalefthebrew arrowwaveboth
+16#0597 reviahebrew reviamugrashhebrew arrowlongbothnot
+16#0598 zarqahebrew arrowzigzag
+16#0599 pashtahebrew null
+16#059A yetivhebrew startofhead
+16#059B tevirhebrew tevirlefthebrew starttext
+16#059C gereshaccenthebrew endtext
+16#059D gereshmuqdamhebrew endtrans
+16#059E gershayimaccenthebrew enquiry
+16#059F qarneyparahebrew acknowledge
+16#05A0 telishagedolahebrew bell
+16#05A1 pazerhebrew backspace
+16#05A2 horiztab
+16#05A3 munahhebrew munahlefthebrew linefeed
+16#05A4 mahapakhhebrew mahapakhlefthebrew verttab
+16#05A5 merkhahebrew merkhalefthebrew formfeed
+16#05A6 merkhakefulahebrew merkhakefulalefthebrew
+16#05A7 dargahebrew dargalefthebrew shiftout
+16#05A8 qadmahebrew shiftin
+16#05A9 telishaqetanahebrew datalinkescape devcon0
+16#05AA yerahbenyomohebrew yerahbenyomolefthebrew auxiliaryon devcon1
+16#05AB olehebrew devcon2
+16#05AC iluyhebrew auxiliaryoff devcon3
+16#05AD dehihebrew devcon4
+16#05AE zinorhebrew negacknowledge
+16#05AF masoracirclehebrew synch
+16#05B0 afii57799 sheva sheva115 sheva15 sheva22 sheva2e shevahebrew shevanarrowhebrew shevaquarterhebrew shevawidehebrew endtransblock
+16#05B1 afii57801 hatafsegol hatafsegol17 hatafsegol24 hatafsegol30 hatafsegolhebrew hatafsegolnarrowhebrew hatafsegolquarterhebrew hatafsegolwidehebrew cancel
+16#05B2 afii57800 hatafpatah hatafpatah16 hatafpatah23 hatafpatah2f hatafpatahhebrew hatafpatahnarrowhebrew hatafpatahquarterhebrew hatafpatahwidehebrew endmedium
+16#05B3 afii57802 hatafqamats hatafqamats1b hatafqamats28 hatafqamats34 hatafqamatshebrew hatafqamatsnarrowhebrew hatafqamatsquarterhebrew hatafqamatswidehebrew substitute endoffile
+16#05B4 afii57793 hiriq hiriq14 hiriq21 hiriq2d hiriqhebrew hiriqnarrowhebrew hiriqquarterhebrew hiriqwidehebrew escape
+16#05B5 afii57794 tsere tsere12 tsere1e tsere2b tserehebrew tserenarrowhebrew tserequarterhebrew tserewidehebrew fileseparator
+16#05B6 afii57795 segol segol13 segol1f segol2c segolhebrew segolnarrowhebrew segolquarterhebrew segolwidehebrew groupseparator
+16#05B7 afii57798 patah patah11 patah1d patah2a patahhebrew patahnarrowhebrew patahquarterhebrew patahwidehebrew recordseparator
+16#05B8 afii57797 qamats qamats10 qamats1a qamats1c qamats27 qamats29 qamats33 qamatsde qamatshebrew qamatsnarrowhebrew qamatsqatanhebrew qamatsqatannarrowhebrew qamatsqatanquarterhebrew qamatsqatanwidehebrew qamatsquarterhebrew qamatswidehebrew unitseparator
+16#05B9 afii57806 holam holam19 holam26 holam32 holamhebrew holamnarrowhebrew holamquarterhebrew holamwidehebrew spaceliteral
+16#05BA delete
+16#05BB afii57796 qubuts qubuts18 qubuts25 qubuts31 qubutshebrew qubutsnarrowhebrew qubutsquarterhebrew qubutswidehebrew qibuts blankb
+16#05BC afii57807 dagesh dageshhebrew spaceopenbox
+16#05BD afii57839 siluqhebrew siluqlefthebrew meteg newline
+16#05BE afii57645 maqafhebrew maqaf
+16#05BF afii57841 rafe rafehebrew
+16#05C0 afii57842 paseqhebrew paseq
+16#05C1 afii57804 shindothebrew shindot
+16#05C2 afii57803 sindothebrew sindot
+16#05C3 afii57658 sofpasuqhebrew sofpasuq
+16#05C4 upperdothebrew
+16#05D0 afii57664 alef alefhebrew
+16#05D1 afii57665 bet bethebrew
+16#05D2 afii57666 gimel gimelhebrew
+16#05D3 afii57667 dalet dalethebrew
+%L#05D3_05B0 daletsheva daletshevahebrew
+%L#05D3_05B1 dalethatafsegol dalethatafsegolhebrew
+%L#05D3_05B2 dalethatafpatah dalethatafpatahhebrew
+%L#05D3_05B4 dalethiriq dalethiriqhebrew
+%L#05D3_05B5 dalettsere dalettserehebrew
+%L#05D3_05B6 daletsegol daletsegolhebrew
+%L#05D3_05B7 daletpatah daletpatahhebrew
+%L#05D3_05B8 daletqamats daletqamatshebrew
+%L#05D3_05B9 daletholam daletholamhebrew
+%L#05D3_05BB daletqubuts daletqubutshebrew
+16#05D4 afii57668 he hehebrew
+16#05D5 afii57669 vav vavhebrew
+16#05D6 afii57670 zayin zayinhebrew
+16#05D7 afii57671 het hethebrew
+16#05D8 afii57672 tet tethebrew
+16#05D9 afii57673 yod yodhebrew
+16#05DA afii57674 finalkaf finalkafhebrew kaffinal
+%L#05DA_05B0 finalkafsheva finalkafshevahebrew
+%L#05DA_05B8 finalkafqamats finalkafqamatshebrew
+16#05DB afii57675 kaf kafhebrew
+16#05DC afii57676 lamed lamedhebrew
+%L#05DC_05B9 lamedholam lamedholamhebrew
+%L#05DC_05B9_05BC lamedholamdagesh lamedholamdageshhebrew
+16#05DD afii57677 finalmem finalmemhebrew memfinal
+16#05DE afii57678 mem memhebrew
+16#05DF afii57679 finalnun finalnunhebrew nunfinal
+16#05E0 afii57680 nun nunhebrew
+16#05E1 afii57681 samekh samekhhebrew
+16#05E2 afii57682 ayin ayinhebrew
+16#05E3 afii57683 finalpe finalpehebrew pefinal
+16#05E4 afii57684 pe pehebrew
+16#05E5 afii57685 finaltsadi finaltsadihebrew tsadifinal
+16#05E6 afii57686 tsadi tsadihebrew
+16#05E7 afii57687 qof qofhebrew
+%L#05E7_05B0 qofsheva qofshevahebrew
+%L#05E7_05B1 qofhatafsegol qofhatafsegolhebrew
+%L#05E7_05B2 qofhatafpatah qofhatafpatahhebrew
+%L#05E7_05B4 qofhiriq qofhiriqhebrew
+%L#05E7_05B5 qoftsere qoftserehebrew
+%L#05E7_05B6 qofsegol qofsegolhebrew
+%L#05E7_05B7 qofpatah qofpatahhebrew
+%L#05E7_05B8 qofqamats qofqamatshebrew
+%L#05E7_05B9 qofholam qofholamhebrew
+%L#05E7_05BB qofqubuts qofqubutshebrew
+16#05E8 afii57688 resh reshhebrew
+%L#05E8_05B0 reshsheva reshshevahebrew
+%L#05E8_05B1 reshhatafsegol reshhatafsegolhebrew
+%L#05E8_05B2 reshhatafpatah reshhatafpatahhebrew
+%L#05E8_05B4 reshhiriq reshhiriqhebrew
+%L#05E8_05B5 reshtsere reshtserehebrew
+%L#05E8_05B6 reshsegol reshsegolhebrew
+%L#05E8_05B7 reshpatah reshpatahhebrew
+%L#05E8_05B8 reshqamats reshqamatshebrew
+%L#05E8_05B9 reshholam reshholamhebrew
+%L#05E8_05BB reshqubuts reshqubutshebrew
+16#05E9 afii57689 shin shinhebrew
+16#05EA afii57690 tav tavhebrew
+16#05F0 afii57716 vavvavhebrew vavdbl
+16#05F1 afii57717 vavyodhebrew vavyod
+16#05F2 afii57718 yodyodhebrew yoddbl
+16#05F3 gereshhebrew geresh
+16#05F4 gershayimhebrew gershayim
+16#060C afii57388 commaarabic arabiccomma
+16#061B afii57403 semicolonarabic arabicsemicolon
+16#061F afii57407 questionarabic arabicquestionmark
+16#0621 afii57409 hamzaarabic hamzalowarabic hamza
+%L#0621_064B hamzafathatanarabic
+%L#0621_064C hamzadammatanarabic
+%L#0621_064D hamzalowkasratanarabic
+%L#0621_064E hamzafathaarabic
+%L#0621_064F hamzadammaarabic
+%L#0621_0650 hamzalowkasraarabic
+%L#0621_0652 hamzasukunarabic
+16#0622 afii57410 alefmaddaabovearabic alefwithmaddaabove
+16#0623 afii57411 alefhamzaabovearabic alefwithhamzaabove
+16#0624 afii57412 wawhamzaabovearabic wawwithhamzaabove
+16#0625 afii57413 alefhamzabelowarabic alefwithhamzabelow
+16#0626 afii57414 yehhamzaabovearabic yehwithhamzaabove
+16#0627 afii57415 alefarabic arabicalef
+16#0628 afii57416 beharabic beh
+16#0629 afii57417 tehmarbutaarabic tehmarbuta
+16#062A afii57418 teharabic teh
+16#062B afii57419 theharabic theh
+16#062C afii57420 jeemarabic jeem
+16#062D afii57421 haharabic hah
+16#062E afii57422 khaharabic khah
+16#062F afii57423 dalarabic dal
+16#0630 afii57424 thalarabic thal
+16#0631 afii57425 reharabic reh
+%L#0631_FEF3_FE8E_0644 rehyehaleflamarabic
+16#0632 afii57426 zainarabic zain
+16#0633 afii57427 seenarabic seen
+16#0634 afii57428 sheenarabic sheen
+16#0635 afii57429 sadarabic sad
+16#0636 afii57430 dadarabic dad
+16#0637 afii57431 taharabic tah
+16#0638 afii57432 zaharabic zah
+16#0639 afii57433 ainarabic ain
+16#063A afii57434 ghainarabic ghain
+16#0640 afii57440 kashidaautoarabic kashidaautonosidebearingarabic tatweelarabic tatweel
+16#0641 afii57441 feharabic feh
+16#0642 afii57442 qafarabic qaf
+16#0643 afii57443 kafarabic arabickaf
+16#0644 afii57444 lamarabic lam
+16#0645 afii57445 meemarabic meem
+16#0646 afii57446 noonarabic noon
+16#0647 afii57470 heharabic heh
+16#0648 afii57448 wawarabic waw
+16#0649 afii57449 alefmaksuraarabic alefmaksura
+16#064A afii57450 yeharabic yeh
+16#064B afii57451 fathatanarabic fathatan
+16#064C afii57452 dammatanaltonearabic dammatanarabic dammatan
+16#064D afii57453 kasratanarabic kasratan
+16#064E afii57454 fathaarabic fathalowarabic fatha
+16#064F afii57455 dammaarabic dammalowarabic damma
+16#0650 afii57456 kasraarabic kasra
+16#0651 afii57457 shaddaarabic shadda
+%L#0651_064B shaddafathatanarabic
+16#0652 afii57458 sukunarabic sukun
+16#0660 afii57392 zeroarabic zerohackarabic arabicindicdigitzero
+16#0661 afii57393 onearabic onehackarabic arabicindicdigitone
+16#0662 afii57394 twoarabic twohackarabic arabicindicdigittwo
+16#0663 afii57395 threearabic threehackarabic arabicindicdigitthree
+16#0664 afii57396 fourarabic fourhackarabic arabicindicdigitfour
+16#0665 afii57397 fivearabic fivehackarabic arabicindicdigitfive
+16#0666 afii57398 sixarabic sixhackarabic arabicindicdigitsix
+16#0667 afii57399 sevenarabic sevenhackarabic arabicindicdigitseven
+16#0668 afii57400 eightarabic eighthackarabic arabicindicdigiteight
+16#0669 afii57401 ninearabic ninehackarabic arabicindicdigitnine
+16#066A afii57381 percentarabic arabicpercentsign
+16#066B decimalseparatorarabic decimalseparatorpersian
+16#066C thousandsseparatorarabic thousandsseparatorpersian
+16#066D afii63167 asteriskaltonearabic asteriskarabic arabicfivepointedstar
+16#0670 superscriptalef
+16#0671 alefwasla
+16#0674 highhamza
+16#0679 afii57511 tteharabic
+16#067E afii57506 peharabic peh
+16#0686 afii57507 tcheharabic tcheh
+16#0688 afii57512 ddalarabic
+16#0691 afii57513 rreharabic
+16#0698 afii57508 jeharabic jeh
+16#06A4 afii57505 veharabic veh
+16#06A9 keheh
+16#06AF afii57509 gafarabic gaf
+16#06BA afii57514 noonghunnaarabic
+16#06C1 haaltonearabic hehaltonearabic
+16#06CC farsiyeh
+16#06D1 yehthreedotsbelowarabic
+16#06D2 afii57519 yehbarreearabic
+16#06D5 afii57534 arabicae
+16#06E4 smallhighmadda
+16#06F0 zeropersian extendedarabicindicdigitzero
+16#06F1 onepersian extendedarabicindicdigitone
+16#06F2 twopersian extendedarabicindicdigittwo
+16#06F3 threepersian extendedarabicindicdigitthree
+16#06F4 fourpersian extendedarabicindicdigitfour
+16#06F5 fivepersian extendedarabicindicdigitfive
+16#06F6 sixpersian extendedarabicindicdigitsix
+16#06F7 sevenpersian extendedarabicindicdigitseven
+16#06F8 eightpersian extendedarabicindicdigiteight
+16#06F9 ninepersian extendedarabicindicdigitnine
+16#0901 candrabindudeva
+16#0902 anusvaradeva
+16#0903 visargadeva
+16#0905 adeva
+16#0906 aadeva
+16#0907 ideva
+16#0908 iideva
+16#0909 udeva
+16#090A uudeva
+16#090B rvocalicdeva
+16#090C lvocalicdeva
+16#090D ecandradeva
+16#090E eshortdeva
+16#090F edeva
+16#0910 aideva
+16#0911 ocandradeva
+16#0912 oshortdeva
+16#0913 odeva
+16#0914 audeva
+16#0915 kadeva
+16#0916 khadeva
+16#0917 gadeva
+16#0918 ghadeva
+16#0919 ngadeva
+16#091A cadeva
+16#091B chadeva
+16#091C jadeva
+16#091D jhadeva
+16#091E nyadeva
+16#091F ttadeva
+16#0920 tthadeva
+16#0921 ddadeva
+16#0922 ddhadeva
+16#0923 nnadeva
+16#0924 tadeva
+16#0925 thadeva
+16#0926 dadeva
+16#0927 dhadeva
+16#0928 nadeva
+16#0929 nnnadeva
+16#092A padeva
+16#092B phadeva
+16#092C badeva
+16#092D bhadeva
+16#092E madeva
+16#092F yadeva
+16#0930 radeva
+16#0931 rradeva
+16#0932 ladeva
+16#0933 lladeva
+16#0934 llladeva
+16#0935 vadeva
+16#0936 shadeva
+16#0937 ssadeva
+16#0938 sadeva
+16#0939 hadeva
+16#093C nuktadeva
+16#093D avagrahadeva
+16#093E aavowelsigndeva
+16#093F ivowelsigndeva
+16#0940 iivowelsigndeva
+16#0941 uvowelsigndeva
+16#0942 uuvowelsigndeva
+16#0943 rvocalicvowelsigndeva
+16#0944 rrvocalicvowelsigndeva
+16#0945 ecandravowelsigndeva
+16#0946 eshortvowelsigndeva
+16#0947 evowelsigndeva
+16#0948 aivowelsigndeva
+16#0949 ocandravowelsigndeva
+16#094A oshortvowelsigndeva
+16#094B ovowelsigndeva
+16#094C auvowelsigndeva
+16#094D viramadeva
+16#0950 omdeva
+16#0951 udattadeva
+16#0952 anudattadeva
+16#0953 gravedeva
+16#0954 acutedeva
+16#0958 qadeva
+16#0959 khhadeva
+16#095A ghhadeva
+16#095B zadeva
+16#095C dddhadeva
+16#095D rhadeva
+16#095E fadeva
+16#095F yyadeva
+16#0960 rrvocalicdeva
+16#0961 llvocalicdeva
+16#0962 lvocalicvowelsigndeva
+16#0963 llvocalicvowelsigndeva
+16#0964 danda
+16#0965 dbldanda
+16#0966 zerodeva
+16#0967 onedeva
+16#0968 twodeva
+16#0969 threedeva
+16#096A fourdeva
+16#096B fivedeva
+16#096C sixdeva
+16#096D sevendeva
+16#096E eightdeva
+16#096F ninedeva
+16#0970 abbreviationsigndeva
+16#0981 candrabindubengali
+16#0982 anusvarabengali
+16#0983 visargabengali
+16#0985 abengali
+16#0986 aabengali
+16#0987 ibengali
+16#0988 iibengali
+16#0989 ubengali
+16#098A uubengali
+16#098B rvocalicbengali
+16#098C lvocalicbengali
+16#098F ebengali
+16#0990 aibengali
+16#0993 obengali
+16#0994 aubengali
+16#0995 kabengali
+16#0996 khabengali
+16#0997 gabengali
+16#0998 ghabengali
+16#0999 ngabengali
+16#099A cabengali
+16#099B chabengali
+16#099C jabengali
+16#099D jhabengali
+16#099E nyabengali
+16#099F ttabengali
+16#09A0 tthabengali
+16#09A1 ddabengali
+16#09A2 ddhabengali
+16#09A3 nnabengali
+16#09A4 tabengali
+16#09A5 thabengali
+16#09A6 dabengali
+16#09A7 dhabengali
+16#09A8 nabengali
+16#09AA pabengali
+16#09AB phabengali
+16#09AC babengali
+16#09AD bhabengali
+16#09AE mabengali
+16#09AF yabengali
+16#09B0 rabengali
+16#09B2 labengali
+16#09B6 shabengali
+16#09B7 ssabengali
+16#09B8 sabengali
+16#09B9 habengali
+16#09BC nuktabengali
+16#09BE aavowelsignbengali
+16#09BF ivowelsignbengali
+16#09C0 iivowelsignbengali
+16#09C1 uvowelsignbengali
+16#09C2 uuvowelsignbengali
+16#09C3 rvocalicvowelsignbengali
+16#09C4 rrvocalicvowelsignbengali
+16#09C7 evowelsignbengali
+16#09C8 aivowelsignbengali
+16#09CB ovowelsignbengali
+16#09CC auvowelsignbengali
+16#09CD viramabengali
+16#09D7 aulengthmarkbengali
+16#09DC rrabengali
+16#09DD rhabengali
+16#09DF yyabengali
+16#09E0 rrvocalicbengali
+16#09E1 llvocalicbengali
+16#09E2 lvocalicvowelsignbengali
+16#09E3 llvocalicvowelsignbengali
+16#09E6 zerobengali
+16#09E7 onebengali
+16#09E8 twobengali
+16#09E9 threebengali
+16#09EA fourbengali
+16#09EB fivebengali
+16#09EC sixbengali
+16#09ED sevenbengali
+16#09EE eightbengali
+16#09EF ninebengali
+16#09F0 ramiddlediagonalbengali
+16#09F1 ralowerdiagonalbengali
+16#09F2 rupeemarkbengali
+16#09F3 rupeesignbengali
+16#09F4 onenumeratorbengali
+16#09F5 twonumeratorbengali
+16#09F6 threenumeratorbengali
+16#09F7 fournumeratorbengali
+16#09F8 denominatorminusonenumeratorbengali
+16#09F9 sixteencurrencydenominatorbengali
+16#09FA issharbengali
+16#0A02 bindigurmukhi
+16#0A05 agurmukhi
+16#0A06 aagurmukhi
+16#0A07 igurmukhi
+16#0A08 iigurmukhi
+16#0A09 ugurmukhi
+16#0A0A uugurmukhi
+16#0A0F eegurmukhi
+16#0A10 aigurmukhi
+16#0A13 oogurmukhi
+16#0A14 augurmukhi
+16#0A15 kagurmukhi
+16#0A16 khagurmukhi
+16#0A17 gagurmukhi
+16#0A18 ghagurmukhi
+16#0A19 ngagurmukhi
+16#0A1A cagurmukhi
+16#0A1B chagurmukhi
+16#0A1C jagurmukhi
+16#0A1D jhagurmukhi
+16#0A1E nyagurmukhi
+16#0A1F ttagurmukhi
+16#0A20 tthagurmukhi
+16#0A21 ddagurmukhi
+16#0A22 ddhagurmukhi
+16#0A23 nnagurmukhi
+16#0A24 tagurmukhi
+16#0A25 thagurmukhi
+16#0A26 dagurmukhi
+16#0A27 dhagurmukhi
+16#0A28 nagurmukhi
+16#0A2A pagurmukhi
+16#0A2B phagurmukhi
+16#0A2C bagurmukhi
+16#0A2D bhagurmukhi
+16#0A2E magurmukhi
+16#0A2F yagurmukhi
+16#0A30 ragurmukhi
+16#0A32 lagurmukhi
+16#0A35 vagurmukhi
+16#0A36 shagurmukhi
+16#0A38 sagurmukhi
+16#0A39 hagurmukhi
+16#0A3C nuktagurmukhi
+16#0A3E aamatragurmukhi
+16#0A3F imatragurmukhi
+16#0A40 iimatragurmukhi
+16#0A41 umatragurmukhi
+16#0A42 uumatragurmukhi
+16#0A47 eematragurmukhi
+16#0A48 aimatragurmukhi
+16#0A4B oomatragurmukhi
+16#0A4C aumatragurmukhi
+16#0A4D halantgurmukhi
+16#0A59 khhagurmukhi
+16#0A5A ghhagurmukhi
+16#0A5B zagurmukhi
+16#0A5C rragurmukhi
+16#0A5E fagurmukhi
+16#0A66 zerogurmukhi
+16#0A67 onegurmukhi
+16#0A68 twogurmukhi
+16#0A69 threegurmukhi
+16#0A6A fourgurmukhi
+16#0A6B fivegurmukhi
+16#0A6C sixgurmukhi
+16#0A6D sevengurmukhi
+16#0A6E eightgurmukhi
+16#0A6F ninegurmukhi
+16#0A70 tippigurmukhi
+16#0A71 addakgurmukhi
+16#0A72 irigurmukhi
+16#0A73 uragurmukhi
+16#0A74 ekonkargurmukhi
+16#0A81 candrabindugujarati
+16#0A82 anusvaragujarati
+16#0A83 visargagujarati
+16#0A85 agujarati
+16#0A86 aagujarati
+16#0A87 igujarati
+16#0A88 iigujarati
+16#0A89 ugujarati
+16#0A8A uugujarati
+16#0A8B rvocalicgujarati
+16#0A8D ecandragujarati
+16#0A8F egujarati
+16#0A90 aigujarati
+16#0A91 ocandragujarati
+16#0A93 ogujarati
+16#0A94 augujarati
+16#0A95 kagujarati
+16#0A96 khagujarati
+16#0A97 gagujarati
+16#0A98 ghagujarati
+16#0A99 ngagujarati
+16#0A9A cagujarati
+16#0A9B chagujarati
+16#0A9C jagujarati
+16#0A9D jhagujarati
+16#0A9E nyagujarati
+16#0A9F ttagujarati
+16#0AA0 tthagujarati
+16#0AA1 ddagujarati
+16#0AA2 ddhagujarati
+16#0AA3 nnagujarati
+16#0AA4 tagujarati
+16#0AA5 thagujarati
+16#0AA6 dagujarati
+16#0AA7 dhagujarati
+16#0AA8 nagujarati
+16#0AAA pagujarati
+16#0AAB phagujarati
+16#0AAC bagujarati
+16#0AAD bhagujarati
+16#0AAE magujarati
+16#0AAF yagujarati
+16#0AB0 ragujarati
+16#0AB2 lagujarati
+16#0AB3 llagujarati
+16#0AB5 vagujarati
+16#0AB6 shagujarati
+16#0AB7 ssagujarati
+16#0AB8 sagujarati
+16#0AB9 hagujarati
+16#0ABC nuktagujarati
+16#0ABE aavowelsigngujarati
+16#0ABF ivowelsigngujarati
+16#0AC0 iivowelsigngujarati
+16#0AC1 uvowelsigngujarati
+16#0AC2 uuvowelsigngujarati
+16#0AC3 rvocalicvowelsigngujarati
+16#0AC4 rrvocalicvowelsigngujarati
+16#0AC5 ecandravowelsigngujarati
+16#0AC7 evowelsigngujarati
+16#0AC8 aivowelsigngujarati
+16#0AC9 ocandravowelsigngujarati
+16#0ACB ovowelsigngujarati
+16#0ACC auvowelsigngujarati
+16#0ACD viramagujarati
+16#0AD0 omgujarati
+16#0AE0 rrvocalicgujarati
+16#0AE6 zerogujarati
+16#0AE7 onegujarati
+16#0AE8 twogujarati
+16#0AE9 threegujarati
+16#0AEA fourgujarati
+16#0AEB fivegujarati
+16#0AEC sixgujarati
+16#0AED sevengujarati
+16#0AEE eightgujarati
+16#0AEF ninegujarati
+16#0E00 0.0
+16#0E01 kokaithai afii59681
+16#0E02 khokhaithai afii59682
+16#0E03 khokhuatthai afii59683
+16#0E04 khokhwaithai afii59684
+16#0E05 khokhonthai afii59685
+16#0E06 khorakhangthai afii59686
+16#0E07 ngonguthai afii59687
+16#0E08 chochanthai afii59688
+16#0E09 chochingthai afii59689
+16#0E0A chochangthai afii59690
+16#0E0B sosothai afii59691
+16#0E0C chochoethai afii59692
+16#0E0D yoyingthai afii59693
+16#0E0E dochadathai afii59694
+16#0E0F topatakthai afii59695
+16#0E10 thothanthai afii59696
+16#0E11 thonangmonthothai afii59697
+16#0E12 thophuthaothai afii59698
+16#0E13 nonenthai afii59699
+16#0E14 dodekthai afii59700
+16#0E15 totaothai afii59701
+16#0E16 thothungthai afii59702
+16#0E17 thothahanthai afii59703
+16#0E18 thothongthai afii59704
+16#0E19 nonuthai afii59705
+16#0E1A bobaimaithai afii59706
+16#0E1B poplathai afii59707
+16#0E1C phophungthai afii59708
+16#0E1D fofathai afii59709
+16#0E1E phophanthai afii59710
+16#0E1F fofanthai afii59711
+16#0E20 phosamphaothai afii59712
+16#0E21 momathai afii59713
+16#0E22 yoyakthai afii59714
+16#0E23 roruathai afii59715
+16#0E24 ruthai afii59716
+16#0E25 lolingthai afii59717
+16#0E26 luthai afii59718
+16#0E27 wowaenthai afii59719
+16#0E28 sosalathai afii59720
+16#0E29 sorusithai afii59721
+16#0E2A sosuathai afii59722
+16#0E2B hohipthai afii59723
+16#0E2C lochulathai afii59724
+16#0E2D oangthai afii59725
+16#0E2E honokhukthai afii59726
+16#0E2F paiyannoithai afii59727
+16#0E30 saraathai afii59729
+16#0E31 maihanakatthai afii59728
+16#0E32 saraaathai afii59730
+16#0E33 saraamthai afii59731
+16#0E34 saraithai afii59732
+16#0E35 saraiithai afii59733
+16#0E36 sarauethai afii59734
+16#0E37 saraueethai afii59735
+16#0E38 sarauthai afii59736
+16#0E39 sarauuthai afii59737
+16#0E3A phinthuthai afii59738
+16#0E3F bahtthai afii59743
+16#0E40 saraethai afii59744
+16#0E41 saraaethai afii59745
+16#0E42 saraothai afii59746
+16#0E43 saraaimaimuanthai afii59747
+16#0E44 saraaimaimalaithai afii59748
+16#0E45 lakkhangyaothai afii59749
+16#0E46 maiyamokthai afii59750
+16#0E47 maitaikhuthai afii59751
+16#0E48 maiekthai afii59752
+16#0E49 maithothai afii59753
+16#0E4A maitrithai afii59754
+16#0E4B maichattawathai afii59755
+16#0E4C thanthakhatthai afii59756
+16#0E4D nikhahitthai afii59757
+16#0E4E yamakkanthai afii59758
+16#0E4F fongmanthai afii59759
+16#0E50 zerothai afii59760
+16#0E51 onethai afii59761
+16#0E52 twothai afii59762
+16#0E53 threethai afii59763
+16#0E54 fourthai afii59764
+16#0E55 fivethai afii59765
+16#0E56 sixthai afii59766
+16#0E57 seventhai afii59767
+16#0E58 eightthai afii59768
+16#0E59 ninethai afii59769
+16#0E5A angkhankhuthai afii59770
+16#0E5B khomutthai afii59771
+16#1E00 Aringbelow
+16#1E01 aringbelow
+16#1E02 Bdotaccent
+16#1E03 bdotaccent
+16#1E04 Bdotbelow
+16#1E05 bdotbelow
+16#1E06 Blinebelow
+16#1E07 blinebelow
+16#1E08 Ccedillaacute
+16#1E09 ccedillaacute
+16#1E0A Ddotaccent
+16#1E0B ddotaccent
+16#1E0C Ddotbelow
+16#1E0D ddotbelow
+16#1E0E Dlinebelow
+16#1E0F dlinebelow
+16#1E10 Dcedilla
+16#1E11 dcedilla
+16#1E12 Dcircumflexbelow
+16#1E13 dcircumflexbelow
+16#1E14 Emacrongrave
+16#1E15 emacrongrave
+16#1E16 Emacronacute
+16#1E17 emacronacute
+16#1E18 Ecircumflexbelow
+16#1E19 ecircumflexbelow
+16#1E1A Etildebelow
+16#1E1B etildebelow
+16#1E1C Ecedillabreve
+16#1E1D ecedillabreve
+16#1E1E Fdotaccent
+16#1E1F fdotaccent
+16#1E20 Gmacron
+16#1E21 gmacron
+16#1E22 Hdotaccent
+16#1E23 hdotaccent
+16#1E24 Hdotbelow
+16#1E25 hdotbelow
+16#1E26 Hdieresis
+16#1E27 hdieresis
+16#1E28 Hcedilla
+16#1E29 hcedilla
+16#1E2A Hbrevebelow
+16#1E2B hbrevebelow
+16#1E2C Itildebelow
+16#1E2D itildebelow
+16#1E2E Idieresisacute
+16#1E2F idieresisacute
+16#1E30 Kacute
+16#1E31 kacute
+16#1E32 Kdotbelow
+16#1E33 kdotbelow
+16#1E34 Klinebelow
+16#1E35 klinebelow
+16#1E36 Ldotbelow
+16#1E37 ldotbelow
+16#1E38 Ldotbelowmacron
+16#1E39 ldotbelowmacron
+16#1E3A Llinebelow
+16#1E3B llinebelow
+16#1E3C Lcircumflexbelow
+16#1E3D lcircumflexbelow
+16#1E3E Macute
+16#1E3F macute
+16#1E40 Mdotaccent
+16#1E41 mdotaccent
+16#1E42 Mdotbelow
+16#1E43 mdotbelow
+16#1E44 Ndotaccent
+16#1E45 ndotaccent
+16#1E46 Ndotbelow
+16#1E47 ndotbelow
+16#1E48 Nlinebelow
+16#1E49 nlinebelow
+16#1E4A Ncircumflexbelow
+16#1E4B ncircumflexbelow
+16#1E4C Otildeacute
+16#1E4D otildeacute
+16#1E4E Otildedieresis
+16#1E4F otildedieresis
+16#1E50 Omacrongrave
+16#1E51 omacrongrave
+16#1E52 Omacronacute
+16#1E53 omacronacute
+16#1E54 Pacute
+16#1E55 pacute
+16#1E56 Pdotaccent
+16#1E57 pdotaccent
+16#1E58 Rdotaccent
+16#1E59 rdotaccent
+16#1E5A Rdotbelow
+16#1E5B rdotbelow
+16#1E5C Rdotbelowmacron
+16#1E5D rdotbelowmacron
+16#1E5E Rlinebelow
+16#1E5F rlinebelow
+16#1E60 Sdotaccent
+16#1E61 sdotaccent
+16#1E62 Sdotbelow
+16#1E63 sdotbelow
+16#1E64 Sacutedotaccent
+16#1E65 sacutedotaccent
+16#1E66 Scarondotaccent
+16#1E67 scarondotaccent
+16#1E68 Sdotbelowdotaccent
+16#1E69 sdotbelowdotaccent
+16#1E6A Tdotaccent
+16#1E6B tdotaccent
+16#1E6C Tdotbelow
+16#1E6D tdotbelow
+16#1E6E Tlinebelow
+16#1E6F tlinebelow
+16#1E70 Tcircumflexbelow
+16#1E71 tcircumflexbelow
+16#1E72 Udieresisbelow
+16#1E73 udieresisbelow
+16#1E74 Utildebelow
+16#1E75 utildebelow
+16#1E76 Ucircumflexbelow
+16#1E77 ucircumflexbelow
+16#1E78 Utildeacute
+16#1E79 utildeacute
+16#1E7A Umacrondieresis
+16#1E7B umacrondieresis
+16#1E7C Vtilde
+16#1E7D vtilde
+16#1E7E Vdotbelow
+16#1E7F vdotbelow
+16#1E80 Wgrave
+16#1E81 wgrave
+16#1E82 Wacute
+16#1E83 wacute
+16#1E84 Wdieresis
+16#1E85 wdieresis
+16#1E86 Wdotaccent
+16#1E87 wdotaccent
+16#1E88 Wdotbelow
+16#1E89 wdotbelow
+16#1E8A Xdotaccent
+16#1E8B xdotaccent
+16#1E8C Xdieresis
+16#1E8D xdieresis
+16#1E8E Ydotaccent
+16#1E8F ydotaccent
+16#1E90 Zcircumflex
+16#1E91 zcircumflex
+16#1E92 Zdotbelow
+16#1E93 zdotbelow
+16#1E94 Zlinebelow
+16#1E95 zlinebelow
+16#1E96 hlinebelow
+16#1E97 tdieresis
+16#1E98 wring
+16#1E99 yring
+16#1E9A arighthalfring
+16#1E9B slongdotaccent
+16#1EA0 Adotbelow
+16#1EA1 adotbelow
+16#1EA2 Ahookabove
+16#1EA3 ahookabove
+16#1EA4 Acircumflexacute
+16#1EA5 acircumflexacute
+16#1EA6 Acircumflexgrave
+16#1EA7 acircumflexgrave
+16#1EA8 Acircumflexhookabove
+16#1EA9 acircumflexhookabove
+16#1EAA Acircumflextilde
+16#1EAB acircumflextilde
+16#1EAC Acircumflexdotbelow
+16#1EAD acircumflexdotbelow
+16#1EAE Abreveacute
+16#1EAF abreveacute
+16#1EB0 Abrevegrave
+16#1EB1 abrevegrave
+16#1EB2 Abrevehookabove
+16#1EB3 abrevehookabove
+16#1EB4 Abrevetilde
+16#1EB5 abrevetilde
+16#1EB6 Abrevedotbelow
+16#1EB7 abrevedotbelow
+16#1EB8 Edotbelow
+16#1EB9 edotbelow
+16#1EBA Ehookabove
+16#1EBB ehookabove
+16#1EBC Etilde
+16#1EBD etilde
+16#1EBE Ecircumflexacute
+16#1EBF ecircumflexacute
+16#1EC0 Ecircumflexgrave
+16#1EC1 ecircumflexgrave
+16#1EC2 Ecircumflexhookabove
+16#1EC3 ecircumflexhookabove
+16#1EC4 Ecircumflextilde
+16#1EC5 ecircumflextilde
+16#1EC6 Ecircumflexdotbelow
+16#1EC7 ecircumflexdotbelow
+16#1EC8 Ihookabove
+16#1EC9 ihookabove
+16#1ECA Idotbelow
+16#1ECB idotbelow
+16#1ECC Odotbelow
+16#1ECD odotbelow
+16#1ECE Ohookabove
+16#1ECF ohookabove
+16#1ED0 Ocircumflexacute
+16#1ED1 ocircumflexacute
+16#1ED2 Ocircumflexgrave
+16#1ED3 ocircumflexgrave
+16#1ED4 Ocircumflexhookabove
+16#1ED5 ocircumflexhookabove
+16#1ED6 Ocircumflextilde
+16#1ED7 ocircumflextilde
+16#1ED8 Ocircumflexdotbelow
+16#1ED9 ocircumflexdotbelow
+16#1EDA Ohornacute
+16#1EDB ohornacute
+16#1EDC Ohorngrave
+16#1EDD ohorngrave
+16#1EDE Ohornhookabove
+16#1EDF ohornhookabove
+16#1EE0 Ohorntilde
+16#1EE1 ohorntilde
+16#1EE2 Ohorndotbelow
+16#1EE3 ohorndotbelow
+16#1EE4 Udotbelow
+16#1EE5 udotbelow
+16#1EE6 Uhookabove
+16#1EE7 uhookabove
+16#1EE8 Uhornacute
+16#1EE9 uhornacute
+16#1EEA Uhorngrave
+16#1EEB uhorngrave
+16#1EEC Uhornhookabove
+16#1EED uhornhookabove
+16#1EEE Uhorntilde
+16#1EEF uhorntilde
+16#1EF0 Uhorndotbelow
+16#1EF1 uhorndotbelow
+16#1EF2 Ygrave
+16#1EF3 ygrave
+16#1EF4 Ydotbelow
+16#1EF5 ydotbelow
+16#1EF6 Yhookabove
+16#1EF7 yhookabove
+16#1EF8 Ytilde
+16#1EF9 ytilde
+16#2000 enquad
+16#2001 emquad
+16#2002 enspace
+16#2003 emspace
+16#2004 threeperemspace
+16#2005 fourperemspace
+16#2006 sixperemspace
+16#2007 figurespace
+16#2008 punctuationspace
+16#2009 thinspace
+16#200A hairspace
+16#200B zerowidthspace zerospace
+16#200C afii61664 zerowidthnonjoiner zeronojoin
+16#200D afii301 zerojoin
+16#200E afii299 lefttoright
+16#200F afii300 righttoleft
+16#2010 hyphentwo hyphen1
+16#2011 hyphennobreak nbhyphen
+16#2012 figuredash
+16#2013 endash SS680000
+16#2014 emdash SM900000
+16#2015 afii00208 horizontalbar longdash quotedash
+16#2016 dblverticalbar verticalbardbl vertlinedbl
+16#2017 underscoredbl dbllowline SM100000
+16#2018 quoteleft SP190000 quotesinglleft
+16#2019 quoteright SP200000 quotesinglright
+16#201A quotesinglbase SP260000
+16#201B quotereversed quoteleftreversed quotesinglrev
+16#201C quotedblleft SP210000
+16#201D quotedblright SP220000
+16#201E quotedblbase SP230000
+16#201F quotedblrev
+16#2020 dagger SM340000
+16#2021 daggerdbl SM350000
+16#2022 bullet SM570000
+16#2023 trianglebullet
+16#2024 onedotenleader onedotlead onedotleader
+16#2025 twodotenleader twodotleader twodotlead
+16#2026 ellipsis SV520000
+16#2027 hyphendot
+16#2028 lineseparator
+16#2029 paragraphseparator
+16#202A lre
+16#202B rle
+16#202C afii61573 pdf
+16#202D afii61574 lro
+16#202E afii61575 rlo
+16#2030 perthousand SM560000
+16#2031 pertenthousand
+16#2032 minute prime1 prime
+16#2033 second primedbl1 primedbl
+16#2034 primetripl1 primetripl
+16#2035 primereversed minuterev primerev1 primerev
+16#2036 primedblrev1 primedblrev secondrev
+16#2037 primetriplerev1 primetriplerev
+16#2038 caret
+16#2039 guilsinglleft SP270000
+16#203A guilsinglright SP280000
+16#203B referencemark refmark
+16#203C exclamdbl SP330000
+16#203D interrobang
+16#203E overline
+16#203F undertie
+16#2040 tie tie1
+16#2041 caretinsert
+16#2042 asterism
+16#2043 hyphenbullet
+16#2044 fraction fraction1
+16#2045 bracketleftquill
+16#2046 bracketrightquill
+16#2070 zerosuperior
+16#2074 foursuperior
+16#2075 fivesuperior
+16#2076 sixsuperior
+16#2077 sevensuperior
+16#2078 eightsuperior
+16#2079 ninesuperior
+16#207A plussuperior
+16#207B minussuperior
+16#207C equalsuperior
+16#207D parenleftsuperior
+16#207E parenrightsuperior
+16#207F nsuperior LN011000
+16#2080 zeroinferior zerosub
+16#2081 oneinferior onesub
+16#2082 twoinferior twosub
+16#2083 threeinferior threesub
+16#2084 fourinferior foursub
+16#2085 fiveinferior fivesub
+16#2086 sixinferior sixsub
+16#2087 seveninferior sevensub
+16#2088 eightinferior eightsub
+16#2089 nineinferior ninesub
+16#208A plussub plusinferior
+16#208B minussub minusinferior
+16#208C equalsub equalinferior
+16#208D parenleftinferior parenleftsub
+16#208E parenrightinferior parenrightsub
+16#20A0 eurocurrency
+16#20A1 colonmonetary colonsign coloncurrency Colonmonetary coloncur
+16#20A2 cruzeiro
+16#20A3 franc
+16#20A4 lira afii08941
+16#20A5 mill
+16#20A6 naira
+16#20A7 peseta SC060000 Pts pesetas
+16#20A8 rupees rupee
+16#20A9 won
+16#20AA afii57636 newsheqelsign sheqel sheqelhebrew newsheqel
+16#20AB dong
+16#20AC Euro euro
+16#2100 accountof
+16#2101 addresssubject
+16#2102 Cbb Cdblstruck
+16#2103 centigrade degreecentigrade celsius
+16#2104 centreline CL
+16#2105 afii61248 careof
+16#2106 cadauna
+16#2107 Euler
+16#2108 scruple
+16#2109 fahrenheit degreefarenheit degreefahrenheit farenheit
+16#210A gscriptmath
+16#210B Hscript
+16#210C Hfractur Hfraktur Hblackletter
+16#210D Hdblstruck Hbb
+16#210E planck
+16#210F planckover2pi
+16#2110 Iscript
+16#2111 Ifraktur Ifractur Iblackletter
+16#2112 Lscript
+16#2113 afii61289 lsquare lscript liter
+16#2114 lbbar
+16#2115 Ndblstruck Nbb
+16#2116 afii61352 numero
+16#2117 recordright soundcopyright
+16#2118 weierstrass Pscript
+16#2119 Pdblstruck Pbb
+16#211A Qdblstruck Qbb
+16#211B Rscript
+16#211C Rfraktur Rblackletter Rfractur
+16#211D Rdblstruck Rbb
+16#211E prescription Rx
+16#211F response
+16#2120 servicemark
+16#2121 telephone tel
+16#2122 trademark SM540000
+16#2123 versicle
+16#2124 Zbb Zdblstruck
+16#2125 ounce
+16#2126 Omega Ohm ohm
+16#2127 Omegainv ohminverted mho
+16#2128 Zfraktur Zblackletter Zfractur
+16#2129 iotaturn
+16#212A kelvin degreekelvin
+16#212B angstrom
+16#212C Bscript
+16#212D Cblackletter Cfraktur Cfractur
+16#212E estimated
+16#212F escript
+16#2130 Escript
+16#2131 Fscript
+16#2132 Fturn
+16#2133 Mscript
+16#2134 oscript 0script
+16#2135 aleph alephmath
+16#2136 bethmath
+16#2137 gimelmath
+16#2138 dalethmath
+16#2153 onethird
+16#2154 twothirds
+16#2155 onefifth
+16#2156 twofifths
+16#2157 threefifths
+16#2158 fourfifths
+16#2159 onesixth
+16#215A fivesixth
+16#215B oneeighth
+16#215C threeeighths
+16#215D fiveeighths
+16#215E seveneighths
+16#2160 Oneroman
+16#2161 Tworoman
+16#2162 Threeroman
+16#2163 Fourroman
+16#2164 Fiveroman
+16#2165 Sixroman
+16#2166 Sevenroman
+16#2167 Eightroman
+16#2168 Nineroman
+16#2169 Tenroman
+16#216A Elevenroman
+16#216B Twelveroman
+16#2170 oneroman
+16#2171 tworoman
+16#2172 threeroman
+16#2173 fourroman
+16#2174 fiveroman
+16#2175 sixroman
+16#2176 sevenroman
+16#2177 eightroman
+16#2178 nineroman
+16#2179 tenroman
+16#217A elevenroman
+16#217B twelveroman
+16#2190 arrowleft
+16#2191 arrowup
+16#2192 arrowright a161
+16#2193 arrowdown
+16#2194 arrowboth a163
+16#2195 arrowupdn a164
+16#2196 arrowupleft
+16#2197 arrowupright
+16#2198 arrowdownright
+16#2199 arrowdownleft
+16#21A8 arrowupdnbse arrowupdownbase
+16#21B4 arrowrightdown
+16#21B5 carriagereturn carriagerreturn
+16#21B6 arrowsemanticlockw
+16#21B7 arrowsemclockw
+16#21B8 home
+16#21B9 tableftright
+16#21BA arrowanticlockw
+16#21BB arrowclockw
+16#21BC harpoonleftbarbup arrowlefttophalf
+16#21BD arrowleftbothalf
+16#21BE harpoonupright
+16#21BF harpoonupleft
+16#21C0 harpoonrightbarbup arrowrighttophalf
+16#21C1 arrowrightbothalf
+16#21C2 harpoondownright
+16#21C3 harpoondownleft
+16#21C4 arrowrightoverleft arrowparrrightleft
+16#21C5 arrowupleftofdown dblarrowupdown
+16#21C6 arrowleftoverright arrowparrleftright
+16#21C8 dblarrowup
+16#21CA dblarrowdown
+16#21CB harpoonleftright
+16#21CC harpoonrightleft
+16#21CD arrowleftdblstroke arrowdblleftnot
+16#21CE arrowdbllongbothnot
+16#21CF arrowrightdblstroke arrowdblrightnot
+16#21D0 arrowdblleft arrowleftdbl
+16#21D1 arrowdblup
+16#21D2 arrowdblright dblarrowright
+16#21D3 arrowdbldown
+16#21D4 arrowdblboth dblarrowleft arrowdbllongboth
+16#21D5 arrowdbllongbothv
+16#21D6 arrowdblnw
+16#21D7 arrowdblne
+16#21D8 arrowdblse
+16#21D9 arrowdblsw
+16#21DA arrowtripleleft
+16#21DB arrowtripleright
+16#21DC arrowsquiggleleft
+16#21DD arrowsquiggleright
+16#21DE pageup
+16#21DF pagedown
+16#21E0 arrowdashleft
+16#21E1 arrowdashup
+16#21E2 arrowdashright
+16#21E3 arrowdashdown
+16#21E4 arrowtableft
+16#21E5 arrowtabright
+16#21E6 arrowleftwhite arrowopenleft
+16#21E7 arrowupwhite arrowopenup
+16#21E8 arrowrightwhite arrowopenright
+16#21E9 arrowdownwhite arrowopendown
+16#21EA capslock
+16#2200 universal forall
+16#2201 complement
+16#2202 partialdiff
+16#2203 existential thereexists
+16#2204 notexistential
+16#2205 emptyset
+16#2206 Delta increment
+16#2207 gradient nabla
+16#2208 element
+16#2209 notelement notelementof
+16#220A elementsmall smallelement
+16#220B suchthat owner contains
+16#220C notcontains notowner notsuchthat
+16#220D ownersmall smallcontains
+16#220E eop endofproof
+16#220F product
+16#2210 coproduct
+16#2211 summation
+16#2212 minus
+16#2213 minusplus
+16#2214 dotplus
+16#2215 divisionslash slashmath
+16#2216 setminus backslashmath
+16#2217 asteriskmath
+16#2218 openbullet1 ringmath
+16#2219 bulletoperator productdot bulletmath
+16#221A radical squareroot
+16#221B cuberoot
+16#221C fourthroot
+16#221D proportional
+16#221E infinity
+16#221F orthogonal rightangle
+16#2220 angle
+16#2221 measuredangle
+16#2222 sphericalangle
+16#2223 divides bar1
+16#2224 notbar notdivides
+16#2225 parallel bardbl2
+16#2226 notparallel notbardbl
+16#2227 logicaland
+16#2228 logicalor
+16#2229 intersection
+16#222A union
+16#222B integral
+16#222C dblintegral integraldbl doubleintegral
+16#222D tripleintegral integraltrpl
+16#222E contourintegral contintegral
+16#222F surfintegral surfaceintegral
+16#2230 volintegral volumeintegral
+16#2231 clwintegral
+16#2232 clwcontintegral
+16#2233 cclwcontintegral
+16#2234 therefore
+16#2235 because
+16#2236 ratio
+16#2237 proportion
+16#2238 dotminus
+16#2239 excess
+16#223A geomproportion proportiongeom
+16#223B homothetic
+16#223C similar tildeoperator tildemath
+16#223D reversedtilde revsimilar tildereversed
+16#223E Sinvlazy lazysinv
+16#223F sine sinewave
+16#2240 wreathproduct
+16#2241 notsimilar
+16#2242 minustilde
+16#2243 asymptoticallyequal similarequal approxequalalt asymptequal
+16#2244 notasymptequal
+16#2245 congruent approximatelyequal approxorequal
+16#2246 approxnotequal
+16#2247 notapproxequal
+16#2248 approxequal almostequal
+16#2249 notalmostequal
+16#224A almostorequal
+16#224B tildetrpl
+16#224C allequal
+16#224D equivasymptotic
+16#224E geomequivalent
+16#224F difference
+16#2250 approaches approachlimit
+16#2251 geometricallyequal geomequal
+16#2252 approxequalorimage
+16#2253 imageorapproximatelyequal imageorapproxequal
+16#2254 colonequal
+16#2255 equalcolon
+16#2256 ringinequal
+16#2257 ringequal
+16#2258 corresponds
+16#2259 estimates
+16#225A equiangular
+16#225B starequal
+16#225C deltaequal
+16#225D definequal
+16#225E measurequal
+16#225F questionequal
+16#2260 notequal
+16#2261 equivalence
+16#2262 notidentical notequivalence
+16#2263 strictequivalence
+16#2264 lessequal
+16#2265 greaterequal
+16#2266 lessoverequal lessdblequal
+16#2267 greateroverequal greaterdblequal
+16#2268 lessnotdblequal
+16#2269 greaternotdblequal
+16#226A muchless lessmuch
+16#226B muchgreater greatermuch
+16#226C between
+16#226D notequivasymptotic
+16#226E notless
+16#226F notgreater
+16#2270 notlessnorequal notlessequal1
+16#2271 notgreaternorequal notgreaterequal1
+16#2272 lessorequivalent lessequivlnt
+16#2273 greaterorequivalent greaterequivlnt
+16#2274 notlessequivlnt
+16#2275 notgreaterequivlnt
+16#2276 lessorgreater
+16#2277 greaterorless
+16#2278 notlessgreater
+16#2279 notgreaternorless notgreaterless
+16#227A precedes
+16#227B succeeds follows
+16#227C precedesequal1
+16#227D followsequal1
+16#227E precedequivlnt
+16#227F followsequivlnt
+16#2280 notprecedes notpreceeds
+16#2281 notsucceeds notfollows
+16#2282 propersubset subset
+16#2283 propersuperset superset
+16#2284 notsubset notpropersubset
+16#2285 notsuperset notpropersuperset
+16#2286 reflexsubset subsetorequal
+16#2287 reflexsuperset supersetorequal
+16#2288 notreflexsubset
+16#2289 notreflexsuperset
+16#228A subsetnotequal
+16#228B supersetnotequal
+16#228C multiset
+16#228D multiplymultiset
+16#228E unionmulti
+16#228F squareimage
+16#2290 squareoriginal
+16#2291 subsetsqequal
+16#2292 supersetsqequal
+16#2293 intersectionsq
+16#2294 unionsq
+16#2295 circleplus pluscircle
+16#2296 minuscircle circleminus
+16#2297 circlemultiply timescircle
+16#2298 circledivide
+16#2299 circleot circledot
+16#229A circlering
+16#229B circleasterisk
+16#229C circleequal
+16#229D circleminus1
+16#229E squareplus
+16#229F squareminus
+16#22A0 squaremultiply
+16#22A1 squaredot
+16#22A2 turnstileleft
+16#22A3 tackleft turnstileright
+16#22A4 tackdown latticetop
+16#22A5 perpendicular
+16#22A6 assertion
+16#22A7 truestate
+16#22A8 satisfy
+16#22A9 force
+16#22AA tacktrpl
+16#22AB forceextr
+16#22AC notturnstileleft
+16#22AD notsatisfy
+16#22AE notforce
+16#22AF notforceextr
+16#22B0 lowerrank
+16#22B1 higherrank
+16#22B2 triangleright
+16#22B3 triangleleft
+16#22B4 triangleftequal
+16#22B5 triangrightequal
+16#22B6 original
+16#22B7 image
+16#22B8 multimap
+16#22B9 hermitconjmatrix
+16#22BA intercal
+16#22BB orunderscore xor
+16#22BC nand
+16#22BD nor
+16#22BE rightanglearc
+16#22BF righttriangle
+16#22C0 narylogicaland
+16#22C1 narylogicalor
+16#22C2 naryintersection
+16#22C3 naryunion
+16#22C4 diamondmath
+16#22C5 dotmath
+16#22C6 star
+16#22C7 divideonmultiply
+16#22C8 bowtie
+16#22C9 multicloseleft
+16#22CA multicloseright
+16#22CB multiopenleft
+16#22CC multiopenright
+16#22CD revasymptequal
+16#22CE curlyor curlor
+16#22CF curlyand curland
+16#22D0 subsetdbl
+16#22D1 supersetdbl
+16#22D2 uniondbl
+16#22D3 intersectiondbl
+16#22D4 fork
+16#22D5 equalparallel
+16#22D6 lessdot
+16#22D7 greaterdot
+16#22D8 verymuchless
+16#22D9 verymuchgreater
+16#22DA lessequalorgreater lessequalgreater
+16#22DB greaterequalorless greaterequalless
+16#22DC equalless
+16#22DD equalgreater
+16#22DE equalprecedes1
+16#22DF equalfollows1
+16#22E0 preceedsnotequal
+16#22E1 followsnotequal
+16#22E2 notsubsetsqequal
+16#22E3 notsupersetsqequal
+16#22E4 sqimageornotequal
+16#22E5 sqoriginornotequal
+16#22E6 lessnotequivlnt
+16#22E7 greaternotequivlnt
+16#22E8 preceedsnotsimilar
+16#22E9 followsnotequivlnt
+16#22EA nottriangleleft
+16#22EB nottriangleright
+16#22EC nottriangleleftequal
+16#22ED nottrianglerightequal
+16#22EE ellipsisvertical vertellipsis
+16#22EF midhorizellipsis
+16#22F0 upslopeellipsis
+16#22F1 downslopeellipsis
+16#2302 house SM790000
+16#2303 control
+16#2305 projective
+16#2306 perspcorrespond
+16#2308 ceilingleft
+16#2309 ceilingright
+16#230A floorleft
+16#230B floorright
+16#2310 revlogicalnot logicalnotreversed
+16#2312 arc
+16#2318 propellor
+16#2320 integraltp integraltop SS260000
+16#2321 integralbt integralbottom SS270000
+16#2322 slurabove
+16#2323 slurbelow
+16#2325 option
+16#2326 deleteright
+16#2327 clear
+16#2329 angleleft
+16#232A angleright
+16#232B deleteleft
+16#2423 blank
+16#2460 onecircle a120
+16#2461 twocircle a121
+16#2462 threecircle a122
+16#2463 fourcircle a123
+16#2464 fivecircle a124
+16#2465 sixcircle a125
+16#2466 sevencircle a126
+16#2467 eightcircle a127
+16#2468 ninecircle a128
+16#2469 tencircle a129
+16#246A elevencircle
+16#246B twelvecircle
+16#246C thirteencircle
+16#246D fourteencircle
+16#246E fifteencircle
+16#246F sixteencircle
+16#2470 seventeencircle
+16#2471 eighteencircle
+16#2472 nineteencircle
+16#2473 twentycircle
+16#2474 oneparen
+16#2475 twoparen
+16#2476 threeparen
+16#2477 fourparen
+16#2478 fiveparen
+16#2479 sixparen
+16#247A sevenparen
+16#247B eightparen
+16#247C nineparen
+16#247D tenparen
+16#247E elevenparen
+16#247F twelveparen
+16#2480 thirteenparen
+16#2481 fourteenparen
+16#2482 fifteenparen
+16#2483 sixteenparen
+16#2484 seventeenparen
+16#2485 eighteenparen
+16#2486 nineteenparen
+16#2487 twentyparen
+16#2488 oneperiod
+16#2489 twoperiod
+16#248A threeperiod
+16#248B fourperiod
+16#248C fiveperiod
+16#248D sixperiod
+16#248E sevenperiod
+16#248F eightperiod
+16#2490 nineperiod
+16#2491 tenperiod
+16#2492 elevenperiod
+16#2493 twelveperiod
+16#2494 thirteenperiod
+16#2495 fourteenperiod
+16#2496 fifteenperiod
+16#2497 sixteenperiod
+16#2498 seventeenperiod
+16#2499 eighteenperiod
+16#249A nineteenperiod
+16#249B twentyperiod
+16#249C aparen
+16#249D bparen
+16#249E cparen
+16#249F dparen
+16#24A0 eparen
+16#24A1 fparen
+16#24A2 gparen
+16#24A3 hparen
+16#24A4 iparen
+16#24A5 jparen
+16#24A6 kparen
+16#24A7 lparen
+16#24A8 mparen
+16#24A9 nparen
+16#24AA oparen
+16#24AB pparen
+16#24AC qparen
+16#24AD rparen
+16#24AE sparen
+16#24AF tparen
+16#24B0 uparen
+16#24B1 vparen
+16#24B2 wparen
+16#24B3 xparen
+16#24B4 yparen
+16#24B5 zparen
+16#24B6 Acircle
+16#24B7 Bcircle
+16#24B8 Ccircle
+16#24B9 Dcircle
+16#24BA Ecircle
+16#24BB Fcircle
+16#24BC Gcircle
+16#24BD Hcircle
+16#24BE Icircle
+16#24BF Jcircle
+16#24C0 Kcircle
+16#24C1 Lcircle
+16#24C2 Mcircle
+16#24C3 Ncircle
+16#24C4 Ocircle
+16#24C5 Pcircle
+16#24C6 Qcircle
+16#24C7 Rcircle
+16#24C8 Scircle
+16#24C9 Tcircle
+16#24CA Ucircle
+16#24CB Vcircle
+16#24CC Wcircle
+16#24CD Xcircle
+16#24CE Ycircle
+16#24CF Zcircle
+16#24D0 acircle
+16#24D1 bcircle
+16#24D2 ccircle
+16#24D3 dcircle
+16#24D4 ecircle
+16#24D5 fcircle
+16#24D6 gcircle
+16#24D7 hcircle
+16#24D8 icircle
+16#24D9 jcircle
+16#24DA kcircle
+16#24DB lcircle
+16#24DC mcircle
+16#24DD ncircle
+16#24DE ocircle
+16#24DF pcircle
+16#24E0 qcircle
+16#24E1 rcircle
+16#24E2 scircle
+16#24E3 tcircle
+16#24E4 ucircle
+16#24E5 vcircle
+16#24E6 wcircle
+16#24E7 xcircle
+16#24E8 ycircle
+16#24E9 zcircle
+16#2500 SF100000
+16#2502 SF110000
+16#250A 250a
+16#250B 250b
+16#250C SF010000 250c
+16#250D 250d
+16#250E 250e
+16#250F 250f
+16#2510 SF030000
+16#2514 SF020000
+16#2518 SF040000
+16#251A 251a
+16#251B 251b
+16#251C SF080000 251c
+16#251D 251d
+16#251E 251e
+16#251F 251f
+16#2524 SF090000
+16#252A 252a
+16#252B 252b
+16#252C SF060000 252c
+16#252D 252d
+16#252E 252e
+16#252F 252f
+16#2534 SF070000
+16#253A 253a
+16#253B 253b
+16#253C SF050000 253c
+16#253D 253d
+16#253E 253e
+16#253F 253f
+16#254A 254a
+16#254B 254b
+16#254C 254c
+16#254D 254d
+16#254E 254e
+16#254F 254f
+16#2550 SF430000
+16#2551 SF240000
+16#2552 SF510000
+16#2553 SF520000
+16#2554 SF390000
+16#2555 SF220000
+16#2556 SF210000
+16#2557 SF250000
+16#2558 SF500000
+16#2559 SF490000
+16#255A SF380000 255a
+16#255B SF280000 255b
+16#255C SF270000 255c
+16#255D SF260000 255d
+16#255E SF360000 255e
+16#255F SF370000 255f
+16#2560 SF420000
+16#2561 SF190000
+16#2562 SF200000
+16#2563 SF230000
+16#2564 SF470000
+16#2565 SF480000
+16#2566 SF410000
+16#2567 SF450000
+16#2568 SF460000
+16#2569 SF400000
+16#256A SF540000 256a
+16#256B SF530000 256b
+16#256C SF440000 256c
+16#256D 256d
+16#256E 256e
+16#256F 256f
+16#257A 257a
+16#257B 257b
+16#257C 257c
+16#257D 257d
+16#257E 257e
+16#257F 257f
+16#2580 upblock SF600000
+16#2581 dneightblock
+16#2582 dnquarterblock
+16#2583 dnthreeeighthblock
+16#2584 dnblock SF570000
+16#2585 dnfiveeighthblock
+16#2586 dnthreequarterblock
+16#2587 dnseveneighthblock
+16#2588 block SF610000
+16#2589 lfseveneighthblock
+16#258A lfthreequarterblock
+16#258B lffiveeighthblock
+16#258C lfblock SF580000
+16#258D lfthreeeighthblock
+16#258E lfquarterblock
+16#258F lfeighthblock
+16#2590 rtblock SF590000
+16#2591 ltshade shadelight SF140000
+16#2592 shade shademedium SF150000
+16#2593 dkshade shadedark SF160000
+16#2594 upeighthblock
+16#2595 rteighthblock
+16#25A0 filledbox blacksquare a73 SM470000
+16#25A1 H22073 whitesquare box
+16#25A2 boxrounded
+16#25A3 squarewhitewithsmallblack boxnested
+16#25A4 squarehorizontalfill boxhorizhatch
+16#25A5 squareverticalfill boxverthatch
+16#25A6 squareorthogonalcrosshatchfill boxcrosshatch
+16#25A7 squareupperlefttolowerrightfill boxleftdiaghatch
+16#25A8 squareupperrighttolowerleftfill boxrtdiaghatch
+16#25A9 squarediagonalcrosshatchfill boxcrossdiaghatch
+16#25AA H18543 blacksmallsquare smallboxfilled
+16#25AB H18551 whitesmallsquare smallbox
+16#25AC filledrect blackrectangle SM700000
+16#25AD rectangle
+16#25AE filledvertrect
+16#25AF vertrectangle
+16#25B0 filledparallelogram
+16#25B1 parallelogram
+16#25B2 triagup blackuppointingtriangle a76 SM600000
+16#25B3 whiteuppointingtriangle triangle
+16#25B4 blackuppointingsmalltriangle smalltrianglesld
+16#25B5 whiteuppointingsmalltriangle smalltriangle
+16#25B6 blackrightpointingtriangle trianglerightsld1
+16#25B7 whiterightpointingtriangle triangleright1
+16#25B8 smalltrianglerightsld
+16#25B9 whiterightpointingsmalltriangle smalltriangleright
+16#25BA triagrt blackrightpointingpointer SM590000
+16#25BB triagrtopen
+16#25BC triagdn blackdownpointingtriangle a77 SV040000
+16#25BD whitedownpointingtriangle triangleinv
+16#25BE smalltriangleinvsld
+16#25BF whitedownpointingsmalltriangle smalltriangleinv
+16#25C0 blackleftpointingtriangle triangleleftsld1
+16#25C1 whiteleftpointingtriangle triangleleft1
+16#25C2 smalltriangleleftsld
+16#25C3 whiteleftpointingsmalltriangle smalltriangleleft
+16#25C4 triaglf blackleftpointingpointer SM630000
+16#25C5 triaglfopen
+16#25C6 blackdiamond a78 diamondrhombsolid
+16#25C7 whitediamond diamondrhomb
+16#25C8 whitediamondcontainingblacksmalldiamond diamondrhombnested
+16#25C9 fisheye
+16#25CA lozenge SA660000
+16#25CB circle whitecircle SM750000
+16#25CC dottedcircle circledash
+16#25CD circleverthatch
+16#25CE bullseye bullseye1
+16#25CF H18533 blackcircle a71 SM580000 bulletaltone circlesolid
+16#25D0 circlewithlefthalfblack circleleftsld
+16#25D1 circlewithrighthalfblack circlerightsld
+16#25D2 circlebottomsld
+16#25D3 circletopsld
+16#25D4 circlenesld
+16#25D5 circlenwopen
+16#25D6 semicircleleftsld
+16#25D7 a81 semicirclelertsld
+16#25D8 invbullet bulletinverse SM570001
+16#25D9 invcircle whitecircleinverse SM750002
+16#25DA invsemicircleup
+16#25DB invsemicircledn
+16#25DC nwquadarc
+16#25DD nequadarc
+16#25DE sequadarc
+16#25DF swquadarc
+16#25E0 toparc
+16#25E1 bottomarc
+16#25E2 blacklowerrighttriangle trianglesesld
+16#25E3 blacklowerlefttriangle triangleswsld
+16#25E4 blackupperlefttriangle tranglenwsld
+16#25E5 blackupperrighttriangle trianglenesld
+16#25E6 openbullet whitebullet
+16#25E7 squareleftsld
+16#25E8 squarerightsld
+16#25E9 squarenwsld
+16#25EA squaresesld
+16#25EB squarevertbisect
+16#25EC triangledot
+16#25ED triangleleftsld
+16#25EE trianglerightsld
+16#25EF largecircle
+16#2605 blackstar a35
+16#2606 whitestar
+16#260E telephoneblack a4
+16#260F whitetelephone
+16#261B a11
+16#261C pointingindexleftwhite
+16#261D pointingindexupwhite
+16#261E pointingindexrightwhite a12
+16#261F pointingindexdownwhite
+16#262F yinyang
+16#263A smileface whitesmilingface SS000000
+16#263B invsmileface blacksmilingface SS010000
+16#263C sun compass SM690000
+16#2640 female venus SM290000
+16#2641 earth
+16#2642 male mars SM280000
+16#2643 u2643
+16#2660 spade spadesuitblack a109 SS050000
+16#2661 heartsuitwhite
+16#2662 diamondsuitwhite
+16#2663 club clubsuitblack a112 SS040000
+16#2664 spadesuitwhite
+16#2665 heart heartsuitblack a110 SS020000
+16#2666 diamond a111 SS030000
+16#2667 clubsuitwhite
+16#2668 hotsprings
+16#2669 quarternote
+16#266A musicalnote SM930000
+16#266B musicalnotedbl eighthnotebeamed SM910000
+16#266C beamedsixteenthnotes
+16#266D musicflatsign flat
+16#266E natural
+16#266F musicsharpsign sharp
+16#2701 a1
+16#2702 a2
+16#2703 a202
+16#2704 a3
+16#2706 a5
+16#2707 a119
+16#2708 a118
+16#2709 a117
+16#270C a13
+16#270D a14
+16#270E a15
+16#270F a16
+16#2710 a105
+16#2711 a17
+16#2712 a18
+16#2713 checkmark a19
+16#2714 a20
+16#2715 a21
+16#2716 a22
+16#2717 a23
+16#2718 a24
+16#2719 a25
+16#271A a26
+16#271B a27
+16#271C a28
+16#271D a6
+16#271E a7
+16#271F a8
+16#2720 a9
+16#2721 a10
+16#2722 a29
+16#2723 a30
+16#2724 a31
+16#2725 a32
+16#2726 a33
+16#2727 a34
+16#2729 a36
+16#272A a37
+16#272B a38
+16#272C a39
+16#272D a40
+16#272E a41
+16#272F a42
+16#2730 a43
+16#2731 a44
+16#2732 a45
+16#2733 a46
+16#2734 a47
+16#2735 a48
+16#2736 a49
+16#2737 a50
+16#2738 a51
+16#2739 a52
+16#273A a53
+16#273B a54
+16#273C a55
+16#273D a56
+16#273E a57
+16#273F a58
+16#2740 a59
+16#2741 a60
+16#2742 a61
+16#2743 a62
+16#2744 a63
+16#2745 a64
+16#2746 a65
+16#2747 a66
+16#2748 a67
+16#2749 a68
+16#274A a69
+16#274B a70
+16#274D a72
+16#274F a74
+16#2750 a203
+16#2751 a75
+16#2752 a204
+16#2756 a79
+16#2758 a82
+16#2759 a83
+16#275A a84
+16#275B a97
+16#275C a98
+16#275D a99
+16#275E a100
+16#2761 a101
+16#2762 a102
+16#2763 a103
+16#2764 a104
+16#2765 a106
+16#2766 a107
+16#2767 a108
+16#2768 a89
+16#2769 a90
+16#276A a93
+16#276B a94
+16#276C a91
+16#276D a92
+16#276E a205
+16#276F a85
+16#2770 a206
+16#2771 a86
+16#2772 a87
+16#2773 a88
+16#2774 a95
+16#2775 a96
+16#2776 a130
+16#2777 a131
+16#2778 a132
+16#2779 a133
+16#277A a134
+16#277B a135
+16#277C a136
+16#277D a137
+16#277E a138
+16#277F a139
+16#2780 a140
+16#2781 a141
+16#2782 a142
+16#2783 a143
+16#2784 a144
+16#2785 a145
+16#2786 a146
+16#2787 a147
+16#2788 a148
+16#2789 a149
+16#278A onecircleinversesansserif a150
+16#278B twocircleinversesansserif a151
+16#278C threecircleinversesansserif a152
+16#278D fourcircleinversesansserif a153
+16#278E fivecircleinversesansserif a154
+16#278F sixcircleinversesansserif a155
+16#2790 sevencircleinversesansserif a156
+16#2791 eightcircleinversesansserif a157
+16#2792 ninecircleinversesansserif a158
+16#2793 a159
+16#2794 a160
+16#2798 a196
+16#2799 a165
+16#279A a192
+16#279B a166
+16#279C a167
+16#279D a168
+16#279E arrowrightheavy a169
+16#279F a170
+16#27A0 a171
+16#27A1 a172
+16#27A2 a173
+16#27A3 a162
+16#27A4 a174
+16#27A5 a175
+16#27A6 a176
+16#27A7 a177
+16#27A8 a178
+16#27A9 a179
+16#27AA a193
+16#27AB a180
+16#27AC a199
+16#27AD a181
+16#27AE a200
+16#27AF a182
+16#27B1 a201
+16#27B2 a183
+16#27B3 a184
+16#27B4 a197
+16#27B5 a185
+16#27B6 a194
+16#27B7 a198
+16#27B8 a186
+16#27B9 a195
+16#27BA a187
+16#27BB a188
+16#27BC a189
+16#27BD a190
+16#27BE a191
+16#3000 ideographicspace
+16#3001 ideographiccomma
+16#3002 ideographicperiod
+16#3003 dittomark
+16#3004 jis
+16#3005 ideographiciterationmark
+16#3006 ideographicclose
+16#3007 ideographiczero
+16#3008 anglebracketleft
+16#3009 anglebracketright
+16#300A dblanglebracketleft
+16#300B dblanglebracketright
+16#300C cornerbracketleft
+16#300D cornerbracketright
+16#300E whitecornerbracketleft
+16#300F whitecornerbracketright
+16#3010 blacklenticularbracketleft
+16#3011 blacklenticularbracketright
+16#3012 postalmark
+16#3013 getamark
+16#3014 tortoiseshellbracketleft
+16#3015 tortoiseshellbracketright
+16#3016 whitelenticularbracketleft
+16#3017 whitelenticularbracketright
+16#3018 whitetortoiseshellbracketleft
+16#3019 whitetortoiseshellbracketright
+16#301C wavedash
+16#301D quotedblprimereversed
+16#301E quotedblprime
+16#3020 postalmarkface
+16#3021 onehangzhou
+16#3022 twohangzhou
+16#3023 threehangzhou
+16#3024 fourhangzhou
+16#3025 fivehangzhou
+16#3026 sixhangzhou
+16#3027 sevenhangzhou
+16#3028 eighthangzhou
+16#3029 ninehangzhou
+16#3036 circlepostalmark
+16#3041 asmallhiragana
+16#3042 ahiragana
+16#3043 ismallhiragana
+16#3044 ihiragana
+16#3045 usmallhiragana
+16#3046 uhiragana
+16#3047 esmallhiragana
+16#3048 ehiragana
+16#3049 osmallhiragana
+16#304A ohiragana
+16#304B kahiragana
+16#304C gahiragana
+16#304D kihiragana
+16#304E gihiragana
+16#304F kuhiragana
+16#3050 guhiragana
+16#3051 kehiragana
+16#3052 gehiragana
+16#3053 kohiragana
+16#3054 gohiragana
+16#3055 sahiragana
+16#3056 zahiragana
+16#3057 sihiragana
+16#3058 zihiragana
+16#3059 suhiragana
+16#305A zuhiragana
+16#305B sehiragana
+16#305C zehiragana
+16#305D sohiragana
+16#305E zohiragana
+16#305F tahiragana
+16#3060 dahiragana
+16#3061 tihiragana
+16#3062 dihiragana
+16#3063 tusmallhiragana
+16#3064 tuhiragana
+16#3065 duhiragana
+16#3066 tehiragana
+16#3067 dehiragana
+16#3068 tohiragana
+16#3069 dohiragana
+16#306A nahiragana
+16#306B nihiragana
+16#306C nuhiragana
+16#306D nehiragana
+16#306E nohiragana
+16#306F hahiragana
+16#3070 bahiragana
+16#3071 pahiragana
+16#3072 hihiragana
+16#3073 bihiragana
+16#3074 pihiragana
+16#3075 huhiragana
+16#3076 buhiragana
+16#3077 puhiragana
+16#3078 hehiragana
+16#3079 behiragana
+16#307A pehiragana
+16#307B hohiragana
+16#307C bohiragana
+16#307D pohiragana
+16#307E mahiragana
+16#307F mihiragana
+16#3080 muhiragana
+16#3081 mehiragana
+16#3082 mohiragana
+16#3083 yasmallhiragana
+16#3084 yahiragana
+16#3085 yusmallhiragana
+16#3086 yuhiragana
+16#3087 yosmallhiragana
+16#3088 yohiragana
+16#3089 rahiragana
+16#308A rihiragana
+16#308B ruhiragana
+16#308C rehiragana
+16#308D rohiragana
+16#308E wasmallhiragana
+16#308F wahiragana
+16#3090 wihiragana
+16#3091 wehiragana
+16#3092 wohiragana
+16#3093 nhiragana
+16#3094 vuhiragana
+16#309B voicedmarkkana
+16#309C semivoicedmarkkana
+16#309D iterationhiragana
+16#309E voicediterationhiragana
+16#30A1 asmallkatakana
+16#30A2 akatakana
+16#30A3 ismallkatakana
+16#30A4 ikatakana
+16#30A5 usmallkatakana
+16#30A6 ukatakana
+16#30A7 esmallkatakana
+16#30A8 ekatakana
+16#30A9 osmallkatakana
+16#30AA okatakana
+16#30AB kakatakana
+16#30AC gakatakana
+16#30AD kikatakana
+16#30AE gikatakana
+16#30AF kukatakana
+16#30B0 gukatakana
+16#30B1 kekatakana
+16#30B2 gekatakana
+16#30B3 kokatakana
+16#30B4 gokatakana
+16#30B5 sakatakana
+16#30B6 zakatakana
+16#30B7 sikatakana
+16#30B8 zikatakana
+16#30B9 sukatakana
+16#30BA zukatakana
+16#30BB sekatakana
+16#30BC zekatakana
+16#30BD sokatakana
+16#30BE zokatakana
+16#30BF takatakana
+16#30C0 dakatakana
+16#30C1 tikatakana
+16#30C2 dikatakana
+16#30C3 tusmallkatakana
+16#30C4 tukatakana
+16#30C5 dukatakana
+16#30C6 tekatakana
+16#30C7 dekatakana
+16#30C8 tokatakana
+16#30C9 dokatakana
+16#30CA nakatakana
+16#30CB nikatakana
+16#30CC nukatakana
+16#30CD nekatakana
+16#30CE nokatakana
+16#30CF hakatakana
+16#30D0 bakatakana
+16#30D1 pakatakana
+16#30D2 hikatakana
+16#30D3 bikatakana
+16#30D4 pikatakana
+16#30D5 hukatakana
+16#30D6 bukatakana
+16#30D7 pukatakana
+16#30D8 hekatakana
+16#30D9 bekatakana
+16#30DA pekatakana
+16#30DB hokatakana
+16#30DC bokatakana
+16#30DD pokatakana
+16#30DE makatakana
+16#30DF mikatakana
+16#30E0 mukatakana
+16#30E1 mekatakana
+16#30E2 mokatakana
+16#30E3 yasmallkatakana
+16#30E4 yakatakana
+16#30E5 yusmallkatakana
+16#30E6 yukatakana
+16#30E7 yosmallkatakana
+16#30E8 yokatakana
+16#30E9 rakatakana
+16#30EA rikatakana
+16#30EB rukatakana
+16#30EC rekatakana
+16#30ED rokatakana
+16#30EE wasmallkatakana
+16#30EF wakatakana
+16#30F0 wikatakana
+16#30F1 wekatakana
+16#30F2 wokatakana
+16#30F3 nkatakana
+16#30F4 vukatakana
+16#30F5 kasmallkatakana
+16#30F6 kesmallkatakana
+16#30F7 vakatakana
+16#30F8 vikatakana
+16#30F9 vekatakana
+16#30FA vokatakana
+16#30FB dotkatakana
+16#30FC prolongedkana
+16#30FD iterationkatakana
+16#30FE voicediterationkatakana
+16#3105 bbopomofo
+16#3106 pbopomofo
+16#3107 mbopomofo
+16#3108 fbopomofo
+16#3109 dbopomofo
+16#310A tbopomofo
+16#310B nbopomofo
+16#310C lbopomofo
+16#310D gbopomofo
+16#310E kbopomofo
+16#310F hbopomofo
+16#3110 jbopomofo
+16#3111 qbopomofo
+16#3112 xbopomofo
+16#3113 zhbopomofo
+16#3114 chbopomofo
+16#3115 shbopomofo
+16#3116 rbopomofo
+16#3117 zbopomofo
+16#3118 cbopomofo
+16#3119 sbopomofo
+16#311A abopomofo
+16#311B obopomofo
+16#311C ebopomofo
+16#311D ehbopomofo
+16#311E aibopomofo
+16#311F eibopomofo
+16#3120 aubopomofo
+16#3121 oubopomofo
+16#3122 anbopomofo
+16#3123 enbopomofo
+16#3124 angbopomofo
+16#3125 engbopomofo
+16#3126 erbopomofo
+16#3127 ibopomofo
+16#3128 ubopomofo
+16#3129 iubopomofo
+16#3131 kiyeokkorean
+16#3132 ssangkiyeokkorean
+16#3133 kiyeoksioskorean
+16#3134 nieunkorean
+16#3135 nieuncieuckorean
+16#3136 nieunhieuhkorean
+16#3137 tikeutkorean
+16#3138 ssangtikeutkorean
+16#3139 rieulkorean
+16#313A rieulkiyeokkorean
+16#313B rieulmieumkorean
+16#313C rieulpieupkorean
+16#313D rieulsioskorean
+16#313E rieulthieuthkorean
+16#313F rieulphieuphkorean
+16#3140 rieulhieuhkorean
+16#3141 mieumkorean
+16#3142 pieupkorean
+16#3143 ssangpieupkorean
+16#3144 pieupsioskorean
+16#3145 sioskorean
+16#3146 ssangsioskorean
+16#3147 ieungkorean
+16#3148 cieuckorean
+16#3149 ssangcieuckorean
+16#314A chieuchkorean
+16#314B khieukhkorean
+16#314C thieuthkorean
+16#314D phieuphkorean
+16#314E hieuhkorean
+16#314F akorean
+16#3150 aekorean
+16#3151 yakorean
+16#3152 yaekorean
+16#3153 eokorean
+16#3154 ekorean
+16#3155 yeokorean
+16#3156 yekorean
+16#3157 okorean
+16#3158 wakorean
+16#3159 waekorean
+16#315A oekorean
+16#315B yokorean
+16#315C ukorean
+16#315D weokorean
+16#315E wekorean
+16#315F wikorean
+16#3160 yukorean
+16#3161 eukorean
+16#3162 yikorean
+16#3163 ikorean
+16#3164 hangulfiller
+16#3165 ssangnieunkorean
+16#3166 nieuntikeutkorean
+16#3167 nieunsioskorean
+16#3168 nieunpansioskorean
+16#3169 rieulkiyeoksioskorean
+16#316A rieultikeutkorean
+16#316B rieulpieupsioskorean
+16#316C rieulpansioskorean
+16#316D rieulyeorinhieuhkorean
+16#316E mieumpieupkorean
+16#316F mieumsioskorean
+16#3170 mieumpansioskorean
+16#3171 kapyeounmieumkorean
+16#3172 pieupkiyeokkorean
+16#3173 pieuptikeutkorean
+16#3174 pieupsioskiyeokkorean
+16#3175 pieupsiostikeutkorean
+16#3176 pieupcieuckorean
+16#3177 pieupthieuthkorean
+16#3178 kapyeounpieupkorean
+16#3179 kapyeounssangpieupkorean
+16#317A sioskiyeokkorean
+16#317B siosnieunkorean
+16#317C siostikeutkorean
+16#317D siospieupkorean
+16#317E sioscieuckorean
+16#317F pansioskorean
+16#3180 ssangieungkorean
+16#3181 yesieungkorean
+16#3182 yesieungsioskorean
+16#3183 yesieungpansioskorean
+16#3184 kapyeounphieuphkorean
+16#3185 ssanghieuhkorean
+16#3186 yeorinhieuhkorean
+16#3187 yoyakorean
+16#3188 yoyaekorean
+16#3189 yoikorean
+16#318A yuyeokorean
+16#318B yuyekorean
+16#318C yuikorean
+16#318D araeakorean
+16#318E araeaekorean
+16#3200 kiyeokparenkorean
+16#3201 nieunparenkorean
+16#3202 tikeutparenkorean
+16#3203 rieulparenkorean
+16#3204 mieumparenkorean
+16#3205 pieupparenkorean
+16#3206 siosparenkorean
+16#3207 ieungparenkorean
+16#3208 cieucparenkorean
+16#3209 chieuchparenkorean
+16#320A khieukhparenkorean
+16#320B thieuthparenkorean
+16#320C phieuphparenkorean
+16#320D hieuhparenkorean
+16#320E kiyeokaparenkorean
+16#320F nieunaparenkorean
+16#3210 tikeutaparenkorean
+16#3211 rieulaparenkorean
+16#3212 mieumaparenkorean
+16#3213 pieupaparenkorean
+16#3214 siosaparenkorean
+16#3215 ieungaparenkorean
+16#3216 cieucaparenkorean
+16#3217 chieuchaparenkorean
+16#3218 khieukhaparenkorean
+16#3219 thieuthaparenkorean
+16#321A phieuphaparenkorean
+16#321B hieuhaparenkorean
+16#321C cieucuparenkorean
+16#3220 oneideographicparen
+16#3221 twoideographicparen
+16#3222 threeideographicparen
+16#3223 fourideographicparen
+16#3224 fiveideographicparen
+16#3225 sixideographicparen
+16#3226 sevenideographicparen
+16#3227 eightideographicparen
+16#3228 nineideographicparen
+16#3229 tenideographicparen
+16#322A ideographicmoonparen
+16#322B ideographicfireparen
+16#322C ideographicwaterparen
+16#322D ideographicwoodparen
+16#322E ideographicmetalparen
+16#322F ideographicearthparen
+16#3230 ideographicsunparen
+16#3231 ideographicstockparen
+16#3232 ideographichaveparen
+16#3233 ideographicsocietyparen
+16#3234 ideographicnameparen
+16#3235 ideographicspecialparen
+16#3236 ideographicfinancialparen
+16#3237 ideographiccongratulationparen
+16#3238 ideographiclaborparen
+16#3239 ideographicrepresentparen
+16#323A ideographiccallparen
+16#323B ideographicstudyparen
+16#323C ideographicsuperviseparen
+16#323D ideographicenterpriseparen
+16#323E ideographicresourceparen
+16#323F ideographicallianceparen
+16#3240 ideographicfestivalparen
+16#3242 ideographicselfparen
+16#3243 ideographicreachparen
+16#3260 kiyeokcirclekorean
+16#3261 nieuncirclekorean
+16#3262 tikeutcirclekorean
+16#3263 rieulcirclekorean
+16#3264 mieumcirclekorean
+16#3265 pieupcirclekorean
+16#3266 sioscirclekorean
+16#3267 ieungcirclekorean
+16#3268 cieuccirclekorean
+16#3269 chieuchcirclekorean
+16#326A khieukhcirclekorean
+16#326B thieuthcirclekorean
+16#326C phieuphcirclekorean
+16#326D hieuhcirclekorean
+16#326E kiyeokacirclekorean
+16#326F nieunacirclekorean
+16#3270 tikeutacirclekorean
+16#3271 rieulacirclekorean
+16#3272 mieumacirclekorean
+16#3273 pieupacirclekorean
+16#3274 siosacirclekorean
+16#3275 ieungacirclekorean
+16#3276 cieucacirclekorean
+16#3277 chieuchacirclekorean
+16#3278 khieukhacirclekorean
+16#3279 thieuthacirclekorean
+16#327A phieuphacirclekorean
+16#327B hieuhacirclekorean
+16#327F koreanstandardsymbol
+16#328A ideographmooncircle
+16#328B ideographfirecircle
+16#328C ideographwatercircle
+16#328D ideographwoodcircle
+16#328E ideographmetalcircle
+16#328F ideographearthcircle
+16#3290 ideographsuncircle
+16#3294 ideographnamecircle
+16#3296 ideographicfinancialcircle
+16#3298 ideographiclaborcircle
+16#3299 ideographicsecretcircle
+16#329D ideographicexcellentcircle
+16#329E ideographicprintcircle
+16#32A3 ideographiccorrectcircle
+16#32A4 ideographichighcircle
+16#32A5 ideographiccentrecircle
+16#32A6 ideographiclowcircle
+16#32A7 ideographicleftcircle
+16#32A8 ideographicrightcircle
+16#32A9 ideographicmedicinecircle
+16#3300 apaatosquare
+16#3303 aarusquare
+16#3305 intisquare
+16#330D karoriisquare
+16#3314 kirosquare
+16#3315 kiroguramusquare
+16#3316 kiromeetorusquare
+16#3318 guramusquare
+16#331E kooposquare
+16#3322 sentisquare
+16#3323 sentosquare
+16#3326 dorusquare
+16#3327 tonsquare
+16#332A haitusquare
+16#332B paasentosquare
+16#3331 birusquare
+16#3333 huiitosquare
+16#3336 hekutaarusquare
+16#3339 herutusquare
+16#333B peezisquare
+16#3342 hoonsquare
+16#3347 mansyonsquare
+16#3349 mirisquare
+16#334A miribaarusquare
+16#334D meetorusquare
+16#334E yaadosquare
+16#3351 rittorusquare
+16#3357 wattosquare
+16#337B heiseierasquare
+16#337C syouwaerasquare
+16#337D taisyouerasquare
+16#337E meizierasquare
+16#337F corporationsquare
+16#3380 paampssquare
+16#3381 nasquare
+16#3382 muasquare
+16#3383 masquare
+16#3384 kasquare
+16#3385 KBsquare
+16#3386 MBsquare
+16#3387 GBsquare
+16#3388 calsquare
+16#3389 kcalsquare
+16#338A pfsquare
+16#338B nfsquare
+16#338C mufsquare
+16#338D mugsquare
+16#338E squaremg
+16#338F squarekg
+16#3390 Hzsquare
+16#3391 khzsquare
+16#3392 mhzsquare
+16#3393 ghzsquare
+16#3394 thzsquare
+16#3395 mulsquare
+16#3396 mlsquare
+16#3397 dlsquare
+16#3398 klsquare
+16#3399 fmsquare
+16#339A nmsquare
+16#339B mumsquare
+16#339C squaremm
+16#339D squarecm
+16#339E squarekm
+16#339F mmsquaredsquare
+16#33A0 cmsquaredsquare
+16#33A1 squaremsquared
+16#33A2 kmsquaredsquare
+16#33A3 mmcubedsquare
+16#33A4 cmcubedsquare
+16#33A5 mcubedsquare
+16#33A6 kmcubedsquare
+16#33A7 moverssquare
+16#33A8 moverssquaredsquare
+16#33A9 pasquare
+16#33AA kpasquare
+16#33AB mpasquare
+16#33AC gpasquare
+16#33AD radsquare
+16#33AE radoverssquare
+16#33AF radoverssquaredsquare
+16#33B0 pssquare
+16#33B1 nssquare
+16#33B2 mussquare
+16#33B3 mssquare
+16#33B4 pvsquare
+16#33B5 nvsquare
+16#33B6 muvsquare
+16#33B7 mvsquare
+16#33B8 kvsquare
+16#33B9 mvmegasquare
+16#33BA pwsquare
+16#33BB nwsquare
+16#33BC muwsquare
+16#33BD mwsquare
+16#33BE kwsquare
+16#33BF mwmegasquare
+16#33C0 kohmsquare
+16#33C1 mohmsquare
+16#33C2 amsquare
+16#33C3 bqsquare
+16#33C4 squarecc
+16#33C5 cdsquare
+16#33C6 coverkgsquare
+16#33C7 cosquare
+16#33C8 dbsquare
+16#33C9 gysquare
+16#33CA hasquare
+16#33CB HPsquare
+16#33CD KKsquare
+16#33CE squarekmcapital
+16#33CF ktsquare
+16#33D0 lmsquare
+16#33D1 squareln
+16#33D2 squarelog
+16#33D3 lxsquare
+16#33D4 mbsquare
+16#33D5 squaremil
+16#33D6 molsquare
+16#33D8 pmsquare
+16#33DB srsquare
+16#33DC svsquare
+16#33DD wbsquare
+16#5344 twentyhangzhou
+16#E802 finalkafwithsheva
+16#E803 finalkafwithqamats
+16#E804 lamedwithholam
+16#E805 lamedwithdageshandholam
+16#E811 lamwithmeemwithjeeminitial
+16#E812 behwithhehinitial
+16#E813 pehwithhehinitial
+16#E814 tehwithhehinitial
+16#E815 noonwithhehinitial
+16#E816 rayaleflam
+16#E818 shaddawithfathatanisolated
+16#E820 fathalow
+16#E821 dammalow
+16#E822 sukunlow
+16#E823 fathatanlow
+16#E824 dammatanlow
+16#E825 shaddalow
+16#E826 kasralow
+16#E827 kasratanlow
+16#E828 shaddawithfathalow shaddawithfathaisolatedlow
+16#E829 shaddawithdammalow shaddawithdammaisolatedlow
+16#E82A shaddawithfathatanisolatedlow shaddawithfathatanlow
+16#E82B shaddawithdammatanisolatedlow shaddawithdammatanlow
+16#E82C shaddawithkasraisolatedlow shaddawithkasralow
+16#E82D shaddawithkasratanisolatedlow shaddawithkasratanlow
+16#E832 fathaonhamza
+16#E833 fathatanonhamza
+16#E834 sukunonhamza
+16#E835 dammaonhamza
+16#E836 dammatanonhamza
+16#F003 circumflex1
+16#F004 tilde1
+16#F005 dieresis1
+16#F006 breve1
+16#F007 ring1
+16#F008 cedilla1
+16#F009 hungarumlaut1
+16#F00A caron1
+16#F00D cedilla2
+16#F6BE dotlessj
+16#F6BF LL
+16#F6C0 ll
+16#F6C3 commaaccent
+16#F6C4 afii10063
+16#F6C5 afii10064
+16#F6C6 afii10192
+16#F6C7 afii10831
+16#F6C8 afii10832
+16#F6C9 Acute
+16#F6CA Caron
+16#F6CB Dieresis
+16#F6CC DieresisAcute
+16#F6CD DieresisGrave
+16#F6CE Grave
+16#F6CF Hungarumlaut
+16#F6D0 Macron
+16#F6D1 cyrBreve
+16#F6D2 cyrFlex
+16#F6D3 dblGrave
+16#F6D4 cyrbreve
+16#F6D5 cyrflex
+16#F6D6 dblgrave
+16#F6D7 dieresisacute
+16#F6D8 dieresisgrave
+16#F6D9 copyrightserif
+16#F6DA registerserif
+16#F6DB trademarkserif
+16#F6DC onefitted
+16#F6DD rupiah
+16#F6DE threequartersemdash
+16#F6DF centinferior
+16#F6E0 centsuperior
+16#F6E1 commainferior
+16#F6E2 commasuperior
+16#F6E3 dollarinferior
+16#F6E4 dollarsuperior
+16#F6E5 hypheninferior
+16#F6E6 hyphensuperior
+16#F6E7 periodinferior
+16#F6E8 periodsuperior
+16#F6E9 asuperior
+16#F6EA bsuperior
+16#F6EB dsuperior
+16#F6EC esuperior
+16#F6ED isuperior
+16#F6EE lsuperior
+16#F6EF msuperior
+16#F6F0 osuperior
+16#F6F1 rsuperior
+16#F6F2 ssuperior
+16#F6F3 tsuperior
+16#F6F4 Brevesmall
+16#F6F5 Caronsmall
+16#F6F6 Circumflexsmall
+16#F6F7 Dotaccentsmall
+16#F6F8 Hungarumlautsmall
+16#F6F9 Lslashsmall
+16#F6FA OEsmall
+16#F6FB Ogoneksmall
+16#F6FC Ringsmall
+16#F6FD Scaronsmall
+16#F6FE Tildesmall
+16#F6FF Zcaronsmall
+16#F700 f700
+16#F701 f701
+16#F702 f702
+16#F703 f703
+16#F704 f704
+16#F705 f705
+16#F706 f706
+16#F707 f707
+16#F708 f708
+16#F709 f709
+16#F70A f70a
+16#F70B f70b
+16#F70C f70c
+16#F70D f70d
+16#F70E f70e
+16#F70F f70f
+16#F710 f710
+16#F711 f711
+16#F712 f712
+16#F713 f713
+16#F714 f714
+16#F715 f715
+16#F716 f716
+16#F717 f717
+16#F718 f718
+16#F719 f719
+16#F71A f71a
+16#F71C f71c
+16#F71D f71d
+16#F721 exclamsmall
+16#F724 dollaroldstyle
+16#F726 ampersandsmall
+16#F730 zerooldstyle
+16#F731 oneoldstyle
+16#F732 twooldstyle
+16#F733 threeoldstyle
+16#F734 fouroldstyle
+16#F735 fiveoldstyle
+16#F736 sixoldstyle
+16#F737 sevenoldstyle
+16#F738 eightoldstyle
+16#F739 nineoldstyle
+16#F73F questionsmall
+16#F760 Gravesmall
+16#F761 Asmall
+16#F762 Bsmall
+16#F763 Csmall
+16#F764 Dsmall
+16#F765 Esmall
+16#F766 Fsmall
+16#F767 Gsmall
+16#F768 Hsmall
+16#F769 Ismall
+16#F76A Jsmall
+16#F76B Ksmall
+16#F76C Lsmall
+16#F76D Msmall
+16#F76E Nsmall
+16#F76F Osmall
+16#F770 Psmall
+16#F771 Qsmall
+16#F772 Rsmall
+16#F773 Ssmall
+16#F774 Tsmall
+16#F775 Usmall
+16#F776 Vsmall
+16#F777 Wsmall
+16#F778 Xsmall
+16#F779 Ysmall
+16#F77A Zsmall
+16#F7A1 exclamdownsmall
+16#F7A2 centoldstyle
+16#F7A8 Dieresissmall
+16#F7AF Macronsmall
+16#F7B4 Acutesmall
+16#F7B8 Cedillasmall
+16#F7BF questiondownsmall
+16#F7E0 Agravesmall
+16#F7E1 Aacutesmall
+16#F7E2 Acircumflexsmall
+16#F7E3 Atildesmall
+16#F7E4 Adieresissmall
+16#F7E5 Aringsmall
+16#F7E6 AEsmall
+16#F7E7 Ccedillasmall
+16#F7E8 Egravesmall
+16#F7E9 Eacutesmall
+16#F7EA Ecircumflexsmall
+16#F7EB Edieresissmall
+16#F7EC Igravesmall
+16#F7ED Iacutesmall
+16#F7EE Icircumflexsmall
+16#F7EF Idieresissmall
+16#F7F0 Ethsmall
+16#F7F1 Ntildesmall
+16#F7F2 Ogravesmall
+16#F7F3 Oacutesmall
+16#F7F4 Ocircumflexsmall
+16#F7F5 Otildesmall
+16#F7F6 Odieresissmall
+16#F7F8 Oslashsmall
+16#F7F9 Ugravesmall
+16#F7FA Uacutesmall
+16#F7FB Ucircumflexsmall
+16#F7FC Udieresissmall
+16#F7FD Yacutesmall
+16#F7FE Thornsmall
+16#F7FF Ydieresissmall
+16#F810 Dcaron1
+16#F811 dcaron1
+16#F812 Lcaron1
+16#F813 lcaron1
+16#F814 Tcaron1
+16#F815 tcaron1 tcaronaltone
+16#F816 Scedilla1
+16#F817 scedilla1
+16#F818 Tcedilla1 Kcedilla1
+16#F819 kcedilla1 tcedilla1
+16#F81A Lcedilla1 gcedilla1
+16#F81B lcedilla1 peso1 pesoph
+16#F81C Ncedilla1
+16#F81D ncedilla1
+16#F81E Rcedilla1
+16#F81F rcedilla1
+16#F820 dotcircle1
+16#F821 ltshade1
+16#F822 shade1
+16#F823 dkshade1
+16#F830 logonek
+16#F831 Rcircumflex
+16#F832 rcircumflex
+16#F833 Ucedilla
+16#F834 ucedilla
+16#F884 maihanakatleftthai
+16#F885 saraileftthai
+16#F886 saraiileftthai
+16#F887 saraueleftthai
+16#F888 saraueeleftthai
+16#F889 maitaikhuleftthai
+16#F88A maiekupperleftthai
+16#F88B maieklowrightthai
+16#F88C maieklowleftthai
+16#F88D maithoupperleftthai
+16#F88E maitholowrightthai
+16#F88F maitholowleftthai
+16#F890 maitriupperleftthai
+16#F891 maitrilowrightthai
+16#F892 maitrilowleftthai
+16#F893 maichattawaupperleftthai
+16#F894 maichattawalowrightthai
+16#F895 maichattawalowleftthai
+16#F896 thanthakhatupperleftthai
+16#F897 thanthakhatlowrightthai
+16#F898 thanthakhatlowleftthai
+16#F899 nikhahitleftthai
+16#F8E5 radicalex
+16#F8E6 arrowvertex
+16#F8E7 arrowhorizex
+16#F8E8 registersans
+16#F8E9 copyrightsans
+16#F8EA trademarksans
+16#F8EB parenlefttp
+16#F8EC parenleftex
+16#F8ED parenleftbt
+16#F8EE bracketlefttp
+16#F8EF bracketleftex
+16#F8F0 bracketleftbt
+16#F8F1 bracelefttp
+16#F8F2 braceleftmid
+16#F8F3 braceleftbt
+16#F8F4 braceex
+16#F8F5 integralex
+16#F8F6 parenrighttp help
+16#F8F7 parenrightex
+16#F8F8 parenrightbt
+16#F8F9 bracketrighttp power
+16#F8FA bracketrightex
+16#F8FB bracketrightbt contextmenu
+16#F8FC bracerighttp carriagereturnleft
+16#F8FD bracerightmid enter
+16#F8FE bracerightbt appleopen
+16#F8FF apple
+16#FB00 ff f_f
+16#FB01 fi f_i
+16#FB02 fl f_l
+16#FB03 ffi f_f_i
+16#FB04 ffl f_f_l
+16#FB05 slongt longst
+16#FB06 st
+16#FB1E varika
+16#FB1F afii57705 doubleyodpatah doubleyodpatahhebrew yodyodpatahhebrew
+16#FB20 ayinaltonehebrew alternativeayin
+16#FB2A afii57694 shinshindot shinshindothebrew shinwithshindot
+16#FB2B afii57695 shinsindot shinsindothebrew shinwithsindot
+16#FB2C shindageshshindot shindageshshindothebrew shinwithdageshandshindot
+16#FB2D shindageshsindot shindageshsindothebrew shinwithdageshandsindot
+16#FB2E alefpatahhebrew alefwithpatah
+16#FB2F alefqamatshebrew alefwithqamats
+16#FB30 alefdageshhebrew alefwithmapiq
+16#FB31 betdagesh betdageshhebrew betwithdagesh
+16#FB32 gimeldagesh gimeldageshhebrew gimelwithdagesh
+16#FB33 daletdagesh daletdageshhebrew daletwithdagesh
+16#FB34 hedagesh hedageshhebrew hewithmapiq
+16#FB35 afii57723 vavdagesh vavdagesh65 vavdageshhebrew vavwithdagesh
+16#FB36 zayindagesh zayindageshhebrew zayinwithdagesh
+16#FB38 tetdagesh tetdageshhebrew tetwithdagesh
+16#FB39 yoddagesh yoddageshhebrew yodwithdagesh
+16#FB3A finalkafdagesh finalkafdageshhebrew finalkafwithdagesh
+16#FB3B kafdagesh kafdageshhebrew kafwithdagesh
+16#FB3C lameddagesh lameddageshhebrew lamedwithdagesh
+16#FB3E memdagesh memdageshhebrew memwithdagesh
+16#FB40 nundagesh nundageshhebrew nunwithdagesh
+16#FB41 samekhdagesh samekhdageshhebrew samekhwithdagesh
+16#FB43 pefinaldageshhebrew finalpewithdagesh
+16#FB44 pedagesh pedageshhebrew pewithdagesh
+16#FB46 tsadidagesh tsadidageshhebrew tsadiwithdagesh
+16#FB47 qofdagesh qofdageshhebrew qofwithdagesh
+16#FB48 reshdageshhebrew reshwithdagesh
+16#FB49 shindagesh shindageshhebrew shinwithdagesh
+16#FB4A tavdages tavdagesh tavdageshhebrew tavwithdagesh
+16#FB4B afii57700 vavholam vavholamhebrew vavwithholam
+16#FB4C betrafehebrew betwithrafe
+16#FB4D kafrafehebrew kafwithrafe
+16#FB4E perafehebrew pewithrafe
+16#FB4F aleflamedhebrew aleflamed
+16#FB50 alefwaslaisolated
+16#FB51 alefwaslafinal
+16#FB56 pehisolated
+16#FB57 pehfinalarabic pehfinal
+16#FB58 pehinitialarabic pehinitial
+16#FB59 pehmedialarabic pehmedial
+16#FB67 ttehfinalarabic
+16#FB68 ttehinitialarabic
+16#FB69 ttehmedialarabic
+16#FB6A vehisolated
+16#FB6B vehfinalarabic vehfinal
+16#FB6C vehinitialarabic vehinitial
+16#FB6D vehmedialarabic vehmedial
+16#FB7A tchehisolated
+16#FB7B tchehfinalarabic tchehfinal
+16#FB7C tchehinitialarabic tchehinitial
+%L#FB7C_FEE4 tchehmeeminitialarabic
+16#FB7D tchehmedialarabic tchehmedial
+16#FB89 ddalfinalarabic
+16#FB8A jehisolated
+16#FB8B jehfinalarabic jehfinal
+16#FB8D rrehfinalarabic
+16#FB8E kehehisolated
+16#FB8F kehehfinal
+16#FB90 kehehinitial
+16#FB91 kehehmedial
+16#FB92 gafisolated
+16#FB93 gaffinalarabic gaffinal
+16#FB94 gafinitialarabic gafinitial
+16#FB95 gafmedialarabic gafmedial
+16#FB9F noonghunnafinalarabic
+16#FBA4 hehhamzaaboveisolatedarabic
+16#FBA5 hehhamzaabovefinalarabic
+16#FBA7 hehfinalaltonearabic
+16#FBA8 hehinitialaltonearabic
+16#FBA9 hehmedialaltonearabic
+16#FBAF yehbarreefinalarabic
+16#FBFC farsiyehisolated
+16#FBFD farsiyehfinal
+16#FC08 behmeemisolatedarabic behwithmeemisolated
+16#FC09 behwithalefmaksuraisolated
+16#FC0A behwithyehisolated
+16#FC0B tehjeemisolatedarabic
+16#FC0C tehhahisolatedarabic
+16#FC0E tehmeemisolatedarabic tehwithmeemisolated
+16#FC10 tehwithyehisolated
+16#FC12 thehwithmeemisolated
+16#FC31 fehwithalefmaksuraisolated
+16#FC32 fehwithyehisolated
+16#FC3F lamwithjeemisolated
+16#FC40 lamwithhahisolated
+16#FC41 lamwithkhahisolated
+16#FC42 lamwithmeemisolated
+16#FC43 lamwithalefmaksuraisolated
+16#FC44 lamwithyehisolated
+16#FC48 meemmeemisolatedarabic
+16#FC4B noonjeemisolatedarabic
+16#FC4E noonmeemisolatedarabic noonwithmeemisolated
+16#FC4F noonwithalefmaksuraisolated
+16#FC50 noonwithyehisolated
+16#FC58 yehmeemisolatedarabic yehwithmeemisolated
+16#FC59 yehwithalefmaksuraisolated
+16#FC5E shaddadammatanarabic shaddawithdammatanisolated
+16#FC5F shaddakasratanarabic shaddawithkasratanisolated
+16#FC60 shaddafathaarabic shaddawithfathaisolated
+16#FC61 shaddadammaarabic shaddawithdammaisolated
+16#FC62 shaddakasraarabic shaddawithkasraisolated
+16#FC6A behwithrehfinal
+16#FC6D behnoonfinalarabic behwithnoonfinal
+16#FC6E behwithalefmaksurafinal
+16#FC6F behwithyehfinal
+16#FC70 noonwithzainfinal
+16#FC73 tehnoonfinalarabic tehwithnoonfinal
+16#FC74 tehwithalefmaksurafinal
+16#FC75 tehwithyehfinal
+16#FC8D noonnoonfinalarabic
+16#FC8E noonwithalefmaksurafinal
+16#FC8F noonwithyehfinal
+16#FC91 yehwithrehfinal
+16#FC94 yehnoonfinalarabic yehwithnoonfinal
+16#FC95 yehwithalefmaksurafinal
+16#FC9C behwithjeeminitial
+16#FC9D behwithhahinitial
+16#FC9E behwithkhahinitial
+16#FC9F behmeeminitialarabic behwithmeeminitial
+16#FCA1 tehjeeminitialarabic tehwithjeeminitial
+16#FCA2 tehhahinitialarabic tehwithhahinitial
+16#FCA3 tehwithkhahinitial
+16#FCA4 tehmeeminitialarabic tehwithmeeminitial
+16#FCA6 thehwithmeeminitial
+16#FCA8 jeemwithmeeminitial
+16#FCAA hahwithmeeminitial
+16#FCAC khahwithmeeminitial
+16#FCB0 seenwithmeeminitial
+16#FCC9 lamjeeminitialarabic lamwithjeeminitial
+16#FCCA lamhahinitialarabic lamwithhahinitial
+16#FCCB lamkhahinitialarabic lamwithkhahinitial
+16#FCCC lammeeminitialarabic lamwithmeeminitial
+16#FCCD lamwithhehinitial
+16#FCCE meemwithjeeminitial
+16#FCCF meemwithhahinitial
+16#FCD0 meemwithkhahinitial
+16#FCD1 meemmeeminitialarabic meemwithmeeminitial
+16#FCD2 noonjeeminitialarabic noonwithjeeminitial
+16#FCD3 noonwithhahinitial
+16#FCD4 noonwithkhahinitial
+16#FCD5 noonmeeminitialarabic noonwithmeeminitial
+16#FCD8 hehwithmeeminitial
+16#FCDA yehwithjeeminitial
+16#FCDB yehwithhahinitial
+16#FCDC yehwithkhahinitial
+16#FCDD yehmeeminitialarabic yehwithmeeminitial
+16#FCF2 shaddawithfathamedial
+16#FCF3 shaddawithdammamedial
+16#FCF4 shaddawithkasramedial
+16#FD30 sheenwithmeeminitial
+16#FD3C alefwithfathatanfinal
+16#FD3D alefwithfathatanisolated
+16#FD3E parenleftaltonearabic ornateleftparenthesis
+16#FD3F parenrightaltonearabic ornaterightparenthesis
+16#FD88 lammeemhahinitialarabic lamwithmeemwithhahinitial
+16#FDF2 lamlamhehisolatedarabic allahisolated
+16#FDFA sallallahoualayhewasallamarabic
+16#FE30 twodotleadervertical
+16#FE31 emdashvertical
+16#FE32 endashvertical
+16#FE33 underscorevertical
+16#FE34 wavyunderscorevertical
+16#FE35 parenleftvertical
+16#FE36 parenrightvertical
+16#FE37 braceleftvertical
+16#FE38 bracerightvertical
+16#FE39 tortoiseshellbracketleftvertical
+16#FE3A tortoiseshellbracketrightvertical
+16#FE3B blacklenticularbracketleftvertical
+16#FE3C blacklenticularbracketrightvertical
+16#FE3D dblanglebracketleftvertical
+16#FE3E dblanglebracketrightvertical
+16#FE3F anglebracketleftvertical
+16#FE40 anglebracketrightvertical
+16#FE41 cornerbracketleftvertical
+16#FE42 cornerbracketrightvertical
+16#FE43 whitecornerbracketleftvertical
+16#FE44 whitecornerbracketrightvertical
+16#FE49 overlinedashed
+16#FE4A overlinecenterline
+16#FE4B overlinewavy
+16#FE4C overlinedblwavy
+16#FE4D lowlinedashed
+16#FE4E lowlinecenterline
+16#FE4F underscorewavy
+16#FE50 commasmall
+16#FE52 periodsmall
+16#FE54 semicolonsmall
+16#FE55 colonsmall
+16#FE59 parenleftsmall
+16#FE5A parenrightsmall
+16#FE5B braceleftsmall
+16#FE5C bracerightsmall
+16#FE5D tortoiseshellbracketleftsmall
+16#FE5E tortoiseshellbracketrightsmall
+16#FE5F numbersignsmall
+16#FE61 asterisksmall
+16#FE62 plussmall
+16#FE63 hyphensmall
+16#FE64 lesssmall
+16#FE65 greatersmall
+16#FE66 equalsmall
+16#FE69 dollarsmall
+16#FE6A percentsmall
+16#FE6B atsmall
+16#FE70 fathatanisolated
+16#FE71 fathatanontatweel tatweelwithfathatanabove
+16#FE72 dammatanisolated
+16#FE74 kasratanisolated
+16#FE76 fathaisolated
+16#FE77 fathahontatweel fathamedial
+16#FE78 dammaisolated
+16#FE79 dammahontatweel dammamedial
+16#FE7A kasraisolated
+16#FE7B kasrahontatweel kasramedial
+16#FE7C shaddaisolated
+16#FE7D shaddahontatweel shaddamedial
+16#FE7E sukunisolated
+16#FE7F sukunontatweel sukunmedial
+16#FE80 hamzaisolated
+16#FE81 alefwithmaddaaboveisolated
+16#FE82 alefmaddaabovefinalarabic alefwithmaddaabovefinal
+16#FE83 alefwithhamzaaboveisolated
+16#FE84 alefhamzaabovefinalarabic alefwithhamzaabovefinal
+16#FE85 wawwithhamzaaboveisolated
+16#FE86 wawhamzaabovefinalarabic wawwithhamzaabovefinal
+16#FE87 alefwithhamzabelowisolated
+16#FE88 alefhamzabelowfinalarabic alefwithhamzabelowfinal
+16#FE89 yehwithhamzaaboveisolated
+16#FE8A yehhamzaabovefinalarabic yehwithhamzaabovefinal
+16#FE8B yehhamzaaboveinitialarabic yehwithhamzaaboveinitial
+16#FE8C yehhamzaabovemedialarabic yehwithhamzaabovemedial
+16#FE8D alefisolated
+16#FE8E aleffinalarabic aleffinal
+16#FE8F behisolated
+16#FE90 behfinalarabic behfinal
+16#FE91 behinitialarabic behinitial
+16#FE92 behmedialarabic behmedial
+16#FE93 tehmarbutaisolated
+16#FE94 tehmarbutafinalarabic tehmarbutafinal
+16#FE95 tehisolated
+16#FE96 tehfinalarabic tehfinal
+16#FE97 tehinitialarabic tehinitial
+16#FE98 tehmedialarabic tehmedial
+16#FE99 thehisolated
+16#FE9A thehfinalarabic thehfinal
+16#FE9B thehinitialarabic thehinitial
+16#FE9C thehmedialarabic thehmedial
+16#FE9D jeemisolated
+16#FE9E jeemfinalarabic jeemfinal
+16#FE9F jeeminitialarabic jeeminitial
+16#FEA0 jeemmedialarabic jeemmedial
+16#FEA1 hahisolated
+16#FEA2 hahfinalarabic hahfinal
+16#FEA3 hahinitialarabic hahinitial
+16#FEA4 hahmedialarabic hahmedial
+16#FEA5 khahisolated
+16#FEA6 khahfinalarabic khahfinal
+16#FEA7 khahinitialarabic khahinitial
+16#FEA8 khahmedialarabic khahmedial
+16#FEA9 dalisolated
+16#FEAA dalfinalarabic dalfinal
+16#FEAB thalisolated
+16#FEAC thalfinalarabic thalfinal
+16#FEAD rehisolated
+16#FEAE rehfinalarabic rehfinal
+16#FEAF zainisolated
+16#FEB0 zainfinalarabic zainfinal
+16#FEB1 seenisolated
+16#FEB2 seenfinalarabic seenfinal
+16#FEB3 seeninitialarabic seeninitial
+16#FEB4 seenmedialarabic seenmedial
+16#FEB5 sheenisolated
+16#FEB6 sheenfinalarabic sheenfinal
+16#FEB7 sheeninitialarabic sheeninitial
+16#FEB8 sheenmedialarabic sheenmedial
+16#FEB9 sadisolated
+16#FEBA sadfinalarabic sadfinal
+16#FEBB sadinitialarabic sadinitial
+16#FEBC sadmedialarabic sadmedial
+16#FEBD dadisolated
+16#FEBE dadfinalarabic dadfinal
+16#FEBF dadinitialarabic dadinitial
+16#FEC0 dadmedialarabic dadmedial
+16#FEC1 tahisolated
+16#FEC2 tahfinalarabic tahfinal
+16#FEC3 tahinitialarabic tahinitial
+16#FEC4 tahmedialarabic tahmedial
+16#FEC5 zahisolated
+16#FEC6 zahfinalarabic zahfinal
+16#FEC7 zahinitialarabic zahinitial
+16#FEC8 zahmedialarabic zahmedial
+16#FEC9 ainisolated
+16#FECA ainfinalarabic ainfinal
+16#FECB aininitialarabic aininitial
+16#FECC ainmedialarabic ainmedial
+16#FECD ghainisolated
+16#FECE ghainfinalarabic ghainfinal
+16#FECF ghaininitialarabic ghaininitial
+16#FED0 ghainmedialarabic ghainmedial
+16#FED1 fehisolated
+16#FED2 fehfinalarabic fehfinal
+16#FED3 fehinitialarabic fehinitial
+16#FED4 fehmedialarabic fehmedial
+16#FED5 qafisolated
+16#FED6 qaffinalarabic qaffinal
+16#FED7 qafinitialarabic qafinitial
+16#FED8 qafmedialarabic qafmedial
+16#FED9 kafisolated
+16#FEDA kaffinalarabic arabickaffinal
+16#FEDB kafinitialarabic kafinitial
+16#FEDC kafmedialarabic kafmedial
+16#FEDD lamisolated
+16#FEDE lamfinalarabic lamfinal
+16#FEDF laminitialarabic laminitial
+%L#FEDF_FEE4_FEA0 lammeemjeeminitialarabic
+%L#FEDF_FEE4_FEA8 lammeemkhahinitialarabic
+16#FEE0 lammedialarabic lammedial
+16#FEE1 meemisolated
+16#FEE2 meemfinalarabic meemfinal
+16#FEE3 meeminitialarabic meeminitial
+16#FEE4 meemmedialarabic meemmedial
+16#FEE5 noonisolated
+16#FEE6 noonfinalarabic noonfinal
+16#FEE7 nooninitialarabic nooninitial
+%L#FEE7_FEEC noonhehinitialarabic
+16#FEE8 noonmedialarabic noonmedial
+16#FEE9 hehisolated
+16#FEEA hehfinalalttwoarabic hehfinalarabic hehfinal
+16#FEEB hehinitialarabic hehinitial
+16#FEEC hehmedialarabic hehmedial
+16#FEED wawisolated
+16#FEEE wawfinalarabic wawfinal
+16#FEEF alefmaksuraisolated
+16#FEF0 alefmaksurafinalarabic alefmaksurafinal
+16#FEF1 yehisolated
+16#FEF2 yehfinalarabic yehfinal
+16#FEF3 alefmaksurainitialarabic yehinitialarabic yehinitial
+16#FEF4 alefmaksuramedialarabic yehmedialarabic yehmedial
+16#FEF5 lamalefmaddaaboveisolatedarabic lamwithalefmaddaaboveisolatedd
+16#FEF6 lamalefmaddaabovefinalarabic lamwithalefmaddaabovefinal
+16#FEF7 lamalefhamzaaboveisolatedarabic lamwithalefhamzaaboveisolatedd
+16#FEF8 lamalefhamzaabovefinalarabic lamwithalefhamzaabovefinal
+16#FEF9 lamalefhamzabelowisolatedarabic lamwithalefhamzabelowisolated
+16#FEFA lamalefhamzabelowfinalarabic lamwithalefhamzabelowfinal
+16#FEFB lamalefisolatedarabic lamwithalefisolated
+16#FEFC lamaleffinalarabic lamwithaleffinal
+16#FEFF zerowidthjoiner zerowidthnobreakspace bom
+16#FF01 exclammonospace
+16#FF02 quotedblmonospace
+16#FF03 numbersignmonospace
+16#FF04 dollarmonospace
+16#FF05 percentmonospace
+16#FF06 ampersandmonospace
+16#FF07 quotesinglemonospace
+16#FF08 parenleftmonospace
+16#FF09 parenrightmonospace
+16#FF0A asteriskmonospace
+16#FF0B plusmonospace
+16#FF0C commamonospace
+16#FF0D hyphenmonospace
+16#FF0E periodmonospace
+16#FF0F slashmonospace
+16#FF10 zeromonospace
+16#FF11 onemonospace
+16#FF12 twomonospace
+16#FF13 threemonospace
+16#FF14 fourmonospace
+16#FF15 fivemonospace
+16#FF16 sixmonospace
+16#FF17 sevenmonospace
+16#FF18 eightmonospace
+16#FF19 ninemonospace
+16#FF1A colonmonospace
+16#FF1B semicolonmonospace
+16#FF1C lessmonospace
+16#FF1D equalmonospace
+16#FF1E greatermonospace
+16#FF1F questionmonospace
+16#FF20 atmonospace
+16#FF21 Amonospace
+16#FF22 Bmonospace
+16#FF23 Cmonospace
+16#FF24 Dmonospace
+16#FF25 Emonospace
+16#FF26 Fmonospace
+16#FF27 Gmonospace
+16#FF28 Hmonospace
+16#FF29 Imonospace
+16#FF2A Jmonospace
+16#FF2B Kmonospace
+16#FF2C Lmonospace
+16#FF2D Mmonospace
+16#FF2E Nmonospace
+16#FF2F Omonospace
+16#FF30 Pmonospace
+16#FF31 Qmonospace
+16#FF32 Rmonospace
+16#FF33 Smonospace
+16#FF34 Tmonospace
+16#FF35 Umonospace
+16#FF36 Vmonospace
+16#FF37 Wmonospace
+16#FF38 Xmonospace
+16#FF39 Ymonospace
+16#FF3A Zmonospace
+16#FF3B bracketleftmonospace
+16#FF3C backslashmonospace
+16#FF3D bracketrightmonospace
+16#FF3E asciicircummonospace
+16#FF3F underscoremonospace
+16#FF40 gravemonospace
+16#FF41 amonospace
+16#FF42 bmonospace
+16#FF43 cmonospace
+16#FF44 dmonospace
+16#FF45 emonospace
+16#FF46 fmonospace
+16#FF47 gmonospace
+16#FF48 hmonospace
+16#FF49 imonospace
+16#FF4A jmonospace
+16#FF4B kmonospace
+16#FF4C lmonospace
+16#FF4D mmonospace
+16#FF4E nmonospace
+16#FF4F omonospace
+16#FF50 pmonospace
+16#FF51 qmonospace
+16#FF52 rmonospace
+16#FF53 smonospace
+16#FF54 tmonospace
+16#FF55 umonospace
+16#FF56 vmonospace
+16#FF57 wmonospace
+16#FF58 xmonospace
+16#FF59 ymonospace
+16#FF5A zmonospace
+16#FF5B braceleftmonospace
+16#FF5C barmonospace
+16#FF5D bracerightmonospace
+16#FF5E asciitildemonospace
+16#FF61 periodhalfwidth
+16#FF62 cornerbracketlefthalfwidth
+16#FF63 cornerbracketrighthalfwidth
+16#FF64 ideographiccommaleft
+16#FF65 middledotkatakanahalfwidth
+16#FF66 wokatakanahalfwidth
+16#FF67 asmallkatakanahalfwidth
+16#FF68 ismallkatakanahalfwidth
+16#FF69 usmallkatakanahalfwidth
+16#FF6A esmallkatakanahalfwidth
+16#FF6B osmallkatakanahalfwidth
+16#FF6C yasmallkatakanahalfwidth
+16#FF6D yusmallkatakanahalfwidth
+16#FF6E yosmallkatakanahalfwidth
+16#FF6F tusmallkatakanahalfwidth
+16#FF70 katahiraprolongmarkhalfwidth
+16#FF71 akatakanahalfwidth
+16#FF72 ikatakanahalfwidth
+16#FF73 ukatakanahalfwidth
+16#FF74 ekatakanahalfwidth
+16#FF75 okatakanahalfwidth
+16#FF76 kakatakanahalfwidth
+16#FF77 kikatakanahalfwidth
+16#FF78 kukatakanahalfwidth
+16#FF79 kekatakanahalfwidth
+16#FF7A kokatakanahalfwidth
+16#FF7B sakatakanahalfwidth
+16#FF7C sikatakanahalfwidth
+16#FF7D sukatakanahalfwidth
+16#FF7E sekatakanahalfwidth
+16#FF7F sokatakanahalfwidth
+16#FF80 takatakanahalfwidth
+16#FF81 tikatakanahalfwidth
+16#FF82 tukatakanahalfwidth
+16#FF83 tekatakanahalfwidth
+16#FF84 tokatakanahalfwidth
+16#FF85 nakatakanahalfwidth
+16#FF86 nikatakanahalfwidth
+16#FF87 nukatakanahalfwidth
+16#FF88 nekatakanahalfwidth
+16#FF89 nokatakanahalfwidth
+16#FF8A hakatakanahalfwidth
+16#FF8B hikatakanahalfwidth
+16#FF8C hukatakanahalfwidth
+16#FF8D hekatakanahalfwidth
+16#FF8E hokatakanahalfwidth
+16#FF8F makatakanahalfwidth
+16#FF90 mikatakanahalfwidth
+16#FF91 mukatakanahalfwidth
+16#FF92 mekatakanahalfwidth
+16#FF93 mokatakanahalfwidth
+16#FF94 yakatakanahalfwidth
+16#FF95 yukatakanahalfwidth
+16#FF96 yokatakanahalfwidth
+16#FF97 rakatakanahalfwidth
+16#FF98 rikatakanahalfwidth
+16#FF99 rukatakanahalfwidth
+16#FF9A rekatakanahalfwidth
+16#FF9B rokatakanahalfwidth
+16#FF9C wakatakanahalfwidth
+16#FF9D nkatakanahalfwidth
+16#FF9E voicedmarkkanahalfwidth
+16#FF9F semivoicedmarkkanahalfwidth
+16#FFE0 centmonospace
+16#FFE1 sterlingmonospace
+16#FFE3 macronmonospace
+16#FFE5 yenmonospace
+16#FFE6 wonmonospace
+
+%EOF
Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/CEEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/CEEncoding (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/CEEncoding 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,51 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+/CEEncoding [
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
+ /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+ /zero /one /two /three /four /five /six /seven
+ /eight /nine /colon /semicolon /less /equal /greater /question
+ /at /A /B /C /D /E /F /G
+ /H /I /J /K /L /M /N /O
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+ /grave /a /b /c /d /e /f /g
+ /h /i /j /k /l /m /n /o
+ /p /q /r /s /t /u /v /w
+ /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+ /.notdef /.notdef /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl
+ /.notdef /perthousand /Scaron /guilsinglleft /Sacute /Tcaron /Zcaron /Zacute
+ /.notdef /grave /acute /circumflex /tilde /bullet /endash /emdash
+ /.notdef /trademark /scaron /guilsinglright /sacute /tcaron /zcaron /zacute
+ /space /caron /breve /Lslash /currency /Aogonek /brokenbar /section
+ /dieresis /copyright /Scommaaccent /guillemotleft /logicalnot /hyphen /registered /Zdotaccent
+ /degree /plusminus /ogonek /lslash /acute /mu /paragraph /periodcentered
+ /cedilla /aogonek /scommaaccent /guillemotright /Lcaron /hungarumlaut /lcaron /zdotaccent
+ /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla
+ /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron
+ /Dcroat /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply
+ /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcommaaccent /germandbls
+ /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla
+ /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron
+ /dcroat /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide
+ /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcommaaccent /dotaccent
+
+]readonly
+/Encoding defineresource pop
Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertEncoding (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertEncoding 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,71 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+/ExpertEncoding [
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /space /exclamsmall /Hungarumlautsmall /.notdef
+ /dollaroldstyle /dollarsuperior /ampersandsmall /Acutesmall
+ /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader
+ /comma /hyphen /period /fraction
+ /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle
+ /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle
+ /eightoldstyle /nineoldstyle /colon /semicolon
+ /commasuperior /threequartersemdash /periodsuperior /questionsmall
+ /.notdef /asuperior /bsuperior /centsuperior
+ /dsuperior /esuperior /.notdef /.notdef
+ /.notdef /isuperior /.notdef /.notdef
+ /lsuperior /msuperior /nsuperior /osuperior
+ /.notdef /.notdef /rsuperior /ssuperior /tsuperior /.notdef /ff /fi
+ /fl /ffi /ffl /parenleftinferior
+ /.notdef /parenrightinferior /Circumflexsmall /hyphensuperior
+ /Gravesmall /Asmall /Bsmall /Csmall /Dsmall /Esmall /Fsmall /Gsmall
+ /Hsmall /Ismall /Jsmall /Ksmall /Lsmall /Msmall /Nsmall /Osmall
+ /Psmall /Qsmall /Rsmall /Ssmall /Tsmall /Usmall /Vsmall /Wsmall
+ /Xsmall /Ysmall /Zsmall /colonmonetary
+ /onefitted /rupiah /Tildesmall /.notdef
+
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /exclamdownsmall /centoldstyle /Lslashsmall
+ /.notdef /.notdef /Scaronsmall /Zcaronsmall
+ /Dieresissmall /Brevesmall /Caronsmall /.notdef
+ /Dotaccentsmall /.notdef /.notdef /Macronsmall
+ /.notdef /.notdef /figuredash /hypheninferior
+ /.notdef /.notdef /Ogoneksmall /Ringsmall
+ /Cedillasmall /.notdef /.notdef /.notdef
+ /onequarter /onehalf /threequarters /questiondownsmall
+ /oneeighth /threeeighths /fiveeighths /seveneighths
+ /onethird /twothirds /.notdef /.notdef
+ /zerosuperior /onesuperior /twosuperior /threesuperior
+ /foursuperior /fivesuperior /sixsuperior /sevensuperior
+ /eightsuperior /ninesuperior /zeroinferior /oneinferior
+ /twoinferior /threeinferior /fourinferior /fiveinferior
+ /sixinferior /seveninferior /eightinferior /nineinferior
+ /centinferior /dollarinferior /periodinferior /commainferior
+ /Agravesmall /Aacutesmall /Acircumflexsmall /Atildesmall
+ /Adieresissmall /Aringsmall /AEsmall /Ccedillasmall
+ /Egravesmall /Eacutesmall /Ecircumflexsmall /Edieresissmall
+ /Igravesmall /Iacutesmall /Icircumflexsmall /Idieresissmall
+ /Ethsmall /Ntildesmall /Ogravesmall /Oacutesmall
+ /Ocircumflexsmall /Otildesmall /Odieresissmall /OEsmall
+ /Oslashsmall /Ugravesmall /Uacutesmall /Ucircumflexsmall
+ /Udieresissmall /Yacutesmall /Thornsmall /Ydieresissmall
+] readonly
+/Encoding defineresource pop
Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertSubsetEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertSubsetEncoding (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/ExpertSubsetEncoding 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,65 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+/ExpertSubsetEncoding [
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /space /.notdef /.notdef /.notdef
+ /dollaroldstyle /dollarsuperior /.notdef /.notdef
+ /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader
+ /comma /hyphen /period /fraction
+ /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle
+ /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle
+ /eightoldstyle /nineoldstyle /colon /semicolon
+ /commasuperior /threequartersemdash /periodsuperior /.notdef
+ /.notdef /asuperior /bsuperior /centsuperior
+ /dsuperior /esuperior /.notdef /.notdef
+ /.notdef /isuperior /.notdef /.notdef
+ /lsuperior /msuperior /nsuperior /osuperior
+ /.notdef /.notdef /rsuperior /ssuperior /tsuperior /.notdef /ff /fi
+ /fl /ffi /ffl /parenleftinferior
+ /.notdef /parenrightinferior /.notdef /hyphensuperior
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /Colonmonetary
+ /onefitted /rupiah /.notdef /.notdef
+
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /centoldstyle /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /figuredash /hypheninferior
+ /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef
+ /onequarter /onehalf /threequarters /.notdef
+ /oneeighth /threeeighths /fiveeighths /seveneighths
+ /onethird /twothirds /.notdef /.notdef
+ /zerosuperior /onesuperior /twosuperior /thresuperior
+ /foursuperior /fivesuperior /sixsuperior /sevensuperior
+ /eightsuperior /ninesuperior /zeroinferior /oneinferior
+ /twoinferior /threeinferior /fourinferior /fiveinferior
+ /sixinferior /seveninferior /eightinferior /nineinferior
+ /centinferior /dollarinferior /periodinferior /commainferior
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] readonly
+/Encoding defineresource pop
Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/NotDefEncoding
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/NotDefEncoding (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/NotDefEncoding 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,20 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the Notdef encoding vector.
+/NotDefEncoding 256 array
+0 1 255 {1 index exch /.notdef put } for
+readonly /Encoding defineresource pop
+%EOF
Added: trunk/Master/tlpkg/tlgs/Resource/Encoding/Wingdings
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Encoding/Wingdings (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Encoding/Wingdings 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,244 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the Wingdings encoding vector.
+/Wingdings 256 array
+0 1 255 {1 index exch /.notdef put } for
+dup 9 /space put
+dup 32 /space put
+dup 33 /pencil put
+dup 34 /scissors put
+dup 35 /scissorscutting put
+dup 36 /readingglasses put
+dup 37 /bell put
+dup 38 /book put
+dup 39 /candle put
+dup 40 /telephonesolid put
+dup 41 /telhandsetcirc put
+dup 42 /envelopeback put
+dup 43 /envelopefront put
+dup 44 /mailboxflagdwn put
+dup 45 /mailboxflagup put
+dup 46 /mailbxopnflgup put
+dup 47 /mailbxopnflgdwn put
+dup 48 /folder put
+dup 49 /folderopen put
+dup 50 /filetalltext1 put
+dup 51 /filetalltext put
+dup 52 /filetalltext3 put
+dup 53 /filecabinet put
+dup 54 /hourglass put
+dup 55 /keyboard put
+dup 56 /mouse2button put
+dup 57 /ballpoint put
+dup 58 /pc put
+dup 59 /harddisk put
+dup 60 /floppy3 put
+dup 61 /floppy5 put
+dup 62 /tapereel put
+dup 63 /handwrite put
+dup 64 /handwriteleft put
+dup 65 /handv put
+dup 66 /handok put
+dup 67 /thumbup put
+dup 68 /thumbdown put
+dup 69 /handptleft put
+dup 70 /handptright put
+dup 71 /handptup put
+dup 72 /handptdwn put
+dup 73 /handhalt put
+dup 74 /smileface put
+dup 75 /neutralface put
+dup 76 /frownface put
+dup 77 /bomb put
+dup 78 /skullcrossbones put
+dup 79 /flag put
+dup 80 /pennant put
+dup 81 /airplane put
+dup 82 /sunshine put
+dup 83 /droplet put
+dup 84 /snowflake put
+dup 85 /crossoutline put
+dup 86 /crossshadow put
+dup 87 /crossceltic put
+dup 88 /crossmaltese put
+dup 89 /starofdavid put
+dup 90 /crescentstar put
+dup 91 /yinyang put
+dup 92 /om put
+dup 93 /wheel put
+dup 94 /aries put
+dup 95 /taurus put
+dup 96 /gemini put
+dup 97 /cancer put
+dup 98 /leo put
+dup 99 /virgo put
+dup 100 /libra put
+dup 101 /scorpio put
+dup 102 /saggitarius put
+dup 103 /capricorn put
+dup 104 /aquarius put
+dup 105 /pisces put
+dup 106 /ampersanditlc put
+dup 107 /ampersandit put
+dup 108 /circle6 put
+dup 109 /circleshadowdwn put
+dup 110 /square6 put
+dup 111 /box3 put
+dup 112 /box4 put
+dup 113 /boxshadowdwn put
+dup 114 /boxshadowup put
+dup 115 /lozenge4 put
+dup 116 /lozenge6 put
+dup 117 /rhombus6 put
+dup 118 /xrhombus put
+dup 119 /rhombus4 put
+dup 120 /clear put
+dup 121 /escape put
+dup 122 /command put
+dup 123 /rosette put
+dup 124 /rosettesolid put
+dup 125 /quotedbllftbld put
+dup 126 /quotedblrtbld put
+dup 128 /zerosans put
+dup 129 /onesans put
+dup 130 /twosans put
+dup 131 /threesans put
+dup 132 /foursans put
+dup 133 /fivesans put
+dup 134 /sixsans put
+dup 135 /sevensans put
+dup 136 /eightsans put
+dup 137 /ninesans put
+dup 138 /tensans put
+dup 139 /zerosansinv put
+dup 140 /onesansinv put
+dup 141 /twosansinv put
+dup 142 /threesansinv put
+dup 143 /foursansinv put
+dup 144 /fivesansinv put
+dup 145 /sixsansinv put
+dup 146 /sevensansinv put
+dup 147 /eightsansinv put
+dup 148 /ninesansinv put
+dup 149 /tensansinv put
+dup 150 /budleafne put
+dup 151 /budleafnw put
+dup 152 /budleafsw put
+dup 153 /budleafse put
+dup 154 /vineleafboldne put
+dup 155 /vineleafboldnw put
+dup 156 /vineleafboldsw put
+dup 157 /vineleafboldse put
+dup 158 /circle2 put
+dup 159 /circle4 put
+dup 160 /square2 put
+dup 161 /ring2 put
+dup 162 /ring4 put
+dup 163 /ring6 put
+dup 164 /ringbutton2 put
+dup 165 /target put
+dup 166 /circleshadowup put
+dup 167 /square4 put
+dup 168 /box2 put
+dup 169 /tristar2 put
+dup 170 /crosstar2 put
+dup 171 /pentastar2 put
+dup 172 /hexstar2 put
+dup 173 /octastar2 put
+dup 174 /dodecastar3 put
+dup 175 /octastar4 put
+dup 176 /registersquare put
+dup 177 /registercircle put
+dup 178 /cuspopen put
+dup 179 /cuspopen1 put
+dup 180 /query put
+dup 181 /circlestar put
+dup 182 /starshadow put
+dup 183 /oneoclock put
+dup 184 /twooclock put
+dup 185 /threeoclock put
+dup 186 /fouroclock put
+dup 187 /fiveoclock put
+dup 188 /sixoclock put
+dup 189 /sevenoclock put
+dup 190 /eightoclock put
+dup 191 /nineoclock put
+dup 192 /tenoclock put
+dup 193 /elevenoclock put
+dup 194 /twelveoclock put
+dup 195 /arrowdwnleft1 put
+dup 196 /arrowdwnrt1 put
+dup 197 /arrowupleft1 put
+dup 198 /arrowuprt1 put
+dup 199 /arrowleftup1 put
+dup 200 /arrowrtup1 put
+dup 201 /arrowleftdwn1 put
+dup 202 /arrowrtdwn1 put
+dup 203 /quiltsquare2 put
+dup 204 /quiltsquare2inv put
+dup 205 /leafccwsw put
+dup 206 /leafccwnw put
+dup 207 /leafccwse put
+dup 208 /leafccwne put
+dup 209 /leafnw put
+dup 210 /leafsw put
+dup 211 /leafne put
+dup 212 /leafse put
+dup 213 /deleteleft put
+dup 214 /deleteright put
+dup 215 /head2left put
+dup 216 /head2right put
+dup 217 /head2up put
+dup 218 /head2down put
+dup 219 /circleleft put
+dup 220 /circleright put
+dup 221 /circleup put
+dup 222 /circledown put
+dup 223 /barb2left put
+dup 224 /barb2right put
+dup 225 /barb2up put
+dup 226 /barb2down put
+dup 227 /barb2nw put
+dup 228 /barb2ne put
+dup 229 /barb2sw put
+dup 230 /barb2se put
+dup 231 /barb4left put
+dup 232 /barb4right put
+dup 233 /barb4up put
+dup 234 /barb4down put
+dup 235 /barb4nw put
+dup 236 /barb4ne put
+dup 237 /barb4sw put
+dup 238 /barb4se put
+dup 239 /bleft put
+dup 240 /bright put
+dup 241 /bup put
+dup 242 /bdown put
+dup 243 /bleftright put
+dup 244 /bupdown put
+dup 245 /bnw put
+dup 246 /bne put
+dup 247 /bsw put
+dup 248 /bse put
+dup 249 /bdash1 put
+dup 250 /bdash2 put
+dup 251 /xmarkbld put
+dup 252 /checkbld put
+dup 253 /boxxmarkbld put
+dup 254 /boxcheckbld put
+dup 255 /windowslogo put
+readonly /Encoding defineresource pop
+%EOF
Added: trunk/Master/tlpkg/tlgs/Resource/IdiomSet/Pscript5Idiom
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/IdiomSet/Pscript5Idiom (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/IdiomSet/Pscript5Idiom 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,175 @@
+%%
+%% Idioms for the Windows PSCRIPT5 PostScript driver
+%%
+
+currentuserparams /IdiomRecognition get
+<</IdiomRecognition false>> setuserparams
+
+/Pscript5Idiom
+<<
+%% replacements for the artificial bold routines. When the current device supports text rendering modes we set the mode to 2 (fill and stroke)
+%% and only show the text once, which improves seaching with pdfwrite. The parameter 'sBdx' is always calculated as the intended print resolution/300.
+%% We can't do that in PDF so we just use a heuristically derived fixed value.
+ /xsB [
+ {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xshow grestore gsave 0 sBdx rmoveto xshow grestore gsave sBdx sBdx rmoveto xshow grestore xshow} bind
+ {
+ /PreserveTrMode /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode xshow currentpoint grestore moveto}
+ {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xshow grestore gsave 0 sBdx rmoveto xshow grestore gsave sBdx dup rmoveto xshow grestore xshow} bind
+ ifelse
+ } bind
+ ]
+ /ysB [
+ {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto yshow grestore gsave 0 sBdx rmoveto yshow grestore gsave sBdx sBdx rmoveto yshow grestore yshow} bind
+ {
+ /PreserveTrMode /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode yshow currentpoint grestore moveto}
+ {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto yshow grestore gsave 0 sBdx rmoveto yshow grestore gsave sBdx dup rmoveto yshow grestore yshow} bind
+ ifelse
+ } bind
+ ]
+ /zsB [
+ {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xyshow grestore gsave 0 sBdx rmoveto xyshow grestore gsave sBdx sBdx rmoveto xyshow grestore xyshow} bind
+ {
+ /PreserveTrMode /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode xyshow currentpoint grestore moveto}
+ {2 copy 2 copy 2 copy gsave sBdx 0 rmoveto xyshow grestore gsave 0 sBdx rmoveto xyshow grestore gsave sBdx dup rmoveto xyshow grestore xyshow} bind
+ ifelse
+ } bind
+ ]
+ /sB [
+ {1 copy 2 copy gsave sBdx 0 rmoveto show grestore gsave 0 sBdx rmoveto show grestore gsave sBdx sBdx rmoveto show grestore show} bind
+ {
+ /PreserveTrMode /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode show currentpoint grestore moveto}
+ {1 copy 2 copy gsave sBdx 0 rmoveto show grestore gsave 0 sBdx rmoveto show grestore gsave sBdx dup rmoveto show grestore show} bind
+ ifelse
+ } bind
+ ]
+ /asB [
+ {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto ashow grestore gsave 0 sBdx rmoveto ashow grestore gsave sBdx sBdx rmoveto ashow grestore ashow} bind
+ {
+ /PreserveTrMode /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode ashow currentpoint grestore moveto}
+ {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto ashow grestore gsave 0 sBdx rmoveto ashow grestore gsave sBdx dup rmoveto ashow grestore ashow} bind
+ ifelse
+ } bind
+ ]
+ /wsB [
+ {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto widthshow grestore gsave 0 sBdx rmoveto widthshow grestore gsave sBdx sBdx rmoveto widthshow grestore widthshow} bind
+ {
+ /PreserveTrMode /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode widthshow currentpoint grestore moveto}
+ {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto widthshow grestore gsave 0 sBdx rmoveto widthshow grestore gsave sBdx dup rmoveto widthshow grestore widthshow} bind
+ ifelse
+ } bind
+ ]
+
+ /awsB [
+ {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto awidthshow grestore gsave 0 sBdx rmoveto awidthshow grestore gsave sBdx sBdx rmoveto awidthshow grestore awidthshow} bind
+ {
+ /PreserveTrMode /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ { gsave sBdx 2 div dup 0.2 setlinewidth currentcolor currentcolorspace .swapcolors setcolorspace setcolor .swapcolors rmoveto 2 .settextrenderingmode awidthshow currentpoint grestore moveto}
+ {3 copy 3 copy 3 copy gsave sBdx 0 rmoveto awidthshow grestore gsave 0 sBdx rmoveto awidthshow grestore gsave sBdx dup rmoveto awidthshow grestore awidthshow} bind
+ ifelse
+ } bind
+ ]
+
+ /pbf [
+ {
+ gsave pop /fEOFill exch def GDIBWPatternDict begin /yOrg exch def /xOrg exch def /PaintData exch def/OutputBPP exch def
+ /Height exch def/Width exch def/PaintType 1 def/PatternType 1 def/TilingType 1 def/BBox[0 0
+ Width Height]def/XStep Width def/YStep Height def/mx xOrg yOrg matrix translate def 20 dict dup begin
+ /ImageType 1 def/Width Width def/Height Height def/ImageMatrix[1 0 0 1 0 0]def
+ /BitsPerComponent 8 def OutputBPP 24 eq{/Decode[0 1 0 1 0 1]def}{OutputBPP 8 eq{
+ /Decode[0 1]def}{/Decode[0 1 0 1 0 1 0 1]def}ifelse}ifelse/DataSource{PaintData}def end/ImageDict
+ exch def/PaintProc{begin ImageDict image end}b currentdict mx makepattern setpattern end fEOFill{eofill}{fill}
+ ifelse grestore
+ }bind
+ {
+ /IsDistiller /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ } ifelse
+ {gsave pop /fEOFill exch def GDIBWPatternDict begin /yOrg exch def /xOrg exch def /PaintData exch def/OutputBPP exch def
+ /Height exch def/Width exch def/PaintType 1 def/PatternType 1 def/TilingType 1 def/BBox[0 0
+ 1 1]def/XStep 1 def/YStep 1 def/mx xOrg yOrg matrix translateWidth Height 3 -1 roll scale def 20 dict dup begin
+ /ImageType 1 def/Width Width def/Height Height def/ImageMatrix[1 0 0 1 0 0]def
+ /BitsPerComponent 8 def OutputBPP 24 eq{/Decode[0 1 0 1 0 1]def}{OutputBPP 8 eq{
+ /Decode[0 1]def}{/Decode[0 1 0 1 0 1 0 1]def}ifelse}ifelse/DataSource{PaintData}def end/ImageDict
+ exch def/PaintProc{begin ImageDict image end}b currentdict mx makepattern setpattern end fEOFill{eofill}{fill}
+ ifelse grestore
+ }{
+ gsave pop /fEOFill exch def GDIBWPatternDict begin /yOrg exch def /xOrg exch def /PaintData exch def/OutputBPP exch def
+ /Height exch def/Width exch def/PaintType 1 def/PatternType 1 def/TilingType 1 def/BBox[0 0
+ Width Height]def/XStep Width def/YStep Height def/mx xOrg yOrg matrix translate def 20 dict dup begin
+ /ImageType 1 def/Width Width def/Height Height def/ImageMatrix[1 0 0 1 0 0]def
+ /BitsPerComponent 8 def OutputBPP 24 eq{/Decode[0 1 0 1 0 1]def}{OutputBPP 8 eq{
+ /Decode[0 1]def}{/Decode[0 1 0 1 0 1 0 1]def}ifelse}ifelse/DataSource{PaintData}def end/ImageDict
+ exch def/PaintProc{begin ImageDict image end}b currentdict mx makepattern setpattern end fEOFill{eofill}{fill}
+ ifelse grestore
+ }
+ }
+ ]
+
+ /mask_pbf [
+ {gsave /fEOFill exch def 20 dict begin /yOrg exch def /xOrg exch def /PaintData exch def /Height exch def
+ /Width exch def /PatternType 1 def /PaintType 2 def /TilingType 1 def /BBox[0 0 Width Height] def
+ /XStep Width def /YStep Height def /mx xOrg yOrg matrix translate def /PaintProc{begin Width Height T 1 1 dtransform abs exch abs exch 0 0 3 -1 roll 0 0 6 array astore {PaintData}imagemask end} b
+ currentdict mx makepattern setpattern end fEOFill{eofill}{fill}ifelse grestore} bind
+ {
+ /IsDistiller /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ } ifelse
+ {
+ gsave
+ /fEOFill exch def 20 dict begin /yOrg exch def /xOrg exch def /PaintData exch def
+ /Height exch def /Width exch def /PatternType 1 def /PaintType 2 def /TilingType 1 def
+ /BBox[0 0 1 1] def
+ /XStep 1 def /YStep 1 def
+ /mx xOrg yOrg matrix translate Width Height 3 -1 roll scale def
+ /PaintProc{begin Width Height T Width Height 0 0 3 -1 roll 0 0 6 array astore {PaintData}imagemask end} b
+ currentdict mx makepattern setpattern end fEOFill{eofill}{fill}ifelse grestore
+ }{
+ gsave /fEOFill exch def 20 dict begin /yOrg exch def /xOrg exch def /PaintData exch def /Height exch def
+ /Width exch def /PatternType 1 def /PaintType 2 def /TilingType 1 def /BBox[0 0 Width Height] def
+ /XStep Width def /YStep Height def /mx xOrg yOrg matrix translate def /PaintProc{begin Width Height T 1 1 dtransform abs exch abs exch 0 0 3 -1 roll 0 0 6 array astore {PaintData}imagemask end} b
+ currentdict mx makepattern setpattern end fEOFill{eofill}{fill}ifelse grestore
+ } ifelse
+ } bind
+ ]
+>>
+/IdiomSet defineresource pop
+
+<</IdiomRecognition 3 -1 roll>> setuserparams
Added: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIcidfmap
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIconfig
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/FAPIfontmap
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2 (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/FCOfontmap-PCLPS2 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,106 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+
+% May add general FAPIfontmap records here like this :
+/Wingdings-Regular << /Path FCOfontfile2 /FontType 1 /FAPI /UFST /SubfontId 0 /Encoding /Wingdings /Decoding /FCO_Wingdings>> ;
+
+% Mapping Postscript fonts to pclp2_xj.fco FCO members :
+FCOfontfile ReadFCOfontmap:
+0 Albertus-Medium
+1 Albertus-ExtraBold
+2 AntiqueOlive
+3 AntiqueOlive-Italic
+4 AntiqueOlive-Bold
+5 Arial
+6 Arial-Italic
+7 Arial-Bold
+8 Arial-BoldItalic
+9 Clarendon-Condensed-Bold
+10 Coronet
+11 CourierHP
+12 CourierHP-Italic
+13 CourierHP-Bold
+14 CourierHP-BoldItalic
+15 Garamond-Antiqua
+16 Garamond-Kursiv
+17 Garamond-Halbfett
+18 Garamond-KursivHalbfett
+19 LetterGothic
+20 LetterGothic-Italic
+21 LetterGothic-Bold
+22 Marigold
+23 CGOmega
+24 CGOmega-Italic
+25 CGOmega-Bold
+26 CGOmega-BoldItalic
+27 SymbolMT SymbolEncoding FCO_Symbol
+28 CGTimes
+29 CGTimes-Italic
+30 CGTimes-Bold
+31 CGTimes-BoldItalic
+32 TimesNewRoman
+33 TimesNewRoman-Italic
+34 TimesNewRoman-Bold
+35 TimesNewRoman-BoldItalic
+36 UniversMedium
+37 UniversMedium-Italic
+38 Univers-Bold
+39 Univers-BoldItalic
+40 Univers-Condensed-Medium
+41 Univers-Condensed-MediumItalic
+42 Univers-Condensed-Bold
+43 Univers-Condensed-BoldItalic
+44 Courier-
+45 Courier-Italic
+46 Courier-Bold-
+47 Courier-BoldItalic
+48 AvantGarde-Book
+49 AvantGarde-BookOblique
+50 AvantGarde-Demi
+51 AvantGarde-DemiOblique
+52 Bookman-Light
+53 Bookman-LightItalic
+54 Bookman-Demi
+55 Bookman-DemiItalic
+56 Courier
+57 Courier-Oblique
+58 Courier-Bold
+59 Courier-BoldOblique
+60 Helvetica
+61 Helvetica-Oblique
+62 Helvetica-Bold
+63 Helvetica-BoldOblique
+64 Helvetica-Narrow
+65 Helvetica-Narrow-Oblique
+66 Helvetica-Narrow-Bold
+67 Helvetica-Narrow-BoldOblique
+68 NewCenturySchlbk-Roman
+69 NewCenturySchlbk-Italic
+70 NewCenturySchlbk-Bold
+71 NewCenturySchlbk-BoldItalic
+72 Palatino-Roman
+73 Palatino-Italic
+74 Palatino-Bold
+75 Palatino-BoldItalic
+76 Symbol SymbolEncoding FCO_Symbol
+77 Times-Roman
+78 Times-Italic
+79 Times-Bold
+80 Times-BoldItalic
+81 ZapfChancery-MediumItalic
+82 ZapfDingbats DingbatsEncoding FCO_Dingbats
+EndFCOfontmap
+%EOF
Added: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap
___________________________________________________________________
Added: svn:keywords "Date Author Revision Id"
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,343 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Fontmap - standard font catalog for Ghostscript.
+
+% ----------------------------------------------------------------
+
+% This file is a catalog of fonts known to Ghostscript. Any font
+% that is to be loaded automatically when named must be in this catalog,
+% except for fonts that Ghostscript finds automatically in directories
+% named in the GS_FONTPATH environment variable.
+
+% Each font has an entry consisting of three items:
+%
+% - The name by which the font is known inside Ghostscript
+% (a Ghostscript name preceded by a `/', or a string enclosed
+% in parentheses). This is used to find the file from which
+% a font of a given name should be loaded.
+%
+% - Information depending on whether this is a real font or a
+% font alias:
+%
+% - For real fonts, the name of the Ghostscript font
+% file (a Ghostscript string, enclosed in parentheses).
+% The filename should include the extension, which (by
+% convention) is `.gsf'. `.pfa' and `.pfb' files are
+% also usable as fonts for Ghostscript.
+%
+% - For font aliases, the name of the font which should
+% be used when this one is requested, preceded by a
+% `/'. See the entry for Charter below for an example.
+% Note that an alias name cannot be enclosed in parentheses.
+%
+% - At least one space or tab, and a terminating semicolon.
+
+% The following table is executed as a PostScript file.
+% If you add new entries, be sure to copy the punctuation accurately;
+% in particular, you must leave at least one space or tab between each
+% field in the entry. Also, please read fonts.doc for important information
+% about font names.
+
+% PDF interpreter evaluates hexadecimal escapes in PDF font names before
+% looking up the font. When the resulting name cannot be represented using
+% PostScript name syntax, the string can be used instead of the name.
+
+% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
+% and other programs that don't include full PostScript interpreters,
+% as well as with PostScript interpreters; .gsf fonts are compatible with
+% PostScript interpreters, but not with ATM or similar programs.
+
+%
+%
+% Fonts contributed by:
+% URW++ Design and Development Incorporated
+% Poppenbuetteler Bogen 29A
+% D-22399 Hamburg
+% Germany
+% tel. +49 (40) 60 60 50
+% fax +49 (40) 60 60 51 11
+% http://www.urwpp.de
+% for distribution under the GNU License and Aladdin Free Public License.
+% See the notice at the head of this Fontmap file for licensing terms.
+% Each of these fonts is individually covered by the license:
+% for licensing purposes, they are not "part of" any larger entity.
+% The following notice applies to these fonts:
+%
+% Copyright URW Software, Copyright 1994 by URW.
+%
+
+% Aliases
+
+/AvantGarde-BookOblique /URWGothic-BookOblique ;
+/AvantGarde-Book /URWGothic-Book ;
+/AvantGarde-DemiOblique /URWGothic-DemiOblique ;
+/AvantGarde-Demi /URWGothic-Demi ;
+/Bookman-DemiItalic /URWBookman-DemiItalic ;
+/Bookman-Demi /URWBookman-Demi ;
+/Bookman-LightItalic /URWBookman-LightItalic ;
+/Bookman-Light /URWBookman-Light ;
+/Courier-Bold /NimbusMonoPS-Bold ;
+/Courier-BoldOblique /NimbusMonoPS-BoldItalic ;
+/Courier /NimbusMonoPS-Regular ;
+/Courier-Oblique /NimbusMonoPS-Italic ;
+/Helvetica-Bold /NimbusSans-Bold ;
+/Helvetica-BoldOblique /NimbusSans-BoldOblique ;
+/Helvetica-Narrow-Bold /NimbusSansNarrow-Bold ;
+/Helvetica-Narrow-BoldOblique /NimbusSansNarrow-BdOblique ;
+/Helvetica-Narrow /NimbusSansNarrow-Regular ;
+/Helvetica-Narrow-Oblique /NimbusSansNarrow-Oblique ;
+/Helvetica /NimbusSans-Regular ;
+/Helvetica-Oblique /NimbusSans-Oblique ;
+/NewCenturySchlbk-Bold /C059-Bold ;
+/NewCenturySchlbk-BoldItalic /C059-BdIta ;
+/NewCenturySchlbk-Italic /C059-Italic ;
+/NewCenturySchlbk-Roman /C059-Roman ;
+/Palatino-BoldItalic /P052-BoldItalic ;
+/Palatino-Bold /P052-Bold ;
+/Palatino-Italic /P052-Italic ;
+/Palatino-Roman /P052-Roman ;
+/Symbol /StandardSymbolsPS ;
+/Times-BoldItalic /NimbusRoman-BoldItalic ;
+/Times-Bold /NimbusRoman-Bold ;
+/Times-Italic /NimbusRoman-Italic ;
+/Times-Roman /NimbusRoman-Regular ;
+/ZapfChancery-MediumItalic /Z003-MediumItalic ;
+/ZapfDingbats /D050000L ;
+
+%
+%
+% Type 1 fonts contributed to the X11R5 distribution.
+%
+
+% The following notice accompanied the Charter fonts.
+%
+% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
+%
+% You are hereby granted permission under all Bitstream propriety rights
+% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
+% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
+% for any purpose and without restriction; provided, that this notice is
+% left intact on all copies of such fonts and that Bitstream's trademark
+% is acknowledged as shown below on all unmodified copies of the 4 Charter
+% Type 1 fonts.
+%
+% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
+
+/CharterBT-Roman (bchr.pfa) ;
+/CharterBT-Italic (bchri.pfa) ;
+/CharterBT-Bold (bchb.pfa) ;
+/CharterBT-BoldItalic (bchbi.pfa) ;
+
+% Aliases
+
+/Charter-Roman /CharterBT-Roman ;
+/Charter-Italic /CharterBT-Italic ;
+/Charter-Bold /CharterBT-Bold ;
+/Charter-BoldItalic /CharterBT-BoldItalic ;
+
+% The following notice accompanied the Utopia font:
+%
+% Permission to use, reproduce, display and distribute the listed
+% typefaces is hereby granted, provided that the Adobe Copyright notice
+% appears in all whole and partial copies of the software and that the
+% following trademark symbol and attribution appear in all unmodified
+% copies of the software:
+%
+% Copyright (c) 1989 Adobe Systems Incorporated
+% Utopia (R)
+% Utopia is a registered trademark of Adobe Systems Incorporated
+%
+% The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
+% Metric files) donated are:
+%
+% Utopia Regular
+% Utopia Italic
+% Utopia Bold
+% Utopia Bold Italic
+
+/Utopia-Regular (putr.pfa) ;
+/Utopia-Italic (putri.pfa) ;
+/Utopia-Bold (putb.pfa) ;
+/Utopia-BoldItalic (putbi.pfa) ;
+
+%
+%
+% Fonts contributed by URW GmbH for distribution under the GNU License.
+% The following notice accompanied these fonts:
+%
+% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
+% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
+%
+% Copyright (c) 1992 URW GmbH, Hamburg, Germany
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+% See the GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 U.S.A.
+%
+% Address:
+% URW GmbH
+% PC Support
+% Harksheider Strasse 102
+% 2000 Hamburg 65
+% Germany
+% Phone: +49 40 60 60 50 (Reception)
+% Phone: +49 40 60 60 52 30 (PC Support)
+% Fax : +49 40 60 60 52 52
+%
+
+/URWAntiquaT-RegularCondensed (u003043t.gsf) ;
+/URWGroteskT-Bold (u004006t.gsf) ;
+
+%
+%
+% Calligraphic Kana fonts. These are distributed under the OFL 1.1:
+%
+% Copyright (c) 1993, Kevin Hartig (kevin.hartig at gmail.com),
+% with Reserved Font Name Calligraphic-Hiragana and Calligraphic-Katakana.
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
+% This license is available with an FAQ at: http://scripts.sil.org/OFL
+
+% Hiragana and Katakana fonts. The character names are inappropriate,
+% and the encoding is probably not related to any known standard.
+
+/Calligraphic-Hiragana (fhirw.gsf) ;
+/Calligraphic-Katakana (fkarw.gsf) ;
+
+%
+%
+% Public-domain fonts. These have no copyright, and are of unknown quality.
+
+% Cyrillic fonts. The character names are inappropriate,
+% and the encoding is probably not related to any known standard.
+
+/Shareware-Cyrillic-Regular (fcyr.gsf) ;
+/Shareware-Cyrillic-Italic (fcyri.gsf) ;
+
+% Aliases
+/Cyrillic /Cyrillic-Regular ;
+/Cyrillic-Regular /Shareware-Cyrillic-Regular ;
+/Cyrillic-Italic /Shareware-Cyrillic-Italic ;
+
+%
+%
+% Fonts converted from Hershey outlines. These are constructed and
+% maintained manually. These are also in the public domain.
+%
+% The suggested UniqueID's and filenames are constructed differently for
+% these than for the ones above, because of the strange way that the Hershey
+% fonts were constructed. The scheme for these looks like:
+%
+% 42TTXY0
+%
+% TT = typeface, X = ``class'', Y = variation
+%
+% The typeface names and numbers are listed in fonts.mak.
+%
+% class:
+% 0 = normal = r
+% 1 = simplex = s
+% 2 = complex = c
+% 3 = triplex = t
+% 4 = duplex = d
+%
+% variation:
+% 0 = normal (omitted)
+% 1 = oblique = o
+% 2 = italic = i
+% 3 = bold = b
+% 4 = bold oblique = bo
+% 5 = bold italic = bi
+%
+
+% Fonts created by Thomas Wolff <wolff at inf.fu-berlin.de>, by adding
+% accents, accented characters, and various other non-alphabetics
+% to the original Hershey fonts. These are "freeware", not to be sold.
+
+/Hershey-Gothic-English (hrger.pfa) ; % 5066533
+/Hershey-Gothic-German (hrgrr.pfa) ;
+/Hershey-Gothic-Italian (hritr.pfa) ;
+
+/Hershey-Plain-Duplex (hrpld.pfa) ;
+/Hershey-Plain-Duplex-Italic (hrpldi.pfa) ;
+/Hershey-Plain-Triplex (hrplt.pfa) ;
+/Hershey-Plain-Triplex-Italic (hrplti.pfa) ;
+
+/Hershey-Script-Complex (hrscc.pfa) ;
+/Hershey-Script-Simplex (hrscs.pfa) ; % 5066541
+
+% Fonts created algorithmically from the above.
+
+/Hershey-Gothic-English-Bold (hrgerb.gsf) ; % 5066542
+/Hershey-Gothic-English-Oblique (hrgero.gsf) ;
+/Hershey-Gothic-English-SemiBold (hrgerd.gsf) ;
+/Hershey-Gothic-German-Bold (hrgrrb.gsf) ;
+/Hershey-Gothic-German-Oblique (hrgrro.gsf) ;
+/Hershey-Gothic-Italian-Bold (hritrb.gsf) ;
+/Hershey-Gothic-Italian-Oblique (hritro.gsf) ;
+
+/Hershey-Plain-Duplex-Bold (hrpldb.gsf) ;
+/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf) ;
+/Hershey-Plain-Triplex-Bold (hrpltb.gsf) ;
+/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf) ;
+
+/Hershey-Script-Complex-Bold (hrsccb.gsf) ;
+/Hershey-Script-Complex-Oblique (hrscco.gsf) ;
+/Hershey-Script-Simplex-Bold (hrscsb.gsf) ;
+/Hershey-Script-Simplex-Oblique (hrscso.gsf) ; % 5066556
+
+% Fonts consisting only of characters from the original Hershey
+% distribution. These are Type 3 fonts.
+
+/Hershey-Greek-Complex (hrgkc.gsf) ; % 5066557
+/Hershey-Greek-Simplex (hrgks.gsf) ;
+
+/Hershey-Plain (hrplr.gsf) ;
+/Hershey-Plain-Simplex (hrpls.gsf) ; % 5066560
+
+% Fonts created algorithmically from the above.
+
+/Hershey-Plain-Bold (hrplrb.gsf) ; % 5066561
+/Hershey-Plain-Bold-Oblique (hrplrbo.gsf) ;
+/Hershey-Plain-Oblique (hrplro.gsf) ;
+/Hershey-Plain-Simplex-Bold (hrplsb.gsf) ;
+/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf) ;
+/Hershey-Plain-Simplex-Oblique (hrplso.gsf) ; % 5066566
+
+% This font, and only this font among the Hershey fonts, uses
+% the SymbolEncoding.
+
+/Hershey-Symbol (hrsyr.gsf) ; % 5066567
+
+/Arial /ArialMT ;
+/Arial,Bold /Arial-BoldMT ;
+/Arial,Italic /Arial-ItalicMT ;
+/Arial,BoldItalic /Arial-BoldItalicMT ;
+
+/TimesNewRoman /TimesNewRomanPSMT ;
+/TimesNewRoman,Bold /TimesNewRomanPS-BoldMT ;
+/TimesNewRoman,Italic /TimesNewRomanPS-ItalicMT ;
+/TimesNewRoman,BoldItalic /TimesNewRomanPS-BoldItalicMT ;
+
Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/Fontmap.GS
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/cidfmap
___________________________________________________________________
Added: svn:keywords "Date Author Revision Id"
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_agl.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,7988 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% $Id: gs_agl.ps 10822 2010-02-27 20:24:13Z alexcher $
+
+% This file was derived from the Adobe Glyph List, version 2.0, dated
+% September 20, 2002.
+% See http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
+% That file does not contain any copyright notice.
+
+/AdobeGlyphList mark
+/A 16#0041
+/AE 16#00C6
+/AEacute 16#01FC
+/AEmacron 16#01E2
+/AEsmall 16#F7E6
+/Aacute 16#00C1
+/Aacutesmall 16#F7E1
+/Abreve 16#0102
+/Abreveacute 16#1EAE
+/Abrevecyrillic 16#04D0
+/Abrevedotbelow 16#1EB6
+/Abrevegrave 16#1EB0
+/Abrevehookabove 16#1EB2
+/Abrevetilde 16#1EB4
+/Acaron 16#01CD
+/Acircle 16#24B6
+/Acircumflex 16#00C2
+/Acircumflexacute 16#1EA4
+/Acircumflexdotbelow 16#1EAC
+/Acircumflexgrave 16#1EA6
+/Acircumflexhookabove 16#1EA8
+/Acircumflexsmall 16#F7E2
+/Acircumflextilde 16#1EAA
+/Acute 16#F6C9
+/Acutesmall 16#F7B4
+/Acyrillic 16#0410
+/Adblgrave 16#0200
+/Adieresis 16#00C4
+/Adieresiscyrillic 16#04D2
+/Adieresismacron 16#01DE
+/Adieresissmall 16#F7E4
+/Adotbelow 16#1EA0
+/Adotmacron 16#01E0
+/Agrave 16#00C0
+/Agravesmall 16#F7E0
+/Ahookabove 16#1EA2
+/Aiecyrillic 16#04D4
+/Ainvertedbreve 16#0202
+/Alpha 16#0391
+/Alphatonos 16#0386
+/Amacron 16#0100
+/Amonospace 16#FF21
+/Aogonek 16#0104
+/Aring 16#00C5
+/Aringacute 16#01FA
+/Aringbelow 16#1E00
+/Aringsmall 16#F7E5
+/Asmall 16#F761
+/Atilde 16#00C3
+/Atildesmall 16#F7E3
+/Aybarmenian 16#0531
+/B 16#0042
+/Bcircle 16#24B7
+/Bdotaccent 16#1E02
+/Bdotbelow 16#1E04
+/Becyrillic 16#0411
+/Benarmenian 16#0532
+/Beta 16#0392
+/Bhook 16#0181
+/Blinebelow 16#1E06
+/Bmonospace 16#FF22
+/Brevesmall 16#F6F4
+/Bsmall 16#F762
+/Btopbar 16#0182
+/C 16#0043
+/Caarmenian 16#053E
+/Cacute 16#0106
+/Caron 16#F6CA
+/Caronsmall 16#F6F5
+/Ccaron 16#010C
+/Ccedilla 16#00C7
+/Ccedillaacute 16#1E08
+/Ccedillasmall 16#F7E7
+/Ccircle 16#24B8
+/Ccircumflex 16#0108
+/Cdot 16#010A
+/Cdotaccent 16#010A
+/Cedillasmall 16#F7B8
+/Chaarmenian 16#0549
+/Cheabkhasiancyrillic 16#04BC
+/Checyrillic 16#0427
+/Chedescenderabkhasiancyrillic 16#04BE
+/Chedescendercyrillic 16#04B6
+/Chedieresiscyrillic 16#04F4
+/Cheharmenian 16#0543
+/Chekhakassiancyrillic 16#04CB
+/Cheverticalstrokecyrillic 16#04B8
+/Chi 16#03A7
+/Chook 16#0187
+/Circumflexsmall 16#F6F6
+/Cmonospace 16#FF23
+/Coarmenian 16#0551
+/Csmall 16#F763
+/D 16#0044
+/DZ 16#01F1
+/DZcaron 16#01C4
+/Daarmenian 16#0534
+/Dafrican 16#0189
+/Dcaron 16#010E
+/Dcedilla 16#1E10
+/Dcircle 16#24B9
+/Dcircumflexbelow 16#1E12
+/Dcroat 16#0110
+/Ddotaccent 16#1E0A
+/Ddotbelow 16#1E0C
+/Decyrillic 16#0414
+/Deicoptic 16#03EE
+/Delta 16#2206
+/Deltagreek 16#0394
+/Dhook 16#018A
+/Dieresis 16#F6CB
+/DieresisAcute 16#F6CC
+/DieresisGrave 16#F6CD
+/Dieresissmall 16#F7A8
+/Digammagreek 16#03DC
+/Djecyrillic 16#0402
+/Dlinebelow 16#1E0E
+/Dmonospace 16#FF24
+/Dotaccentsmall 16#F6F7
+/Dslash 16#0110
+/Dsmall 16#F764
+/Dtopbar 16#018B
+/Dz 16#01F2
+/Dzcaron 16#01C5
+/Dzeabkhasiancyrillic 16#04E0
+/Dzecyrillic 16#0405
+/Dzhecyrillic 16#040F
+/E 16#0045
+/Eacute 16#00C9
+/Eacutesmall 16#F7E9
+/Ebreve 16#0114
+/Ecaron 16#011A
+/Ecedillabreve 16#1E1C
+/Echarmenian 16#0535
+/Ecircle 16#24BA
+/Ecircumflex 16#00CA
+/Ecircumflexacute 16#1EBE
+/Ecircumflexbelow 16#1E18
+/Ecircumflexdotbelow 16#1EC6
+/Ecircumflexgrave 16#1EC0
+/Ecircumflexhookabove 16#1EC2
+/Ecircumflexsmall 16#F7EA
+/Ecircumflextilde 16#1EC4
+/Ecyrillic 16#0404
+/Edblgrave 16#0204
+/Edieresis 16#00CB
+/Edieresissmall 16#F7EB
+/Edot 16#0116
+/Edotaccent 16#0116
+/Edotbelow 16#1EB8
+/Efcyrillic 16#0424
+/Egrave 16#00C8
+/Egravesmall 16#F7E8
+/Eharmenian 16#0537
+/Ehookabove 16#1EBA
+/Eightroman 16#2167
+/Einvertedbreve 16#0206
+/Eiotifiedcyrillic 16#0464
+/Elcyrillic 16#041B
+/Elevenroman 16#216A
+/Emacron 16#0112
+/Emacronacute 16#1E16
+/Emacrongrave 16#1E14
+/Emcyrillic 16#041C
+/Emonospace 16#FF25
+/Encyrillic 16#041D
+/Endescendercyrillic 16#04A2
+/Eng 16#014A
+/Enghecyrillic 16#04A4
+/Enhookcyrillic 16#04C7
+/Eogonek 16#0118
+/Eopen 16#0190
+/Epsilon 16#0395
+/Epsilontonos 16#0388
+/Ercyrillic 16#0420
+/Ereversed 16#018E
+/Ereversedcyrillic 16#042D
+/Escyrillic 16#0421
+/Esdescendercyrillic 16#04AA
+/Esh 16#01A9
+/Esmall 16#F765
+/Eta 16#0397
+/Etarmenian 16#0538
+/Etatonos 16#0389
+/Eth 16#00D0
+/Ethsmall 16#F7F0
+/Etilde 16#1EBC
+/Etildebelow 16#1E1A
+/Euro 16#20AC
+/Ezh 16#01B7
+/Ezhcaron 16#01EE
+/Ezhreversed 16#01B8
+/F 16#0046
+/Fcircle 16#24BB
+/Fdotaccent 16#1E1E
+/Feharmenian 16#0556
+/Feicoptic 16#03E4
+/Fhook 16#0191
+/Fitacyrillic 16#0472
+/Fiveroman 16#2164
+/Fmonospace 16#FF26
+/Fourroman 16#2163
+/Fsmall 16#F766
+/G 16#0047
+/GBsquare 16#3387
+/Gacute 16#01F4
+/Gamma 16#0393
+/Gammaafrican 16#0194
+/Gangiacoptic 16#03EA
+/Gbreve 16#011E
+/Gcaron 16#01E6
+/Gcedilla 16#0122
+/Gcircle 16#24BC
+/Gcircumflex 16#011C
+/Gcommaaccent 16#0122
+/Gdot 16#0120
+/Gdotaccent 16#0120
+/Gecyrillic 16#0413
+/Ghadarmenian 16#0542
+/Ghemiddlehookcyrillic 16#0494
+/Ghestrokecyrillic 16#0492
+/Gheupturncyrillic 16#0490
+/Ghook 16#0193
+/Gimarmenian 16#0533
+/Gjecyrillic 16#0403
+/Gmacron 16#1E20
+/Gmonospace 16#FF27
+/Grave 16#F6CE
+/Gravesmall 16#F760
+/Gsmall 16#F767
+/Gsmallhook 16#029B
+/Gstroke 16#01E4
+/H 16#0048
+/H18533 16#25CF
+/H18543 16#25AA
+/H18551 16#25AB
+/H22073 16#25A1
+/HPsquare 16#33CB
+/Haabkhasiancyrillic 16#04A8
+/Hadescendercyrillic 16#04B2
+/Hardsigncyrillic 16#042A
+/Hbar 16#0126
+/Hbrevebelow 16#1E2A
+/Hcedilla 16#1E28
+/Hcircle 16#24BD
+/Hcircumflex 16#0124
+/Hdieresis 16#1E26
+/Hdotaccent 16#1E22
+/Hdotbelow 16#1E24
+/Hmonospace 16#FF28
+/Hoarmenian 16#0540
+/Horicoptic 16#03E8
+/Hsmall 16#F768
+/Hungarumlaut 16#F6CF
+/Hungarumlautsmall 16#F6F8
+/Hzsquare 16#3390
+/I 16#0049
+/IAcyrillic 16#042F
+/IJ 16#0132
+/IUcyrillic 16#042E
+/Iacute 16#00CD
+/Iacutesmall 16#F7ED
+/Ibreve 16#012C
+/Icaron 16#01CF
+/Icircle 16#24BE
+/Icircumflex 16#00CE
+/Icircumflexsmall 16#F7EE
+/Icyrillic 16#0406
+/Idblgrave 16#0208
+/Idieresis 16#00CF
+/Idieresisacute 16#1E2E
+/Idieresiscyrillic 16#04E4
+/Idieresissmall 16#F7EF
+/Idot 16#0130
+/Idotaccent 16#0130
+/Idotbelow 16#1ECA
+/Iebrevecyrillic 16#04D6
+/Iecyrillic 16#0415
+/Ifraktur 16#2111
+/Igrave 16#00CC
+/Igravesmall 16#F7EC
+/Ihookabove 16#1EC8
+/Iicyrillic 16#0418
+/Iinvertedbreve 16#020A
+/Iishortcyrillic 16#0419
+/Imacron 16#012A
+/Imacroncyrillic 16#04E2
+/Imonospace 16#FF29
+/Iniarmenian 16#053B
+/Iocyrillic 16#0401
+/Iogonek 16#012E
+/Iota 16#0399
+/Iotaafrican 16#0196
+/Iotadieresis 16#03AA
+/Iotatonos 16#038A
+/Ismall 16#F769
+/Istroke 16#0197
+/Itilde 16#0128
+/Itildebelow 16#1E2C
+/Izhitsacyrillic 16#0474
+/Izhitsadblgravecyrillic 16#0476
+/J 16#004A
+/Jaarmenian 16#0541
+/Jcircle 16#24BF
+/Jcircumflex 16#0134
+/Jecyrillic 16#0408
+/Jheharmenian 16#054B
+/Jmonospace 16#FF2A
+/Jsmall 16#F76A
+/K 16#004B
+/KBsquare 16#3385
+/KKsquare 16#33CD
+/Kabashkircyrillic 16#04A0
+/Kacute 16#1E30
+/Kacyrillic 16#041A
+/Kadescendercyrillic 16#049A
+/Kahookcyrillic 16#04C3
+/Kappa 16#039A
+/Kastrokecyrillic 16#049E
+/Kaverticalstrokecyrillic 16#049C
+/Kcaron 16#01E8
+/Kcedilla 16#0136
+/Kcircle 16#24C0
+/Kcommaaccent 16#0136
+/Kdotbelow 16#1E32
+/Keharmenian 16#0554
+/Kenarmenian 16#053F
+/Khacyrillic 16#0425
+/Kheicoptic 16#03E6
+/Khook 16#0198
+/Kjecyrillic 16#040C
+/Klinebelow 16#1E34
+/Kmonospace 16#FF2B
+/Koppacyrillic 16#0480
+/Koppagreek 16#03DE
+/Ksicyrillic 16#046E
+/Ksmall 16#F76B
+/L 16#004C
+/LJ 16#01C7
+/LL 16#F6BF
+/Lacute 16#0139
+/Lambda 16#039B
+/Lcaron 16#013D
+/Lcedilla 16#013B
+/Lcircle 16#24C1
+/Lcircumflexbelow 16#1E3C
+/Lcommaaccent 16#013B
+/Ldot 16#013F
+/Ldotaccent 16#013F
+/Ldotbelow 16#1E36
+/Ldotbelowmacron 16#1E38
+/Liwnarmenian 16#053C
+/Lj 16#01C8
+/Ljecyrillic 16#0409
+/Llinebelow 16#1E3A
+/Lmonospace 16#FF2C
+/Lslash 16#0141
+/Lslashsmall 16#F6F9
+/Lsmall 16#F76C
+/M 16#004D
+/MBsquare 16#3386
+/Macron 16#F6D0
+/Macronsmall 16#F7AF
+/Macute 16#1E3E
+/Mcircle 16#24C2
+/Mdotaccent 16#1E40
+/Mdotbelow 16#1E42
+/Menarmenian 16#0544
+/Mmonospace 16#FF2D
+/Msmall 16#F76D
+/Mturned 16#019C
+/Mu 16#039C
+/N 16#004E
+/NJ 16#01CA
+/Nacute 16#0143
+/Ncaron 16#0147
+/Ncedilla 16#0145
+/Ncircle 16#24C3
+/Ncircumflexbelow 16#1E4A
+/Ncommaaccent 16#0145
+/Ndotaccent 16#1E44
+/Ndotbelow 16#1E46
+/Nhookleft 16#019D
+/Nineroman 16#2168
+/Nj 16#01CB
+/Njecyrillic 16#040A
+/Nlinebelow 16#1E48
+/Nmonospace 16#FF2E
+/Nowarmenian 16#0546
+/Nsmall 16#F76E
+/Ntilde 16#00D1
+/Ntildesmall 16#F7F1
+/Nu 16#039D
+/O 16#004F
+/OE 16#0152
+/OEsmall 16#F6FA
+/Oacute 16#00D3
+/Oacutesmall 16#F7F3
+/Obarredcyrillic 16#04E8
+/Obarreddieresiscyrillic 16#04EA
+/Obreve 16#014E
+/Ocaron 16#01D1
+/Ocenteredtilde 16#019F
+/Ocircle 16#24C4
+/Ocircumflex 16#00D4
+/Ocircumflexacute 16#1ED0
+/Ocircumflexdotbelow 16#1ED8
+/Ocircumflexgrave 16#1ED2
+/Ocircumflexhookabove 16#1ED4
+/Ocircumflexsmall 16#F7F4
+/Ocircumflextilde 16#1ED6
+/Ocyrillic 16#041E
+/Odblacute 16#0150
+/Odblgrave 16#020C
+/Odieresis 16#00D6
+/Odieresiscyrillic 16#04E6
+/Odieresissmall 16#F7F6
+/Odotbelow 16#1ECC
+/Ogoneksmall 16#F6FB
+/Ograve 16#00D2
+/Ogravesmall 16#F7F2
+/Oharmenian 16#0555
+/Ohm 16#2126
+/Ohookabove 16#1ECE
+/Ohorn 16#01A0
+/Ohornacute 16#1EDA
+/Ohorndotbelow 16#1EE2
+/Ohorngrave 16#1EDC
+/Ohornhookabove 16#1EDE
+/Ohorntilde 16#1EE0
+/Ohungarumlaut 16#0150
+/Oi 16#01A2
+/Oinvertedbreve 16#020E
+/Omacron 16#014C
+/Omacronacute 16#1E52
+/Omacrongrave 16#1E50
+/Omega 16#2126
+/Omegacyrillic 16#0460
+/Omegagreek 16#03A9
+/Omegaroundcyrillic 16#047A
+/Omegatitlocyrillic 16#047C
+/Omegatonos 16#038F
+/Omicron 16#039F
+/Omicrontonos 16#038C
+/Omonospace 16#FF2F
+/Oneroman 16#2160
+/Oogonek 16#01EA
+/Oogonekmacron 16#01EC
+/Oopen 16#0186
+/Oslash 16#00D8
+/Oslashacute 16#01FE
+/Oslashsmall 16#F7F8
+/Osmall 16#F76F
+/Ostrokeacute 16#01FE
+/Otcyrillic 16#047E
+/Otilde 16#00D5
+/Otildeacute 16#1E4C
+/Otildedieresis 16#1E4E
+/Otildesmall 16#F7F5
+/P 16#0050
+/Pacute 16#1E54
+/Pcircle 16#24C5
+/Pdotaccent 16#1E56
+/Pecyrillic 16#041F
+/Peharmenian 16#054A
+/Pemiddlehookcyrillic 16#04A6
+/Phi 16#03A6
+/Phook 16#01A4
+/Pi 16#03A0
+/Piwrarmenian 16#0553
+/Pmonospace 16#FF30
+/Psi 16#03A8
+/Psicyrillic 16#0470
+/Psmall 16#F770
+/Q 16#0051
+/Qcircle 16#24C6
+/Qmonospace 16#FF31
+/Qsmall 16#F771
+/R 16#0052
+/Raarmenian 16#054C
+/Racute 16#0154
+/Rcaron 16#0158
+/Rcedilla 16#0156
+/Rcircle 16#24C7
+/Rcommaaccent 16#0156
+/Rdblgrave 16#0210
+/Rdotaccent 16#1E58
+/Rdotbelow 16#1E5A
+/Rdotbelowmacron 16#1E5C
+/Reharmenian 16#0550
+/Rfraktur 16#211C
+/Rho 16#03A1
+/Ringsmall 16#F6FC
+/Rinvertedbreve 16#0212
+/Rlinebelow 16#1E5E
+/Rmonospace 16#FF32
+/Rsmall 16#F772
+/Rsmallinverted 16#0281
+/Rsmallinvertedsuperior 16#02B6
+/S 16#0053
+/SF010000 16#250C
+/SF020000 16#2514
+/SF030000 16#2510
+/SF040000 16#2518
+/SF050000 16#253C
+/SF060000 16#252C
+/SF070000 16#2534
+/SF080000 16#251C
+/SF090000 16#2524
+/SF100000 16#2500
+/SF110000 16#2502
+/SF190000 16#2561
+/SF200000 16#2562
+/SF210000 16#2556
+/SF220000 16#2555
+/SF230000 16#2563
+/SF240000 16#2551
+/SF250000 16#2557
+/SF260000 16#255D
+/SF270000 16#255C
+/SF280000 16#255B
+/SF360000 16#255E
+/SF370000 16#255F
+/SF380000 16#255A
+/SF390000 16#2554
+/SF400000 16#2569
+/SF410000 16#2566
+/SF420000 16#2560
+/SF430000 16#2550
+/SF440000 16#256C
+/SF450000 16#2567
+/SF460000 16#2568
+/SF470000 16#2564
+/SF480000 16#2565
+/SF490000 16#2559
+/SF500000 16#2558
+/SF510000 16#2552
+/SF520000 16#2553
+/SF530000 16#256B
+/SF540000 16#256A
+/Sacute 16#015A
+/Sacutedotaccent 16#1E64
+/Sampigreek 16#03E0
+/Scaron 16#0160
+/Scarondotaccent 16#1E66
+/Scaronsmall 16#F6FD
+/Scedilla 16#015E
+/Schwa 16#018F
+/Schwacyrillic 16#04D8
+/Schwadieresiscyrillic 16#04DA
+/Scircle 16#24C8
+/Scircumflex 16#015C
+/Scommaaccent 16#0218
+/Sdotaccent 16#1E60
+/Sdotbelow 16#1E62
+/Sdotbelowdotaccent 16#1E68
+/Seharmenian 16#054D
+/Sevenroman 16#2166
+/Shaarmenian 16#0547
+/Shacyrillic 16#0428
+/Shchacyrillic 16#0429
+/Sheicoptic 16#03E2
+/Shhacyrillic 16#04BA
+/Shimacoptic 16#03EC
+/Sigma 16#03A3
+/Sixroman 16#2165
+/Smonospace 16#FF33
+/Softsigncyrillic 16#042C
+/Ssmall 16#F773
+/Stigmagreek 16#03DA
+/T 16#0054
+/Tau 16#03A4
+/Tbar 16#0166
+/Tcaron 16#0164
+/Tcedilla 16#0162
+/Tcircle 16#24C9
+/Tcircumflexbelow 16#1E70
+/Tcommaaccent 16#0162
+/Tdotaccent 16#1E6A
+/Tdotbelow 16#1E6C
+/Tecyrillic 16#0422
+/Tedescendercyrillic 16#04AC
+/Tenroman 16#2169
+/Tetsecyrillic 16#04B4
+/Theta 16#0398
+/Thook 16#01AC
+/Thorn 16#00DE
+/Thornsmall 16#F7FE
+/Threeroman 16#2162
+/Tildesmall 16#F6FE
+/Tiwnarmenian 16#054F
+/Tlinebelow 16#1E6E
+/Tmonospace 16#FF34
+/Toarmenian 16#0539
+/Tonefive 16#01BC
+/Tonesix 16#0184
+/Tonetwo 16#01A7
+/Tretroflexhook 16#01AE
+/Tsecyrillic 16#0426
+/Tshecyrillic 16#040B
+/Tsmall 16#F774
+/Twelveroman 16#216B
+/Tworoman 16#2161
+/U 16#0055
+/Uacute 16#00DA
+/Uacutesmall 16#F7FA
+/Ubreve 16#016C
+/Ucaron 16#01D3
+/Ucircle 16#24CA
+/Ucircumflex 16#00DB
+/Ucircumflexbelow 16#1E76
+/Ucircumflexsmall 16#F7FB
+/Ucyrillic 16#0423
+/Udblacute 16#0170
+/Udblgrave 16#0214
+/Udieresis 16#00DC
+/Udieresisacute 16#01D7
+/Udieresisbelow 16#1E72
+/Udieresiscaron 16#01D9
+/Udieresiscyrillic 16#04F0
+/Udieresisgrave 16#01DB
+/Udieresismacron 16#01D5
+/Udieresissmall 16#F7FC
+/Udotbelow 16#1EE4
+/Ugrave 16#00D9
+/Ugravesmall 16#F7F9
+/Uhookabove 16#1EE6
+/Uhorn 16#01AF
+/Uhornacute 16#1EE8
+/Uhorndotbelow 16#1EF0
+/Uhorngrave 16#1EEA
+/Uhornhookabove 16#1EEC
+/Uhorntilde 16#1EEE
+/Uhungarumlaut 16#0170
+/Uhungarumlautcyrillic 16#04F2
+/Uinvertedbreve 16#0216
+/Ukcyrillic 16#0478
+/Umacron 16#016A
+/Umacroncyrillic 16#04EE
+/Umacrondieresis 16#1E7A
+/Umonospace 16#FF35
+/Uogonek 16#0172
+/Upsilon 16#03A5
+/Upsilon1 16#03D2
+/Upsilonacutehooksymbolgreek 16#03D3
+/Upsilonafrican 16#01B1
+/Upsilondieresis 16#03AB
+/Upsilondieresishooksymbolgreek 16#03D4
+/Upsilonhooksymbol 16#03D2
+/Upsilontonos 16#038E
+/Uring 16#016E
+/Ushortcyrillic 16#040E
+/Usmall 16#F775
+/Ustraightcyrillic 16#04AE
+/Ustraightstrokecyrillic 16#04B0
+/Utilde 16#0168
+/Utildeacute 16#1E78
+/Utildebelow 16#1E74
+/V 16#0056
+/Vcircle 16#24CB
+/Vdotbelow 16#1E7E
+/Vecyrillic 16#0412
+/Vewarmenian 16#054E
+/Vhook 16#01B2
+/Vmonospace 16#FF36
+/Voarmenian 16#0548
+/Vsmall 16#F776
+/Vtilde 16#1E7C
+/W 16#0057
+/Wacute 16#1E82
+/Wcircle 16#24CC
+/Wcircumflex 16#0174
+/Wdieresis 16#1E84
+/Wdotaccent 16#1E86
+/Wdotbelow 16#1E88
+/Wgrave 16#1E80
+/Wmonospace 16#FF37
+/Wsmall 16#F777
+/X 16#0058
+/Xcircle 16#24CD
+/Xdieresis 16#1E8C
+/Xdotaccent 16#1E8A
+/Xeharmenian 16#053D
+/Xi 16#039E
+/Xmonospace 16#FF38
+/Xsmall 16#F778
+/Y 16#0059
+/Yacute 16#00DD
+/Yacutesmall 16#F7FD
+/Yatcyrillic 16#0462
+/Ycircle 16#24CE
+/Ycircumflex 16#0176
+/Ydieresis 16#0178
+/Ydieresissmall 16#F7FF
+/Ydotaccent 16#1E8E
+/Ydotbelow 16#1EF4
+/Yericyrillic 16#042B
+/Yerudieresiscyrillic 16#04F8
+/Ygrave 16#1EF2
+/Yhook 16#01B3
+/Yhookabove 16#1EF6
+/Yiarmenian 16#0545
+/Yicyrillic 16#0407
+/Yiwnarmenian 16#0552
+/Ymonospace 16#FF39
+/Ysmall 16#F779
+/Ytilde 16#1EF8
+/Yusbigcyrillic 16#046A
+/Yusbigiotifiedcyrillic 16#046C
+/Yuslittlecyrillic 16#0466
+/Yuslittleiotifiedcyrillic 16#0468
+/Z 16#005A
+/Zaarmenian 16#0536
+/Zacute 16#0179
+/Zcaron 16#017D
+/Zcaronsmall 16#F6FF
+/Zcircle 16#24CF
+/Zcircumflex 16#1E90
+/Zdot 16#017B
+/Zdotaccent 16#017B
+/Zdotbelow 16#1E92
+/Zecyrillic 16#0417
+/Zedescendercyrillic 16#0498
+/Zedieresiscyrillic 16#04DE
+/Zeta 16#0396
+/Zhearmenian 16#053A
+/Zhebrevecyrillic 16#04C1
+/Zhecyrillic 16#0416
+/Zhedescendercyrillic 16#0496
+/Zhedieresiscyrillic 16#04DC
+/Zlinebelow 16#1E94
+/Zmonospace 16#FF3A
+/Zsmall 16#F77A
+/Zstroke 16#01B5
+/a 16#0061
+/aabengali 16#0986
+/aacute 16#00E1
+/aadeva 16#0906
+/aagujarati 16#0A86
+/aagurmukhi 16#0A06
+/aamatragurmukhi 16#0A3E
+/aarusquare 16#3303
+/aavowelsignbengali 16#09BE
+/aavowelsigndeva 16#093E
+/aavowelsigngujarati 16#0ABE
+/abbreviationmarkarmenian 16#055F
+/abbreviationsigndeva 16#0970
+/abengali 16#0985
+/abopomofo 16#311A
+/abreve 16#0103
+/abreveacute 16#1EAF
+/abrevecyrillic 16#04D1
+/abrevedotbelow 16#1EB7
+/abrevegrave 16#1EB1
+/abrevehookabove 16#1EB3
+/abrevetilde 16#1EB5
+/acaron 16#01CE
+/acircle 16#24D0
+/acircumflex 16#00E2
+/acircumflexacute 16#1EA5
+/acircumflexdotbelow 16#1EAD
+/acircumflexgrave 16#1EA7
+/acircumflexhookabove 16#1EA9
+/acircumflextilde 16#1EAB
+/acute 16#00B4
+/acutebelowcmb 16#0317
+/acutecmb 16#0301
+/acutecomb 16#0301
+/acutedeva 16#0954
+/acutelowmod 16#02CF
+/acutetonecmb 16#0341
+/acyrillic 16#0430
+/adblgrave 16#0201
+/addakgurmukhi 16#0A71
+/adeva 16#0905
+/adieresis 16#00E4
+/adieresiscyrillic 16#04D3
+/adieresismacron 16#01DF
+/adotbelow 16#1EA1
+/adotmacron 16#01E1
+/ae 16#00E6
+/aeacute 16#01FD
+/aekorean 16#3150
+/aemacron 16#01E3
+/afii00208 16#2015
+/afii08941 16#20A4
+/afii10017 16#0410
+/afii10018 16#0411
+/afii10019 16#0412
+/afii10020 16#0413
+/afii10021 16#0414
+/afii10022 16#0415
+/afii10023 16#0401
+/afii10024 16#0416
+/afii10025 16#0417
+/afii10026 16#0418
+/afii10027 16#0419
+/afii10028 16#041A
+/afii10029 16#041B
+/afii10030 16#041C
+/afii10031 16#041D
+/afii10032 16#041E
+/afii10033 16#041F
+/afii10034 16#0420
+/afii10035 16#0421
+/afii10036 16#0422
+/afii10037 16#0423
+/afii10038 16#0424
+/afii10039 16#0425
+/afii10040 16#0426
+/afii10041 16#0427
+/afii10042 16#0428
+/afii10043 16#0429
+/afii10044 16#042A
+/afii10045 16#042B
+/afii10046 16#042C
+/afii10047 16#042D
+/afii10048 16#042E
+/afii10049 16#042F
+/afii10050 16#0490
+/afii10051 16#0402
+/afii10052 16#0403
+/afii10053 16#0404
+/afii10054 16#0405
+/afii10055 16#0406
+/afii10056 16#0407
+/afii10057 16#0408
+/afii10058 16#0409
+/afii10059 16#040A
+/afii10060 16#040B
+/afii10061 16#040C
+/afii10062 16#040E
+/afii10063 16#F6C4
+/afii10064 16#F6C5
+/afii10065 16#0430
+/afii10066 16#0431
+/afii10067 16#0432
+/afii10068 16#0433
+/afii10069 16#0434
+/afii10070 16#0435
+/afii10071 16#0451
+/afii10072 16#0436
+/afii10073 16#0437
+/afii10074 16#0438
+/afii10075 16#0439
+/afii10076 16#043A
+/afii10077 16#043B
+/afii10078 16#043C
+/afii10079 16#043D
+/afii10080 16#043E
+/afii10081 16#043F
+/afii10082 16#0440
+/afii10083 16#0441
+/afii10084 16#0442
+/afii10085 16#0443
+/afii10086 16#0444
+/afii10087 16#0445
+/afii10088 16#0446
+/afii10089 16#0447
+/afii10090 16#0448
+/afii10091 16#0449
+/afii10092 16#044A
+/afii10093 16#044B
+/afii10094 16#044C
+/afii10095 16#044D
+/afii10096 16#044E
+/afii10097 16#044F
+/afii10098 16#0491
+/afii10099 16#0452
+/afii10100 16#0453
+/afii10101 16#0454
+/afii10102 16#0455
+/afii10103 16#0456
+/afii10104 16#0457
+/afii10105 16#0458
+/afii10106 16#0459
+/afii10107 16#045A
+/afii10108 16#045B
+/afii10109 16#045C
+/afii10110 16#045E
+/afii10145 16#040F
+/afii10146 16#0462
+/afii10147 16#0472
+/afii10148 16#0474
+/afii10192 16#F6C6
+/afii10193 16#045F
+/afii10194 16#0463
+/afii10195 16#0473
+/afii10196 16#0475
+/afii10831 16#F6C7
+/afii10832 16#F6C8
+/afii10846 16#04D9
+/afii299 16#200E
+/afii300 16#200F
+/afii301 16#200D
+/afii57381 16#066A
+/afii57388 16#060C
+/afii57392 16#0660
+/afii57393 16#0661
+/afii57394 16#0662
+/afii57395 16#0663
+/afii57396 16#0664
+/afii57397 16#0665
+/afii57398 16#0666
+/afii57399 16#0667
+/afii57400 16#0668
+/afii57401 16#0669
+/afii57403 16#061B
+/afii57407 16#061F
+/afii57409 16#0621
+/afii57410 16#0622
+/afii57411 16#0623
+/afii57412 16#0624
+/afii57413 16#0625
+/afii57414 16#0626
+/afii57415 16#0627
+/afii57416 16#0628
+/afii57417 16#0629
+/afii57418 16#062A
+/afii57419 16#062B
+/afii57420 16#062C
+/afii57421 16#062D
+/afii57422 16#062E
+/afii57423 16#062F
+/afii57424 16#0630
+/afii57425 16#0631
+/afii57426 16#0632
+/afii57427 16#0633
+/afii57428 16#0634
+/afii57429 16#0635
+/afii57430 16#0636
+/afii57431 16#0637
+/afii57432 16#0638
+/afii57433 16#0639
+/afii57434 16#063A
+/afii57440 16#0640
+/afii57441 16#0641
+/afii57442 16#0642
+/afii57443 16#0643
+/afii57444 16#0644
+/afii57445 16#0645
+/afii57446 16#0646
+/afii57448 16#0648
+/afii57449 16#0649
+/afii57450 16#064A
+/afii57451 16#064B
+/afii57452 16#064C
+/afii57453 16#064D
+/afii57454 16#064E
+/afii57455 16#064F
+/afii57456 16#0650
+/afii57457 16#0651
+/afii57458 16#0652
+/afii57470 16#0647
+/afii57505 16#06A4
+/afii57506 16#067E
+/afii57507 16#0686
+/afii57508 16#0698
+/afii57509 16#06AF
+/afii57511 16#0679
+/afii57512 16#0688
+/afii57513 16#0691
+/afii57514 16#06BA
+/afii57519 16#06D2
+/afii57534 16#06D5
+/afii57636 16#20AA
+/afii57645 16#05BE
+/afii57658 16#05C3
+/afii57664 16#05D0
+/afii57665 16#05D1
+/afii57666 16#05D2
+/afii57667 16#05D3
+/afii57668 16#05D4
+/afii57669 16#05D5
+/afii57670 16#05D6
+/afii57671 16#05D7
+/afii57672 16#05D8
+/afii57673 16#05D9
+/afii57674 16#05DA
+/afii57675 16#05DB
+/afii57676 16#05DC
+/afii57677 16#05DD
+/afii57678 16#05DE
+/afii57679 16#05DF
+/afii57680 16#05E0
+/afii57681 16#05E1
+/afii57682 16#05E2
+/afii57683 16#05E3
+/afii57684 16#05E4
+/afii57685 16#05E5
+/afii57686 16#05E6
+/afii57687 16#05E7
+/afii57688 16#05E8
+/afii57689 16#05E9
+/afii57690 16#05EA
+/afii57694 16#FB2A
+/afii57695 16#FB2B
+/afii57700 16#FB4B
+/afii57705 16#FB1F
+/afii57716 16#05F0
+/afii57717 16#05F1
+/afii57718 16#05F2
+/afii57723 16#FB35
+/afii57793 16#05B4
+/afii57794 16#05B5
+/afii57795 16#05B6
+/afii57796 16#05BB
+/afii57797 16#05B8
+/afii57798 16#05B7
+/afii57799 16#05B0
+/afii57800 16#05B2
+/afii57801 16#05B1
+/afii57802 16#05B3
+/afii57803 16#05C2
+/afii57804 16#05C1
+/afii57806 16#05B9
+/afii57807 16#05BC
+/afii57839 16#05BD
+/afii57841 16#05BF
+/afii57842 16#05C0
+/afii57929 16#02BC
+/afii61248 16#2105
+/afii61289 16#2113
+/afii61352 16#2116
+/afii61573 16#202C
+/afii61574 16#202D
+/afii61575 16#202E
+/afii61664 16#200C
+/afii63167 16#066D
+/afii64937 16#02BD
+/agrave 16#00E0
+/agujarati 16#0A85
+/agurmukhi 16#0A05
+/ahiragana 16#3042
+/ahookabove 16#1EA3
+/aibengali 16#0990
+/aibopomofo 16#311E
+/aideva 16#0910
+/aiecyrillic 16#04D5
+/aigujarati 16#0A90
+/aigurmukhi 16#0A10
+/aimatragurmukhi 16#0A48
+/ainarabic 16#0639
+/ainfinalarabic 16#FECA
+/aininitialarabic 16#FECB
+/ainmedialarabic 16#FECC
+/ainvertedbreve 16#0203
+/aivowelsignbengali 16#09C8
+/aivowelsigndeva 16#0948
+/aivowelsigngujarati 16#0AC8
+/akatakana 16#30A2
+/akatakanahalfwidth 16#FF71
+/akorean 16#314F
+/alef 16#05D0
+/alefarabic 16#0627
+/alefdageshhebrew 16#FB30
+/aleffinalarabic 16#FE8E
+/alefhamzaabovearabic 16#0623
+/alefhamzaabovefinalarabic 16#FE84
+/alefhamzabelowarabic 16#0625
+/alefhamzabelowfinalarabic 16#FE88
+/alefhebrew 16#05D0
+/aleflamedhebrew 16#FB4F
+/alefmaddaabovearabic 16#0622
+/alefmaddaabovefinalarabic 16#FE82
+/alefmaksuraarabic 16#0649
+/alefmaksurafinalarabic 16#FEF0
+/alefmaksurainitialarabic 16#FEF3
+/alefmaksuramedialarabic 16#FEF4
+/alefpatahhebrew 16#FB2E
+/alefqamatshebrew 16#FB2F
+/aleph 16#2135
+/allequal 16#224C
+/alpha 16#03B1
+/alphatonos 16#03AC
+/amacron 16#0101
+/amonospace 16#FF41
+/ampersand 16#0026
+/ampersandmonospace 16#FF06
+/ampersandsmall 16#F726
+/amsquare 16#33C2
+/anbopomofo 16#3122
+/angbopomofo 16#3124
+/angkhankhuthai 16#0E5A
+/angle 16#2220
+/anglebracketleft 16#3008
+/anglebracketleftvertical 16#FE3F
+/anglebracketright 16#3009
+/anglebracketrightvertical 16#FE40
+/angleleft 16#2329
+/angleright 16#232A
+/angstrom 16#212B
+/anoteleia 16#0387
+/anudattadeva 16#0952
+/anusvarabengali 16#0982
+/anusvaradeva 16#0902
+/anusvaragujarati 16#0A82
+/aogonek 16#0105
+/apaatosquare 16#3300
+/aparen 16#249C
+/apostrophearmenian 16#055A
+/apostrophemod 16#02BC
+/apple 16#F8FF
+/approaches 16#2250
+/approxequal 16#2248
+/approxequalorimage 16#2252
+/approximatelyequal 16#2245
+/araeaekorean 16#318E
+/araeakorean 16#318D
+/arc 16#2312
+/arighthalfring 16#1E9A
+/aring 16#00E5
+/aringacute 16#01FB
+/aringbelow 16#1E01
+/arrowboth 16#2194
+/arrowdashdown 16#21E3
+/arrowdashleft 16#21E0
+/arrowdashright 16#21E2
+/arrowdashup 16#21E1
+/arrowdblboth 16#21D4
+/arrowdbldown 16#21D3
+/arrowdblleft 16#21D0
+/arrowdblright 16#21D2
+/arrowdblup 16#21D1
+/arrowdown 16#2193
+/arrowdownleft 16#2199
+/arrowdownright 16#2198
+/arrowdownwhite 16#21E9
+/arrowheaddownmod 16#02C5
+/arrowheadleftmod 16#02C2
+/arrowheadrightmod 16#02C3
+/arrowheadupmod 16#02C4
+/arrowhorizex 16#F8E7
+/arrowleft 16#2190
+/arrowleftdbl 16#21D0
+/arrowleftdblstroke 16#21CD
+/arrowleftoverright 16#21C6
+/arrowleftwhite 16#21E6
+/arrowright 16#2192
+/arrowrightdblstroke 16#21CF
+/arrowrightheavy 16#279E
+/arrowrightoverleft 16#21C4
+/arrowrightwhite 16#21E8
+/arrowtableft 16#21E4
+/arrowtabright 16#21E5
+/arrowup 16#2191
+/arrowupdn 16#2195
+/arrowupdnbse 16#21A8
+/arrowupdownbase 16#21A8
+/arrowupleft 16#2196
+/arrowupleftofdown 16#21C5
+/arrowupright 16#2197
+/arrowupwhite 16#21E7
+/arrowvertex 16#F8E6
+/asciicircum 16#005E
+/asciicircummonospace 16#FF3E
+/asciitilde 16#007E
+/asciitildemonospace 16#FF5E
+/ascript 16#0251
+/ascriptturned 16#0252
+/asmallhiragana 16#3041
+/asmallkatakana 16#30A1
+/asmallkatakanahalfwidth 16#FF67
+/asterisk 16#002A
+/asteriskaltonearabic 16#066D
+/asteriskarabic 16#066D
+/asteriskmath 16#2217
+/asteriskmonospace 16#FF0A
+/asterisksmall 16#FE61
+/asterism 16#2042
+/asuperior 16#F6E9
+/asymptoticallyequal 16#2243
+/at 16#0040
+/atilde 16#00E3
+/atmonospace 16#FF20
+/atsmall 16#FE6B
+/aturned 16#0250
+/aubengali 16#0994
+/aubopomofo 16#3120
+/audeva 16#0914
+/augujarati 16#0A94
+/augurmukhi 16#0A14
+/aulengthmarkbengali 16#09D7
+/aumatragurmukhi 16#0A4C
+/auvowelsignbengali 16#09CC
+/auvowelsigndeva 16#094C
+/auvowelsigngujarati 16#0ACC
+/avagrahadeva 16#093D
+/aybarmenian 16#0561
+/ayin 16#05E2
+/ayinaltonehebrew 16#FB20
+/ayinhebrew 16#05E2
+/b 16#0062
+/babengali 16#09AC
+/backslash 16#005C
+/backslashmonospace 16#FF3C
+/badeva 16#092C
+/bagujarati 16#0AAC
+/bagurmukhi 16#0A2C
+/bahiragana 16#3070
+/bahtthai 16#0E3F
+/bakatakana 16#30D0
+/bar 16#007C
+/barmonospace 16#FF5C
+/bbopomofo 16#3105
+/bcircle 16#24D1
+/bdotaccent 16#1E03
+/bdotbelow 16#1E05
+/beamedsixteenthnotes 16#266C
+/because 16#2235
+/becyrillic 16#0431
+/beharabic 16#0628
+/behfinalarabic 16#FE90
+/behinitialarabic 16#FE91
+/behiragana 16#3079
+/behmedialarabic 16#FE92
+/behmeeminitialarabic 16#FC9F
+/behmeemisolatedarabic 16#FC08
+/behnoonfinalarabic 16#FC6D
+/bekatakana 16#30D9
+/benarmenian 16#0562
+/bet 16#05D1
+/beta 16#03B2
+/betasymbolgreek 16#03D0
+/betdagesh 16#FB31
+/betdageshhebrew 16#FB31
+/bethebrew 16#05D1
+/betrafehebrew 16#FB4C
+/bhabengali 16#09AD
+/bhadeva 16#092D
+/bhagujarati 16#0AAD
+/bhagurmukhi 16#0A2D
+/bhook 16#0253
+/bihiragana 16#3073
+/bikatakana 16#30D3
+/bilabialclick 16#0298
+/bindigurmukhi 16#0A02
+/birusquare 16#3331
+/blackcircle 16#25CF
+/blackdiamond 16#25C6
+/blackdownpointingtriangle 16#25BC
+/blackleftpointingpointer 16#25C4
+/blackleftpointingtriangle 16#25C0
+/blacklenticularbracketleft 16#3010
+/blacklenticularbracketleftvertical 16#FE3B
+/blacklenticularbracketright 16#3011
+/blacklenticularbracketrightvertical 16#FE3C
+/blacklowerlefttriangle 16#25E3
+/blacklowerrighttriangle 16#25E2
+/blackrectangle 16#25AC
+/blackrightpointingpointer 16#25BA
+/blackrightpointingtriangle 16#25B6
+/blacksmallsquare 16#25AA
+/blacksmilingface 16#263B
+/blacksquare 16#25A0
+/blackstar 16#2605
+/blackupperlefttriangle 16#25E4
+/blackupperrighttriangle 16#25E5
+/blackuppointingsmalltriangle 16#25B4
+/blackuppointingtriangle 16#25B2
+/blank 16#2423
+/blinebelow 16#1E07
+/block 16#2588
+/bmonospace 16#FF42
+/bobaimaithai 16#0E1A
+/bohiragana 16#307C
+/bokatakana 16#30DC
+/bparen 16#249D
+/bqsquare 16#33C3
+/braceex 16#F8F4
+/braceleft 16#007B
+/braceleftbt 16#F8F3
+/braceleftmid 16#F8F2
+/braceleftmonospace 16#FF5B
+/braceleftsmall 16#FE5B
+/bracelefttp 16#F8F1
+/braceleftvertical 16#FE37
+/braceright 16#007D
+/bracerightbt 16#F8FE
+/bracerightmid 16#F8FD
+/bracerightmonospace 16#FF5D
+/bracerightsmall 16#FE5C
+/bracerighttp 16#F8FC
+/bracerightvertical 16#FE38
+/bracketleft 16#005B
+/bracketleftbt 16#F8F0
+/bracketleftex 16#F8EF
+/bracketleftmonospace 16#FF3B
+/bracketlefttp 16#F8EE
+/bracketright 16#005D
+/bracketrightbt 16#F8FB
+/bracketrightex 16#F8FA
+/bracketrightmonospace 16#FF3D
+/bracketrighttp 16#F8F9
+/breve 16#02D8
+/brevebelowcmb 16#032E
+/brevecmb 16#0306
+/breveinvertedbelowcmb 16#032F
+/breveinvertedcmb 16#0311
+/breveinverteddoublecmb 16#0361
+/bridgebelowcmb 16#032A
+/bridgeinvertedbelowcmb 16#033A
+/brokenbar 16#00A6
+/bstroke 16#0180
+/bsuperior 16#F6EA
+/btopbar 16#0183
+/buhiragana 16#3076
+/bukatakana 16#30D6
+/bullet 16#2022
+/bulletinverse 16#25D8
+/bulletoperator 16#2219
+/bullseye 16#25CE
+/c 16#0063
+/caarmenian 16#056E
+/cabengali 16#099A
+/cacute 16#0107
+/cadeva 16#091A
+/cagujarati 16#0A9A
+/cagurmukhi 16#0A1A
+/calsquare 16#3388
+/candrabindubengali 16#0981
+/candrabinducmb 16#0310
+/candrabindudeva 16#0901
+/candrabindugujarati 16#0A81
+/capslock 16#21EA
+/careof 16#2105
+/caron 16#02C7
+/caronbelowcmb 16#032C
+/caroncmb 16#030C
+/carriagereturn 16#21B5
+/cbopomofo 16#3118
+/ccaron 16#010D
+/ccedilla 16#00E7
+/ccedillaacute 16#1E09
+/ccircle 16#24D2
+/ccircumflex 16#0109
+/ccurl 16#0255
+/cdot 16#010B
+/cdotaccent 16#010B
+/cdsquare 16#33C5
+/cedilla 16#00B8
+/cedillacmb 16#0327
+/cent 16#00A2
+/centigrade 16#2103
+/centinferior 16#F6DF
+/centmonospace 16#FFE0
+/centoldstyle 16#F7A2
+/centsuperior 16#F6E0
+/chaarmenian 16#0579
+/chabengali 16#099B
+/chadeva 16#091B
+/chagujarati 16#0A9B
+/chagurmukhi 16#0A1B
+/chbopomofo 16#3114
+/cheabkhasiancyrillic 16#04BD
+/checkmark 16#2713
+/checyrillic 16#0447
+/chedescenderabkhasiancyrillic 16#04BF
+/chedescendercyrillic 16#04B7
+/chedieresiscyrillic 16#04F5
+/cheharmenian 16#0573
+/chekhakassiancyrillic 16#04CC
+/cheverticalstrokecyrillic 16#04B9
+/chi 16#03C7
+/chieuchacirclekorean 16#3277
+/chieuchaparenkorean 16#3217
+/chieuchcirclekorean 16#3269
+/chieuchkorean 16#314A
+/chieuchparenkorean 16#3209
+/chochangthai 16#0E0A
+/chochanthai 16#0E08
+/chochingthai 16#0E09
+/chochoethai 16#0E0C
+/chook 16#0188
+/cieucacirclekorean 16#3276
+/cieucaparenkorean 16#3216
+/cieuccirclekorean 16#3268
+/cieuckorean 16#3148
+/cieucparenkorean 16#3208
+/cieucuparenkorean 16#321C
+/circle 16#25CB
+/circlemultiply 16#2297
+/circleot 16#2299
+/circleplus 16#2295
+/circlepostalmark 16#3036
+/circlewithlefthalfblack 16#25D0
+/circlewithrighthalfblack 16#25D1
+/circumflex 16#02C6
+/circumflexbelowcmb 16#032D
+/circumflexcmb 16#0302
+/clear 16#2327
+/clickalveolar 16#01C2
+/clickdental 16#01C0
+/clicklateral 16#01C1
+/clickretroflex 16#01C3
+/club 16#2663
+/clubsuitblack 16#2663
+/clubsuitwhite 16#2667
+/cmcubedsquare 16#33A4
+/cmonospace 16#FF43
+/cmsquaredsquare 16#33A0
+/coarmenian 16#0581
+/colon 16#003A
+/colonmonetary 16#20A1
+/colonmonospace 16#FF1A
+/colonsign 16#20A1
+/colonsmall 16#FE55
+/colontriangularhalfmod 16#02D1
+/colontriangularmod 16#02D0
+/comma 16#002C
+/commaabovecmb 16#0313
+/commaaboverightcmb 16#0315
+/commaaccent 16#F6C3
+/commaarabic 16#060C
+/commaarmenian 16#055D
+/commainferior 16#F6E1
+/commamonospace 16#FF0C
+/commareversedabovecmb 16#0314
+/commareversedmod 16#02BD
+/commasmall 16#FE50
+/commasuperior 16#F6E2
+/commaturnedabovecmb 16#0312
+/commaturnedmod 16#02BB
+/compass 16#263C
+/congruent 16#2245
+/contourintegral 16#222E
+/control 16#2303
+/controlACK 16#0006
+/controlBEL 16#0007
+/controlBS 16#0008
+/controlCAN 16#0018
+/controlCR 16#000D
+/controlDC1 16#0011
+/controlDC2 16#0012
+/controlDC3 16#0013
+/controlDC4 16#0014
+/controlDEL 16#007F
+/controlDLE 16#0010
+/controlEM 16#0019
+/controlENQ 16#0005
+/controlEOT 16#0004
+/controlESC 16#001B
+/controlETB 16#0017
+/controlETX 16#0003
+/controlFF 16#000C
+/controlFS 16#001C
+/controlGS 16#001D
+/controlHT 16#0009
+/controlLF 16#000A
+/controlNAK 16#0015
+/controlRS 16#001E
+/controlSI 16#000F
+/controlSO 16#000E
+/controlSOT 16#0002
+/controlSTX 16#0001
+/controlSUB 16#001A
+/controlSYN 16#0016
+/controlUS 16#001F
+/controlVT 16#000B
+/copyright 16#00A9
+/copyrightsans 16#F8E9
+/copyrightserif 16#F6D9
+/cornerbracketleft 16#300C
+/cornerbracketlefthalfwidth 16#FF62
+/cornerbracketleftvertical 16#FE41
+/cornerbracketright 16#300D
+/cornerbracketrighthalfwidth 16#FF63
+/cornerbracketrightvertical 16#FE42
+/corporationsquare 16#337F
+/cosquare 16#33C7
+/coverkgsquare 16#33C6
+/cparen 16#249E
+/cruzeiro 16#20A2
+/cstretched 16#0297
+/curlyand 16#22CF
+/curlyor 16#22CE
+/currency 16#00A4
+/cyrBreve 16#F6D1
+/cyrFlex 16#F6D2
+/cyrbreve 16#F6D4
+/cyrflex 16#F6D5
+/d 16#0064
+/daarmenian 16#0564
+/dabengali 16#09A6
+/dadarabic 16#0636
+/dadeva 16#0926
+/dadfinalarabic 16#FEBE
+/dadinitialarabic 16#FEBF
+/dadmedialarabic 16#FEC0
+/dagesh 16#05BC
+/dageshhebrew 16#05BC
+/dagger 16#2020
+/daggerdbl 16#2021
+/dagujarati 16#0AA6
+/dagurmukhi 16#0A26
+/dahiragana 16#3060
+/dakatakana 16#30C0
+/dalarabic 16#062F
+/dalet 16#05D3
+/daletdagesh 16#FB33
+/daletdageshhebrew 16#FB33
+% /dalethatafpatah 16#05D3 16#05B2
+% /dalethatafpatahhebrew 16#05D3 16#05B2
+% /dalethatafsegol 16#05D3 16#05B1
+% /dalethatafsegolhebrew 16#05D3 16#05B1
+/dalethebrew 16#05D3
+% /dalethiriq 16#05D3 16#05B4
+% /dalethiriqhebrew 16#05D3 16#05B4
+% /daletholam 16#05D3 16#05B9
+% /daletholamhebrew 16#05D3 16#05B9
+% /daletpatah 16#05D3 16#05B7
+% /daletpatahhebrew 16#05D3 16#05B7
+% /daletqamats 16#05D3 16#05B8
+% /daletqamatshebrew 16#05D3 16#05B8
+% /daletqubuts 16#05D3 16#05BB
+% /daletqubutshebrew 16#05D3 16#05BB
+% /daletsegol 16#05D3 16#05B6
+% /daletsegolhebrew 16#05D3 16#05B6
+% /daletsheva 16#05D3 16#05B0
+% /daletshevahebrew 16#05D3 16#05B0
+% /dalettsere 16#05D3 16#05B5
+% /dalettserehebrew 16#05D3 16#05B5
+/dalfinalarabic 16#FEAA
+/dammaarabic 16#064F
+/dammalowarabic 16#064F
+/dammatanaltonearabic 16#064C
+/dammatanarabic 16#064C
+/danda 16#0964
+/dargahebrew 16#05A7
+/dargalefthebrew 16#05A7
+/dasiapneumatacyrilliccmb 16#0485
+/dblGrave 16#F6D3
+/dblanglebracketleft 16#300A
+/dblanglebracketleftvertical 16#FE3D
+/dblanglebracketright 16#300B
+/dblanglebracketrightvertical 16#FE3E
+/dblarchinvertedbelowcmb 16#032B
+/dblarrowleft 16#21D4
+/dblarrowright 16#21D2
+/dbldanda 16#0965
+/dblgrave 16#F6D6
+/dblgravecmb 16#030F
+/dblintegral 16#222C
+/dbllowline 16#2017
+/dbllowlinecmb 16#0333
+/dbloverlinecmb 16#033F
+/dblprimemod 16#02BA
+/dblverticalbar 16#2016
+/dblverticallineabovecmb 16#030E
+/dbopomofo 16#3109
+/dbsquare 16#33C8
+/dcaron 16#010F
+/dcedilla 16#1E11
+/dcircle 16#24D3
+/dcircumflexbelow 16#1E13
+/dcroat 16#0111
+/ddabengali 16#09A1
+/ddadeva 16#0921
+/ddagujarati 16#0AA1
+/ddagurmukhi 16#0A21
+/ddalarabic 16#0688
+/ddalfinalarabic 16#FB89
+/dddhadeva 16#095C
+/ddhabengali 16#09A2
+/ddhadeva 16#0922
+/ddhagujarati 16#0AA2
+/ddhagurmukhi 16#0A22
+/ddotaccent 16#1E0B
+/ddotbelow 16#1E0D
+/decimalseparatorarabic 16#066B
+/decimalseparatorpersian 16#066B
+/decyrillic 16#0434
+/degree 16#00B0
+/dehihebrew 16#05AD
+/dehiragana 16#3067
+/deicoptic 16#03EF
+/dekatakana 16#30C7
+/deleteleft 16#232B
+/deleteright 16#2326
+/delta 16#03B4
+/deltaturned 16#018D
+/denominatorminusonenumeratorbengali 16#09F8
+/dezh 16#02A4
+/dhabengali 16#09A7
+/dhadeva 16#0927
+/dhagujarati 16#0AA7
+/dhagurmukhi 16#0A27
+/dhook 16#0257
+/dialytikatonos 16#0385
+/dialytikatonoscmb 16#0344
+/diamond 16#2666
+/diamondsuitwhite 16#2662
+/dieresis 16#00A8
+/dieresisacute 16#F6D7
+/dieresisbelowcmb 16#0324
+/dieresiscmb 16#0308
+/dieresisgrave 16#F6D8
+/dieresistonos 16#0385
+/dihiragana 16#3062
+/dikatakana 16#30C2
+/dittomark 16#3003
+/divide 16#00F7
+/divides 16#2223
+/divisionslash 16#2215
+/djecyrillic 16#0452
+/dkshade 16#2593
+/dlinebelow 16#1E0F
+/dlsquare 16#3397
+/dmacron 16#0111
+/dmonospace 16#FF44
+/dnblock 16#2584
+/dochadathai 16#0E0E
+/dodekthai 16#0E14
+/dohiragana 16#3069
+/dokatakana 16#30C9
+/dollar 16#0024
+/dollarinferior 16#F6E3
+/dollarmonospace 16#FF04
+/dollaroldstyle 16#F724
+/dollarsmall 16#FE69
+/dollarsuperior 16#F6E4
+/dong 16#20AB
+/dorusquare 16#3326
+/dotaccent 16#02D9
+/dotaccentcmb 16#0307
+/dotbelowcmb 16#0323
+/dotbelowcomb 16#0323
+/dotkatakana 16#30FB
+/dotlessi 16#0131
+/dotlessj 16#F6BE
+/dotlessjstrokehook 16#0284
+/dotmath 16#22C5
+/dottedcircle 16#25CC
+/doubleyodpatah 16#FB1F
+/doubleyodpatahhebrew 16#FB1F
+/downtackbelowcmb 16#031E
+/downtackmod 16#02D5
+/dparen 16#249F
+/dsuperior 16#F6EB
+/dtail 16#0256
+/dtopbar 16#018C
+/duhiragana 16#3065
+/dukatakana 16#30C5
+/dz 16#01F3
+/dzaltone 16#02A3
+/dzcaron 16#01C6
+/dzcurl 16#02A5
+/dzeabkhasiancyrillic 16#04E1
+/dzecyrillic 16#0455
+/dzhecyrillic 16#045F
+/e 16#0065
+/eacute 16#00E9
+/earth 16#2641
+/ebengali 16#098F
+/ebopomofo 16#311C
+/ebreve 16#0115
+/ecandradeva 16#090D
+/ecandragujarati 16#0A8D
+/ecandravowelsigndeva 16#0945
+/ecandravowelsigngujarati 16#0AC5
+/ecaron 16#011B
+/ecedillabreve 16#1E1D
+/echarmenian 16#0565
+/echyiwnarmenian 16#0587
+/ecircle 16#24D4
+/ecircumflex 16#00EA
+/ecircumflexacute 16#1EBF
+/ecircumflexbelow 16#1E19
+/ecircumflexdotbelow 16#1EC7
+/ecircumflexgrave 16#1EC1
+/ecircumflexhookabove 16#1EC3
+/ecircumflextilde 16#1EC5
+/ecyrillic 16#0454
+/edblgrave 16#0205
+/edeva 16#090F
+/edieresis 16#00EB
+/edot 16#0117
+/edotaccent 16#0117
+/edotbelow 16#1EB9
+/eegurmukhi 16#0A0F
+/eematragurmukhi 16#0A47
+/efcyrillic 16#0444
+/egrave 16#00E8
+/egujarati 16#0A8F
+/eharmenian 16#0567
+/ehbopomofo 16#311D
+/ehiragana 16#3048
+/ehookabove 16#1EBB
+/eibopomofo 16#311F
+/eight 16#0038
+/eightarabic 16#0668
+/eightbengali 16#09EE
+/eightcircle 16#2467
+/eightcircleinversesansserif 16#2791
+/eightdeva 16#096E
+/eighteencircle 16#2471
+/eighteenparen 16#2485
+/eighteenperiod 16#2499
+/eightgujarati 16#0AEE
+/eightgurmukhi 16#0A6E
+/eighthackarabic 16#0668
+/eighthangzhou 16#3028
+/eighthnotebeamed 16#266B
+/eightideographicparen 16#3227
+/eightinferior 16#2088
+/eightmonospace 16#FF18
+/eightoldstyle 16#F738
+/eightparen 16#247B
+/eightperiod 16#248F
+/eightpersian 16#06F8
+/eightroman 16#2177
+/eightsuperior 16#2078
+/eightthai 16#0E58
+/einvertedbreve 16#0207
+/eiotifiedcyrillic 16#0465
+/ekatakana 16#30A8
+/ekatakanahalfwidth 16#FF74
+/ekonkargurmukhi 16#0A74
+/ekorean 16#3154
+/elcyrillic 16#043B
+/element 16#2208
+/elevencircle 16#246A
+/elevenparen 16#247E
+/elevenperiod 16#2492
+/elevenroman 16#217A
+/ellipsis 16#2026
+/ellipsisvertical 16#22EE
+/emacron 16#0113
+/emacronacute 16#1E17
+/emacrongrave 16#1E15
+/emcyrillic 16#043C
+/emdash 16#2014
+/emdashvertical 16#FE31
+/emonospace 16#FF45
+/emphasismarkarmenian 16#055B
+/emptyset 16#2205
+/enbopomofo 16#3123
+/encyrillic 16#043D
+/endash 16#2013
+/endashvertical 16#FE32
+/endescendercyrillic 16#04A3
+/eng 16#014B
+/engbopomofo 16#3125
+/enghecyrillic 16#04A5
+/enhookcyrillic 16#04C8
+/enspace 16#2002
+/eogonek 16#0119
+/eokorean 16#3153
+/eopen 16#025B
+/eopenclosed 16#029A
+/eopenreversed 16#025C
+/eopenreversedclosed 16#025E
+/eopenreversedhook 16#025D
+/eparen 16#24A0
+/epsilon 16#03B5
+/epsilontonos 16#03AD
+/equal 16#003D
+/equalmonospace 16#FF1D
+/equalsmall 16#FE66
+/equalsuperior 16#207C
+/equivalence 16#2261
+/erbopomofo 16#3126
+/ercyrillic 16#0440
+/ereversed 16#0258
+/ereversedcyrillic 16#044D
+/escyrillic 16#0441
+/esdescendercyrillic 16#04AB
+/esh 16#0283
+/eshcurl 16#0286
+/eshortdeva 16#090E
+/eshortvowelsigndeva 16#0946
+/eshreversedloop 16#01AA
+/eshsquatreversed 16#0285
+/esmallhiragana 16#3047
+/esmallkatakana 16#30A7
+/esmallkatakanahalfwidth 16#FF6A
+/estimated 16#212E
+/esuperior 16#F6EC
+/eta 16#03B7
+/etarmenian 16#0568
+/etatonos 16#03AE
+/eth 16#00F0
+/etilde 16#1EBD
+/etildebelow 16#1E1B
+/etnahtafoukhhebrew 16#0591
+/etnahtafoukhlefthebrew 16#0591
+/etnahtahebrew 16#0591
+/etnahtalefthebrew 16#0591
+/eturned 16#01DD
+/eukorean 16#3161
+/euro 16#20AC
+/evowelsignbengali 16#09C7
+/evowelsigndeva 16#0947
+/evowelsigngujarati 16#0AC7
+/exclam 16#0021
+/exclamarmenian 16#055C
+/exclamdbl 16#203C
+/exclamdown 16#00A1
+/exclamdownsmall 16#F7A1
+/exclammonospace 16#FF01
+/exclamsmall 16#F721
+/existential 16#2203
+/ezh 16#0292
+/ezhcaron 16#01EF
+/ezhcurl 16#0293
+/ezhreversed 16#01B9
+/ezhtail 16#01BA
+/f 16#0066
+/fadeva 16#095E
+/fagurmukhi 16#0A5E
+/fahrenheit 16#2109
+/fathaarabic 16#064E
+/fathalowarabic 16#064E
+/fathatanarabic 16#064B
+/fbopomofo 16#3108
+/fcircle 16#24D5
+/fdotaccent 16#1E1F
+/feharabic 16#0641
+/feharmenian 16#0586
+/fehfinalarabic 16#FED2
+/fehinitialarabic 16#FED3
+/fehmedialarabic 16#FED4
+/feicoptic 16#03E5
+/female 16#2640
+/ff 16#FB00
+/ffi 16#FB03
+/ffl 16#FB04
+/fi 16#FB01
+/fifteencircle 16#246E
+/fifteenparen 16#2482
+/fifteenperiod 16#2496
+/figuredash 16#2012
+/filledbox 16#25A0
+/filledrect 16#25AC
+/finalkaf 16#05DA
+/finalkafdagesh 16#FB3A
+/finalkafdageshhebrew 16#FB3A
+/finalkafhebrew 16#05DA
+% /finalkafqamats 16#05DA 16#05B8
+% /finalkafqamatshebrew 16#05DA 16#05B8
+% /finalkafsheva 16#05DA 16#05B0
+% /finalkafshevahebrew 16#05DA 16#05B0
+/finalmem 16#05DD
+/finalmemhebrew 16#05DD
+/finalnun 16#05DF
+/finalnunhebrew 16#05DF
+/finalpe 16#05E3
+/finalpehebrew 16#05E3
+/finaltsadi 16#05E5
+/finaltsadihebrew 16#05E5
+/firsttonechinese 16#02C9
+/fisheye 16#25C9
+/fitacyrillic 16#0473
+/five 16#0035
+/fivearabic 16#0665
+/fivebengali 16#09EB
+/fivecircle 16#2464
+/fivecircleinversesansserif 16#278E
+/fivedeva 16#096B
+/fiveeighths 16#215D
+/fivegujarati 16#0AEB
+/fivegurmukhi 16#0A6B
+/fivehackarabic 16#0665
+/fivehangzhou 16#3025
+/fiveideographicparen 16#3224
+/fiveinferior 16#2085
+/fivemonospace 16#FF15
+/fiveoldstyle 16#F735
+/fiveparen 16#2478
+/fiveperiod 16#248C
+/fivepersian 16#06F5
+/fiveroman 16#2174
+/fivesuperior 16#2075
+/fivethai 16#0E55
+/fl 16#FB02
+/florin 16#0192
+/fmonospace 16#FF46
+/fmsquare 16#3399
+/fofanthai 16#0E1F
+/fofathai 16#0E1D
+/fongmanthai 16#0E4F
+/forall 16#2200
+/four 16#0034
+/fourarabic 16#0664
+/fourbengali 16#09EA
+/fourcircle 16#2463
+/fourcircleinversesansserif 16#278D
+/fourdeva 16#096A
+/fourgujarati 16#0AEA
+/fourgurmukhi 16#0A6A
+/fourhackarabic 16#0664
+/fourhangzhou 16#3024
+/fourideographicparen 16#3223
+/fourinferior 16#2084
+/fourmonospace 16#FF14
+/fournumeratorbengali 16#09F7
+/fouroldstyle 16#F734
+/fourparen 16#2477
+/fourperiod 16#248B
+/fourpersian 16#06F4
+/fourroman 16#2173
+/foursuperior 16#2074
+/fourteencircle 16#246D
+/fourteenparen 16#2481
+/fourteenperiod 16#2495
+/fourthai 16#0E54
+/fourthtonechinese 16#02CB
+/fparen 16#24A1
+/fraction 16#2044
+/franc 16#20A3
+/g 16#0067
+/gabengali 16#0997
+/gacute 16#01F5
+/gadeva 16#0917
+/gafarabic 16#06AF
+/gaffinalarabic 16#FB93
+/gafinitialarabic 16#FB94
+/gafmedialarabic 16#FB95
+/gagujarati 16#0A97
+/gagurmukhi 16#0A17
+/gahiragana 16#304C
+/gakatakana 16#30AC
+/gamma 16#03B3
+/gammalatinsmall 16#0263
+/gammasuperior 16#02E0
+/gangiacoptic 16#03EB
+/gbopomofo 16#310D
+/gbreve 16#011F
+/gcaron 16#01E7
+/gcedilla 16#0123
+/gcircle 16#24D6
+/gcircumflex 16#011D
+/gcommaaccent 16#0123
+/gdot 16#0121
+/gdotaccent 16#0121
+/gecyrillic 16#0433
+/gehiragana 16#3052
+/gekatakana 16#30B2
+/geometricallyequal 16#2251
+/gereshaccenthebrew 16#059C
+/gereshhebrew 16#05F3
+/gereshmuqdamhebrew 16#059D
+/germandbls 16#00DF
+/gershayimaccenthebrew 16#059E
+/gershayimhebrew 16#05F4
+/getamark 16#3013
+/ghabengali 16#0998
+/ghadarmenian 16#0572
+/ghadeva 16#0918
+/ghagujarati 16#0A98
+/ghagurmukhi 16#0A18
+/ghainarabic 16#063A
+/ghainfinalarabic 16#FECE
+/ghaininitialarabic 16#FECF
+/ghainmedialarabic 16#FED0
+/ghemiddlehookcyrillic 16#0495
+/ghestrokecyrillic 16#0493
+/gheupturncyrillic 16#0491
+/ghhadeva 16#095A
+/ghhagurmukhi 16#0A5A
+/ghook 16#0260
+/ghzsquare 16#3393
+/gihiragana 16#304E
+/gikatakana 16#30AE
+/gimarmenian 16#0563
+/gimel 16#05D2
+/gimeldagesh 16#FB32
+/gimeldageshhebrew 16#FB32
+/gimelhebrew 16#05D2
+/gjecyrillic 16#0453
+/glottalinvertedstroke 16#01BE
+/glottalstop 16#0294
+/glottalstopinverted 16#0296
+/glottalstopmod 16#02C0
+/glottalstopreversed 16#0295
+/glottalstopreversedmod 16#02C1
+/glottalstopreversedsuperior 16#02E4
+/glottalstopstroke 16#02A1
+/glottalstopstrokereversed 16#02A2
+/gmacron 16#1E21
+/gmonospace 16#FF47
+/gohiragana 16#3054
+/gokatakana 16#30B4
+/gparen 16#24A2
+/gpasquare 16#33AC
+/gradient 16#2207
+/grave 16#0060
+/gravebelowcmb 16#0316
+/gravecmb 16#0300
+/gravecomb 16#0300
+/gravedeva 16#0953
+/gravelowmod 16#02CE
+/gravemonospace 16#FF40
+/gravetonecmb 16#0340
+/greater 16#003E
+/greaterequal 16#2265
+/greaterequalorless 16#22DB
+/greatermonospace 16#FF1E
+/greaterorequivalent 16#2273
+/greaterorless 16#2277
+/greateroverequal 16#2267
+/greatersmall 16#FE65
+/gscript 16#0261
+/gstroke 16#01E5
+/guhiragana 16#3050
+/guillemotleft 16#00AB
+/guillemotright 16#00BB
+/guilsinglleft 16#2039
+/guilsinglright 16#203A
+/gukatakana 16#30B0
+/guramusquare 16#3318
+/gysquare 16#33C9
+/h 16#0068
+/haabkhasiancyrillic 16#04A9
+/haaltonearabic 16#06C1
+/habengali 16#09B9
+/hadescendercyrillic 16#04B3
+/hadeva 16#0939
+/hagujarati 16#0AB9
+/hagurmukhi 16#0A39
+/haharabic 16#062D
+/hahfinalarabic 16#FEA2
+/hahinitialarabic 16#FEA3
+/hahiragana 16#306F
+/hahmedialarabic 16#FEA4
+/haitusquare 16#332A
+/hakatakana 16#30CF
+/hakatakanahalfwidth 16#FF8A
+/halantgurmukhi 16#0A4D
+/hamzaarabic 16#0621
+% /hamzadammaarabic 16#0621 16#064F
+% /hamzadammatanarabic 16#0621 16#064C
+% /hamzafathaarabic 16#0621 16#064E
+% /hamzafathatanarabic 16#0621 16#064B
+/hamzalowarabic 16#0621
+% /hamzalowkasraarabic 16#0621 16#0650
+% /hamzalowkasratanarabic 16#0621 16#064D
+% /hamzasukunarabic 16#0621 16#0652
+/hangulfiller 16#3164
+/hardsigncyrillic 16#044A
+/harpoonleftbarbup 16#21BC
+/harpoonrightbarbup 16#21C0
+/hasquare 16#33CA
+/hatafpatah 16#05B2
+/hatafpatah16 16#05B2
+/hatafpatah23 16#05B2
+/hatafpatah2f 16#05B2
+/hatafpatahhebrew 16#05B2
+/hatafpatahnarrowhebrew 16#05B2
+/hatafpatahquarterhebrew 16#05B2
+/hatafpatahwidehebrew 16#05B2
+/hatafqamats 16#05B3
+/hatafqamats1b 16#05B3
+/hatafqamats28 16#05B3
+/hatafqamats34 16#05B3
+/hatafqamatshebrew 16#05B3
+/hatafqamatsnarrowhebrew 16#05B3
+/hatafqamatsquarterhebrew 16#05B3
+/hatafqamatswidehebrew 16#05B3
+/hatafsegol 16#05B1
+/hatafsegol17 16#05B1
+/hatafsegol24 16#05B1
+/hatafsegol30 16#05B1
+/hatafsegolhebrew 16#05B1
+/hatafsegolnarrowhebrew 16#05B1
+/hatafsegolquarterhebrew 16#05B1
+/hatafsegolwidehebrew 16#05B1
+/hbar 16#0127
+/hbopomofo 16#310F
+/hbrevebelow 16#1E2B
+/hcedilla 16#1E29
+/hcircle 16#24D7
+/hcircumflex 16#0125
+/hdieresis 16#1E27
+/hdotaccent 16#1E23
+/hdotbelow 16#1E25
+/he 16#05D4
+/heart 16#2665
+/heartsuitblack 16#2665
+/heartsuitwhite 16#2661
+/hedagesh 16#FB34
+/hedageshhebrew 16#FB34
+/hehaltonearabic 16#06C1
+/heharabic 16#0647
+/hehebrew 16#05D4
+/hehfinalaltonearabic 16#FBA7
+/hehfinalalttwoarabic 16#FEEA
+/hehfinalarabic 16#FEEA
+/hehhamzaabovefinalarabic 16#FBA5
+/hehhamzaaboveisolatedarabic 16#FBA4
+/hehinitialaltonearabic 16#FBA8
+/hehinitialarabic 16#FEEB
+/hehiragana 16#3078
+/hehmedialaltonearabic 16#FBA9
+/hehmedialarabic 16#FEEC
+/heiseierasquare 16#337B
+/hekatakana 16#30D8
+/hekatakanahalfwidth 16#FF8D
+/hekutaarusquare 16#3336
+/henghook 16#0267
+/herutusquare 16#3339
+/het 16#05D7
+/hethebrew 16#05D7
+/hhook 16#0266
+/hhooksuperior 16#02B1
+/hieuhacirclekorean 16#327B
+/hieuhaparenkorean 16#321B
+/hieuhcirclekorean 16#326D
+/hieuhkorean 16#314E
+/hieuhparenkorean 16#320D
+/hihiragana 16#3072
+/hikatakana 16#30D2
+/hikatakanahalfwidth 16#FF8B
+/hiriq 16#05B4
+/hiriq14 16#05B4
+/hiriq21 16#05B4
+/hiriq2d 16#05B4
+/hiriqhebrew 16#05B4
+/hiriqnarrowhebrew 16#05B4
+/hiriqquarterhebrew 16#05B4
+/hiriqwidehebrew 16#05B4
+/hlinebelow 16#1E96
+/hmonospace 16#FF48
+/hoarmenian 16#0570
+/hohipthai 16#0E2B
+/hohiragana 16#307B
+/hokatakana 16#30DB
+/hokatakanahalfwidth 16#FF8E
+/holam 16#05B9
+/holam19 16#05B9
+/holam26 16#05B9
+/holam32 16#05B9
+/holamhebrew 16#05B9
+/holamnarrowhebrew 16#05B9
+/holamquarterhebrew 16#05B9
+/holamwidehebrew 16#05B9
+/honokhukthai 16#0E2E
+/hookabovecomb 16#0309
+/hookcmb 16#0309
+/hookpalatalizedbelowcmb 16#0321
+/hookretroflexbelowcmb 16#0322
+/hoonsquare 16#3342
+/horicoptic 16#03E9
+/horizontalbar 16#2015
+/horncmb 16#031B
+/hotsprings 16#2668
+/house 16#2302
+/hparen 16#24A3
+/hsuperior 16#02B0
+/hturned 16#0265
+/huhiragana 16#3075
+/huiitosquare 16#3333
+/hukatakana 16#30D5
+/hukatakanahalfwidth 16#FF8C
+/hungarumlaut 16#02DD
+/hungarumlautcmb 16#030B
+/hv 16#0195
+/hyphen 16#002D
+/hypheninferior 16#F6E5
+/hyphenmonospace 16#FF0D
+/hyphensmall 16#FE63
+/hyphensuperior 16#F6E6
+/hyphentwo 16#2010
+/i 16#0069
+/iacute 16#00ED
+/iacyrillic 16#044F
+/ibengali 16#0987
+/ibopomofo 16#3127
+/ibreve 16#012D
+/icaron 16#01D0
+/icircle 16#24D8
+/icircumflex 16#00EE
+/icyrillic 16#0456
+/idblgrave 16#0209
+/ideographearthcircle 16#328F
+/ideographfirecircle 16#328B
+/ideographicallianceparen 16#323F
+/ideographiccallparen 16#323A
+/ideographiccentrecircle 16#32A5
+/ideographicclose 16#3006
+/ideographiccomma 16#3001
+/ideographiccommaleft 16#FF64
+/ideographiccongratulationparen 16#3237
+/ideographiccorrectcircle 16#32A3
+/ideographicearthparen 16#322F
+/ideographicenterpriseparen 16#323D
+/ideographicexcellentcircle 16#329D
+/ideographicfestivalparen 16#3240
+/ideographicfinancialcircle 16#3296
+/ideographicfinancialparen 16#3236
+/ideographicfireparen 16#322B
+/ideographichaveparen 16#3232
+/ideographichighcircle 16#32A4
+/ideographiciterationmark 16#3005
+/ideographiclaborcircle 16#3298
+/ideographiclaborparen 16#3238
+/ideographicleftcircle 16#32A7
+/ideographiclowcircle 16#32A6
+/ideographicmedicinecircle 16#32A9
+/ideographicmetalparen 16#322E
+/ideographicmoonparen 16#322A
+/ideographicnameparen 16#3234
+/ideographicperiod 16#3002
+/ideographicprintcircle 16#329E
+/ideographicreachparen 16#3243
+/ideographicrepresentparen 16#3239
+/ideographicresourceparen 16#323E
+/ideographicrightcircle 16#32A8
+/ideographicsecretcircle 16#3299
+/ideographicselfparen 16#3242
+/ideographicsocietyparen 16#3233
+/ideographicspace 16#3000
+/ideographicspecialparen 16#3235
+/ideographicstockparen 16#3231
+/ideographicstudyparen 16#323B
+/ideographicsunparen 16#3230
+/ideographicsuperviseparen 16#323C
+/ideographicwaterparen 16#322C
+/ideographicwoodparen 16#322D
+/ideographiczero 16#3007
+/ideographmetalcircle 16#328E
+/ideographmooncircle 16#328A
+/ideographnamecircle 16#3294
+/ideographsuncircle 16#3290
+/ideographwatercircle 16#328C
+/ideographwoodcircle 16#328D
+/ideva 16#0907
+/idieresis 16#00EF
+/idieresisacute 16#1E2F
+/idieresiscyrillic 16#04E5
+/idotbelow 16#1ECB
+/iebrevecyrillic 16#04D7
+/iecyrillic 16#0435
+/ieungacirclekorean 16#3275
+/ieungaparenkorean 16#3215
+/ieungcirclekorean 16#3267
+/ieungkorean 16#3147
+/ieungparenkorean 16#3207
+/igrave 16#00EC
+/igujarati 16#0A87
+/igurmukhi 16#0A07
+/ihiragana 16#3044
+/ihookabove 16#1EC9
+/iibengali 16#0988
+/iicyrillic 16#0438
+/iideva 16#0908
+/iigujarati 16#0A88
+/iigurmukhi 16#0A08
+/iimatragurmukhi 16#0A40
+/iinvertedbreve 16#020B
+/iishortcyrillic 16#0439
+/iivowelsignbengali 16#09C0
+/iivowelsigndeva 16#0940
+/iivowelsigngujarati 16#0AC0
+/ij 16#0133
+/ikatakana 16#30A4
+/ikatakanahalfwidth 16#FF72
+/ikorean 16#3163
+/ilde 16#02DC
+/iluyhebrew 16#05AC
+/imacron 16#012B
+/imacroncyrillic 16#04E3
+/imageorapproximatelyequal 16#2253
+/imatragurmukhi 16#0A3F
+/imonospace 16#FF49
+/increment 16#2206
+/infinity 16#221E
+/iniarmenian 16#056B
+/integral 16#222B
+/integralbottom 16#2321
+/integralbt 16#2321
+/integralex 16#F8F5
+/integraltop 16#2320
+/integraltp 16#2320
+/intersection 16#2229
+/intisquare 16#3305
+/invbullet 16#25D8
+/invcircle 16#25D9
+/invsmileface 16#263B
+/iocyrillic 16#0451
+/iogonek 16#012F
+/iota 16#03B9
+/iotadieresis 16#03CA
+/iotadieresistonos 16#0390
+/iotalatin 16#0269
+/iotatonos 16#03AF
+/iparen 16#24A4
+/irigurmukhi 16#0A72
+/ismallhiragana 16#3043
+/ismallkatakana 16#30A3
+/ismallkatakanahalfwidth 16#FF68
+/issharbengali 16#09FA
+/istroke 16#0268
+/isuperior 16#F6ED
+/iterationhiragana 16#309D
+/iterationkatakana 16#30FD
+/itilde 16#0129
+/itildebelow 16#1E2D
+/iubopomofo 16#3129
+/iucyrillic 16#044E
+/ivowelsignbengali 16#09BF
+/ivowelsigndeva 16#093F
+/ivowelsigngujarati 16#0ABF
+/izhitsacyrillic 16#0475
+/izhitsadblgravecyrillic 16#0477
+/j 16#006A
+/jaarmenian 16#0571
+/jabengali 16#099C
+/jadeva 16#091C
+/jagujarati 16#0A9C
+/jagurmukhi 16#0A1C
+/jbopomofo 16#3110
+/jcaron 16#01F0
+/jcircle 16#24D9
+/jcircumflex 16#0135
+/jcrossedtail 16#029D
+/jdotlessstroke 16#025F
+/jecyrillic 16#0458
+/jeemarabic 16#062C
+/jeemfinalarabic 16#FE9E
+/jeeminitialarabic 16#FE9F
+/jeemmedialarabic 16#FEA0
+/jeharabic 16#0698
+/jehfinalarabic 16#FB8B
+/jhabengali 16#099D
+/jhadeva 16#091D
+/jhagujarati 16#0A9D
+/jhagurmukhi 16#0A1D
+/jheharmenian 16#057B
+/jis 16#3004
+/jmonospace 16#FF4A
+/jparen 16#24A5
+/jsuperior 16#02B2
+/k 16#006B
+/kabashkircyrillic 16#04A1
+/kabengali 16#0995
+/kacute 16#1E31
+/kacyrillic 16#043A
+/kadescendercyrillic 16#049B
+/kadeva 16#0915
+/kaf 16#05DB
+/kafarabic 16#0643
+/kafdagesh 16#FB3B
+/kafdageshhebrew 16#FB3B
+/kaffinalarabic 16#FEDA
+/kafhebrew 16#05DB
+/kafinitialarabic 16#FEDB
+/kafmedialarabic 16#FEDC
+/kafrafehebrew 16#FB4D
+/kagujarati 16#0A95
+/kagurmukhi 16#0A15
+/kahiragana 16#304B
+/kahookcyrillic 16#04C4
+/kakatakana 16#30AB
+/kakatakanahalfwidth 16#FF76
+/kappa 16#03BA
+/kappasymbolgreek 16#03F0
+/kapyeounmieumkorean 16#3171
+/kapyeounphieuphkorean 16#3184
+/kapyeounpieupkorean 16#3178
+/kapyeounssangpieupkorean 16#3179
+/karoriisquare 16#330D
+/kashidaautoarabic 16#0640
+/kashidaautonosidebearingarabic 16#0640
+/kasmallkatakana 16#30F5
+/kasquare 16#3384
+/kasraarabic 16#0650
+/kasratanarabic 16#064D
+/kastrokecyrillic 16#049F
+/katahiraprolongmarkhalfwidth 16#FF70
+/kaverticalstrokecyrillic 16#049D
+/kbopomofo 16#310E
+/kcalsquare 16#3389
+/kcaron 16#01E9
+/kcedilla 16#0137
+/kcircle 16#24DA
+/kcommaaccent 16#0137
+/kdotbelow 16#1E33
+/keharmenian 16#0584
+/kehiragana 16#3051
+/kekatakana 16#30B1
+/kekatakanahalfwidth 16#FF79
+/kenarmenian 16#056F
+/kesmallkatakana 16#30F6
+/kgreenlandic 16#0138
+/khabengali 16#0996
+/khacyrillic 16#0445
+/khadeva 16#0916
+/khagujarati 16#0A96
+/khagurmukhi 16#0A16
+/khaharabic 16#062E
+/khahfinalarabic 16#FEA6
+/khahinitialarabic 16#FEA7
+/khahmedialarabic 16#FEA8
+/kheicoptic 16#03E7
+/khhadeva 16#0959
+/khhagurmukhi 16#0A59
+/khieukhacirclekorean 16#3278
+/khieukhaparenkorean 16#3218
+/khieukhcirclekorean 16#326A
+/khieukhkorean 16#314B
+/khieukhparenkorean 16#320A
+/khokhaithai 16#0E02
+/khokhonthai 16#0E05
+/khokhuatthai 16#0E03
+/khokhwaithai 16#0E04
+/khomutthai 16#0E5B
+/khook 16#0199
+/khorakhangthai 16#0E06
+/khzsquare 16#3391
+/kihiragana 16#304D
+/kikatakana 16#30AD
+/kikatakanahalfwidth 16#FF77
+/kiroguramusquare 16#3315
+/kiromeetorusquare 16#3316
+/kirosquare 16#3314
+/kiyeokacirclekorean 16#326E
+/kiyeokaparenkorean 16#320E
+/kiyeokcirclekorean 16#3260
+/kiyeokkorean 16#3131
+/kiyeokparenkorean 16#3200
+/kiyeoksioskorean 16#3133
+/kjecyrillic 16#045C
+/klinebelow 16#1E35
+/klsquare 16#3398
+/kmcubedsquare 16#33A6
+/kmonospace 16#FF4B
+/kmsquaredsquare 16#33A2
+/kohiragana 16#3053
+/kohmsquare 16#33C0
+/kokaithai 16#0E01
+/kokatakana 16#30B3
+/kokatakanahalfwidth 16#FF7A
+/kooposquare 16#331E
+/koppacyrillic 16#0481
+/koreanstandardsymbol 16#327F
+/koroniscmb 16#0343
+/kparen 16#24A6
+/kpasquare 16#33AA
+/ksicyrillic 16#046F
+/ktsquare 16#33CF
+/kturned 16#029E
+/kuhiragana 16#304F
+/kukatakana 16#30AF
+/kukatakanahalfwidth 16#FF78
+/kvsquare 16#33B8
+/kwsquare 16#33BE
+/l 16#006C
+/labengali 16#09B2
+/lacute 16#013A
+/ladeva 16#0932
+/lagujarati 16#0AB2
+/lagurmukhi 16#0A32
+/lakkhangyaothai 16#0E45
+/lamaleffinalarabic 16#FEFC
+/lamalefhamzaabovefinalarabic 16#FEF8
+/lamalefhamzaaboveisolatedarabic 16#FEF7
+/lamalefhamzabelowfinalarabic 16#FEFA
+/lamalefhamzabelowisolatedarabic 16#FEF9
+/lamalefisolatedarabic 16#FEFB
+/lamalefmaddaabovefinalarabic 16#FEF6
+/lamalefmaddaaboveisolatedarabic 16#FEF5
+/lamarabic 16#0644
+/lambda 16#03BB
+/lambdastroke 16#019B
+/lamed 16#05DC
+/lameddagesh 16#FB3C
+/lameddageshhebrew 16#FB3C
+/lamedhebrew 16#05DC
+% /lamedholam 16#05DC 16#05B9
+% /lamedholamdagesh 16#05DC 16#05B9 16#05BC
+% /lamedholamdageshhebrew 16#05DC 16#05B9 16#05BC
+% /lamedholamhebrew 16#05DC 16#05B9
+/lamfinalarabic 16#FEDE
+/lamhahinitialarabic 16#FCCA
+/laminitialarabic 16#FEDF
+/lamjeeminitialarabic 16#FCC9
+/lamkhahinitialarabic 16#FCCB
+/lamlamhehisolatedarabic 16#FDF2
+/lammedialarabic 16#FEE0
+/lammeemhahinitialarabic 16#FD88
+/lammeeminitialarabic 16#FCCC
+% /lammeemjeeminitialarabic 16#FEDF 16#FEE4 16#FEA0
+% /lammeemkhahinitialarabic 16#FEDF 16#FEE4 16#FEA8
+/largecircle 16#25EF
+/lbar 16#019A
+/lbelt 16#026C
+/lbopomofo 16#310C
+/lcaron 16#013E
+/lcedilla 16#013C
+/lcircle 16#24DB
+/lcircumflexbelow 16#1E3D
+/lcommaaccent 16#013C
+/ldot 16#0140
+/ldotaccent 16#0140
+/ldotbelow 16#1E37
+/ldotbelowmacron 16#1E39
+/leftangleabovecmb 16#031A
+/lefttackbelowcmb 16#0318
+/less 16#003C
+/lessequal 16#2264
+/lessequalorgreater 16#22DA
+/lessmonospace 16#FF1C
+/lessorequivalent 16#2272
+/lessorgreater 16#2276
+/lessoverequal 16#2266
+/lesssmall 16#FE64
+/lezh 16#026E
+/lfblock 16#258C
+/lhookretroflex 16#026D
+/lira 16#20A4
+/liwnarmenian 16#056C
+/lj 16#01C9
+/ljecyrillic 16#0459
+/ll 16#F6C0
+/lladeva 16#0933
+/llagujarati 16#0AB3
+/llinebelow 16#1E3B
+/llladeva 16#0934
+/llvocalicbengali 16#09E1
+/llvocalicdeva 16#0961
+/llvocalicvowelsignbengali 16#09E3
+/llvocalicvowelsigndeva 16#0963
+/lmiddletilde 16#026B
+/lmonospace 16#FF4C
+/lmsquare 16#33D0
+/lochulathai 16#0E2C
+/logicaland 16#2227
+/logicalnot 16#00AC
+/logicalnotreversed 16#2310
+/logicalor 16#2228
+/lolingthai 16#0E25
+/longs 16#017F
+/lowlinecenterline 16#FE4E
+/lowlinecmb 16#0332
+/lowlinedashed 16#FE4D
+/lozenge 16#25CA
+/lparen 16#24A7
+/lslash 16#0142
+/lsquare 16#2113
+/lsuperior 16#F6EE
+/ltshade 16#2591
+/luthai 16#0E26
+/lvocalicbengali 16#098C
+/lvocalicdeva 16#090C
+/lvocalicvowelsignbengali 16#09E2
+/lvocalicvowelsigndeva 16#0962
+/lxsquare 16#33D3
+/m 16#006D
+/mabengali 16#09AE
+/macron 16#00AF
+/macronbelowcmb 16#0331
+/macroncmb 16#0304
+/macronlowmod 16#02CD
+/macronmonospace 16#FFE3
+/macute 16#1E3F
+/madeva 16#092E
+/magujarati 16#0AAE
+/magurmukhi 16#0A2E
+/mahapakhhebrew 16#05A4
+/mahapakhlefthebrew 16#05A4
+/mahiragana 16#307E
+/maichattawalowleftthai 16#F895
+/maichattawalowrightthai 16#F894
+/maichattawathai 16#0E4B
+/maichattawaupperleftthai 16#F893
+/maieklowleftthai 16#F88C
+/maieklowrightthai 16#F88B
+/maiekthai 16#0E48
+/maiekupperleftthai 16#F88A
+/maihanakatleftthai 16#F884
+/maihanakatthai 16#0E31
+/maitaikhuleftthai 16#F889
+/maitaikhuthai 16#0E47
+/maitholowleftthai 16#F88F
+/maitholowrightthai 16#F88E
+/maithothai 16#0E49
+/maithoupperleftthai 16#F88D
+/maitrilowleftthai 16#F892
+/maitrilowrightthai 16#F891
+/maitrithai 16#0E4A
+/maitriupperleftthai 16#F890
+/maiyamokthai 16#0E46
+/makatakana 16#30DE
+/makatakanahalfwidth 16#FF8F
+/male 16#2642
+/mansyonsquare 16#3347
+/maqafhebrew 16#05BE
+/mars 16#2642
+/masoracirclehebrew 16#05AF
+/masquare 16#3383
+/mbopomofo 16#3107
+/mbsquare 16#33D4
+/mcircle 16#24DC
+/mcubedsquare 16#33A5
+/mdotaccent 16#1E41
+/mdotbelow 16#1E43
+/meemarabic 16#0645
+/meemfinalarabic 16#FEE2
+/meeminitialarabic 16#FEE3
+/meemmedialarabic 16#FEE4
+/meemmeeminitialarabic 16#FCD1
+/meemmeemisolatedarabic 16#FC48
+/meetorusquare 16#334D
+/mehiragana 16#3081
+/meizierasquare 16#337E
+/mekatakana 16#30E1
+/mekatakanahalfwidth 16#FF92
+/mem 16#05DE
+/memdagesh 16#FB3E
+/memdageshhebrew 16#FB3E
+/memhebrew 16#05DE
+/menarmenian 16#0574
+/merkhahebrew 16#05A5
+/merkhakefulahebrew 16#05A6
+/merkhakefulalefthebrew 16#05A6
+/merkhalefthebrew 16#05A5
+/mhook 16#0271
+/mhzsquare 16#3392
+/middledotkatakanahalfwidth 16#FF65
+/middot 16#00B7
+/mieumacirclekorean 16#3272
+/mieumaparenkorean 16#3212
+/mieumcirclekorean 16#3264
+/mieumkorean 16#3141
+/mieumpansioskorean 16#3170
+/mieumparenkorean 16#3204
+/mieumpieupkorean 16#316E
+/mieumsioskorean 16#316F
+/mihiragana 16#307F
+/mikatakana 16#30DF
+/mikatakanahalfwidth 16#FF90
+/minus 16#2212
+/minusbelowcmb 16#0320
+/minuscircle 16#2296
+/minusmod 16#02D7
+/minusplus 16#2213
+/minute 16#2032
+/miribaarusquare 16#334A
+/mirisquare 16#3349
+/mlonglegturned 16#0270
+/mlsquare 16#3396
+/mmcubedsquare 16#33A3
+/mmonospace 16#FF4D
+/mmsquaredsquare 16#339F
+/mohiragana 16#3082
+/mohmsquare 16#33C1
+/mokatakana 16#30E2
+/mokatakanahalfwidth 16#FF93
+/molsquare 16#33D6
+/momathai 16#0E21
+/moverssquare 16#33A7
+/moverssquaredsquare 16#33A8
+/mparen 16#24A8
+/mpasquare 16#33AB
+/mssquare 16#33B3
+/msuperior 16#F6EF
+/mturned 16#026F
+/mu 16#00B5
+/mu1 16#00B5
+/muasquare 16#3382
+/muchgreater 16#226B
+/muchless 16#226A
+/mufsquare 16#338C
+/mugreek 16#03BC
+/mugsquare 16#338D
+/muhiragana 16#3080
+/mukatakana 16#30E0
+/mukatakanahalfwidth 16#FF91
+/mulsquare 16#3395
+/multiply 16#00D7
+/mumsquare 16#339B
+/munahhebrew 16#05A3
+/munahlefthebrew 16#05A3
+/musicalnote 16#266A
+/musicalnotedbl 16#266B
+/musicflatsign 16#266D
+/musicsharpsign 16#266F
+/mussquare 16#33B2
+/muvsquare 16#33B6
+/muwsquare 16#33BC
+/mvmegasquare 16#33B9
+/mvsquare 16#33B7
+/mwmegasquare 16#33BF
+/mwsquare 16#33BD
+/n 16#006E
+/nabengali 16#09A8
+/nabla 16#2207
+/nacute 16#0144
+/nadeva 16#0928
+/nagujarati 16#0AA8
+/nagurmukhi 16#0A28
+/nahiragana 16#306A
+/nakatakana 16#30CA
+/nakatakanahalfwidth 16#FF85
+/napostrophe 16#0149
+/nasquare 16#3381
+/nbopomofo 16#310B
+/nbspace 16#00A0
+/ncaron 16#0148
+/ncedilla 16#0146
+/ncircle 16#24DD
+/ncircumflexbelow 16#1E4B
+/ncommaaccent 16#0146
+/ndotaccent 16#1E45
+/ndotbelow 16#1E47
+/nehiragana 16#306D
+/nekatakana 16#30CD
+/nekatakanahalfwidth 16#FF88
+/newsheqelsign 16#20AA
+/nfsquare 16#338B
+/ngabengali 16#0999
+/ngadeva 16#0919
+/ngagujarati 16#0A99
+/ngagurmukhi 16#0A19
+/ngonguthai 16#0E07
+/nhiragana 16#3093
+/nhookleft 16#0272
+/nhookretroflex 16#0273
+/nieunacirclekorean 16#326F
+/nieunaparenkorean 16#320F
+/nieuncieuckorean 16#3135
+/nieuncirclekorean 16#3261
+/nieunhieuhkorean 16#3136
+/nieunkorean 16#3134
+/nieunpansioskorean 16#3168
+/nieunparenkorean 16#3201
+/nieunsioskorean 16#3167
+/nieuntikeutkorean 16#3166
+/nihiragana 16#306B
+/nikatakana 16#30CB
+/nikatakanahalfwidth 16#FF86
+/nikhahitleftthai 16#F899
+/nikhahitthai 16#0E4D
+/nine 16#0039
+/ninearabic 16#0669
+/ninebengali 16#09EF
+/ninecircle 16#2468
+/ninecircleinversesansserif 16#2792
+/ninedeva 16#096F
+/ninegujarati 16#0AEF
+/ninegurmukhi 16#0A6F
+/ninehackarabic 16#0669
+/ninehangzhou 16#3029
+/nineideographicparen 16#3228
+/nineinferior 16#2089
+/ninemonospace 16#FF19
+/nineoldstyle 16#F739
+/nineparen 16#247C
+/nineperiod 16#2490
+/ninepersian 16#06F9
+/nineroman 16#2178
+/ninesuperior 16#2079
+/nineteencircle 16#2472
+/nineteenparen 16#2486
+/nineteenperiod 16#249A
+/ninethai 16#0E59
+/nj 16#01CC
+/njecyrillic 16#045A
+/nkatakana 16#30F3
+/nkatakanahalfwidth 16#FF9D
+/nlegrightlong 16#019E
+/nlinebelow 16#1E49
+/nmonospace 16#FF4E
+/nmsquare 16#339A
+/nnabengali 16#09A3
+/nnadeva 16#0923
+/nnagujarati 16#0AA3
+/nnagurmukhi 16#0A23
+/nnnadeva 16#0929
+/nohiragana 16#306E
+/nokatakana 16#30CE
+/nokatakanahalfwidth 16#FF89
+/nonbreakingspace 16#00A0
+/nonenthai 16#0E13
+/nonuthai 16#0E19
+/noonarabic 16#0646
+/noonfinalarabic 16#FEE6
+/noonghunnaarabic 16#06BA
+/noonghunnafinalarabic 16#FB9F
+% /noonhehinitialarabic 16#FEE7 16#FEEC
+/nooninitialarabic 16#FEE7
+/noonjeeminitialarabic 16#FCD2
+/noonjeemisolatedarabic 16#FC4B
+/noonmedialarabic 16#FEE8
+/noonmeeminitialarabic 16#FCD5
+/noonmeemisolatedarabic 16#FC4E
+/noonnoonfinalarabic 16#FC8D
+/notcontains 16#220C
+/notelement 16#2209
+/notelementof 16#2209
+/notequal 16#2260
+/notgreater 16#226F
+/notgreaternorequal 16#2271
+/notgreaternorless 16#2279
+/notidentical 16#2262
+/notless 16#226E
+/notlessnorequal 16#2270
+/notparallel 16#2226
+/notprecedes 16#2280
+/notsubset 16#2284
+/notsucceeds 16#2281
+/notsuperset 16#2285
+/nowarmenian 16#0576
+/nparen 16#24A9
+/nssquare 16#33B1
+/nsuperior 16#207F
+/ntilde 16#00F1
+/nu 16#03BD
+/nuhiragana 16#306C
+/nukatakana 16#30CC
+/nukatakanahalfwidth 16#FF87
+/nuktabengali 16#09BC
+/nuktadeva 16#093C
+/nuktagujarati 16#0ABC
+/nuktagurmukhi 16#0A3C
+/numbersign 16#0023
+/numbersignmonospace 16#FF03
+/numbersignsmall 16#FE5F
+/numeralsigngreek 16#0374
+/numeralsignlowergreek 16#0375
+/numero 16#2116
+/nun 16#05E0
+/nundagesh 16#FB40
+/nundageshhebrew 16#FB40
+/nunhebrew 16#05E0
+/nvsquare 16#33B5
+/nwsquare 16#33BB
+/nyabengali 16#099E
+/nyadeva 16#091E
+/nyagujarati 16#0A9E
+/nyagurmukhi 16#0A1E
+/o 16#006F
+/oacute 16#00F3
+/oangthai 16#0E2D
+/obarred 16#0275
+/obarredcyrillic 16#04E9
+/obarreddieresiscyrillic 16#04EB
+/obengali 16#0993
+/obopomofo 16#311B
+/obreve 16#014F
+/ocandradeva 16#0911
+/ocandragujarati 16#0A91
+/ocandravowelsigndeva 16#0949
+/ocandravowelsigngujarati 16#0AC9
+/ocaron 16#01D2
+/ocircle 16#24DE
+/ocircumflex 16#00F4
+/ocircumflexacute 16#1ED1
+/ocircumflexdotbelow 16#1ED9
+/ocircumflexgrave 16#1ED3
+/ocircumflexhookabove 16#1ED5
+/ocircumflextilde 16#1ED7
+/ocyrillic 16#043E
+/odblacute 16#0151
+/odblgrave 16#020D
+/odeva 16#0913
+/odieresis 16#00F6
+/odieresiscyrillic 16#04E7
+/odotbelow 16#1ECD
+/oe 16#0153
+/oekorean 16#315A
+/ogonek 16#02DB
+/ogonekcmb 16#0328
+/ograve 16#00F2
+/ogujarati 16#0A93
+/oharmenian 16#0585
+/ohiragana 16#304A
+/ohookabove 16#1ECF
+/ohorn 16#01A1
+/ohornacute 16#1EDB
+/ohorndotbelow 16#1EE3
+/ohorngrave 16#1EDD
+/ohornhookabove 16#1EDF
+/ohorntilde 16#1EE1
+/ohungarumlaut 16#0151
+/oi 16#01A3
+/oinvertedbreve 16#020F
+/okatakana 16#30AA
+/okatakanahalfwidth 16#FF75
+/okorean 16#3157
+/olehebrew 16#05AB
+/omacron 16#014D
+/omacronacute 16#1E53
+/omacrongrave 16#1E51
+/omdeva 16#0950
+/omega 16#03C9
+/omega1 16#03D6
+/omegacyrillic 16#0461
+/omegalatinclosed 16#0277
+/omegaroundcyrillic 16#047B
+/omegatitlocyrillic 16#047D
+/omegatonos 16#03CE
+/omgujarati 16#0AD0
+/omicron 16#03BF
+/omicrontonos 16#03CC
+/omonospace 16#FF4F
+/one 16#0031
+/onearabic 16#0661
+/onebengali 16#09E7
+/onecircle 16#2460
+/onecircleinversesansserif 16#278A
+/onedeva 16#0967
+/onedotenleader 16#2024
+/oneeighth 16#215B
+/onefitted 16#F6DC
+/onegujarati 16#0AE7
+/onegurmukhi 16#0A67
+/onehackarabic 16#0661
+/onehalf 16#00BD
+/onehangzhou 16#3021
+/oneideographicparen 16#3220
+/oneinferior 16#2081
+/onemonospace 16#FF11
+/onenumeratorbengali 16#09F4
+/oneoldstyle 16#F731
+/oneparen 16#2474
+/oneperiod 16#2488
+/onepersian 16#06F1
+/onequarter 16#00BC
+/oneroman 16#2170
+/onesuperior 16#00B9
+/onethai 16#0E51
+/onethird 16#2153
+/oogonek 16#01EB
+/oogonekmacron 16#01ED
+/oogurmukhi 16#0A13
+/oomatragurmukhi 16#0A4B
+/oopen 16#0254
+/oparen 16#24AA
+/openbullet 16#25E6
+/option 16#2325
+/ordfeminine 16#00AA
+/ordmasculine 16#00BA
+/orthogonal 16#221F
+/oshortdeva 16#0912
+/oshortvowelsigndeva 16#094A
+/oslash 16#00F8
+/oslashacute 16#01FF
+/osmallhiragana 16#3049
+/osmallkatakana 16#30A9
+/osmallkatakanahalfwidth 16#FF6B
+/ostrokeacute 16#01FF
+/osuperior 16#F6F0
+/otcyrillic 16#047F
+/otilde 16#00F5
+/otildeacute 16#1E4D
+/otildedieresis 16#1E4F
+/oubopomofo 16#3121
+/overline 16#203E
+/overlinecenterline 16#FE4A
+/overlinecmb 16#0305
+/overlinedashed 16#FE49
+/overlinedblwavy 16#FE4C
+/overlinewavy 16#FE4B
+/overscore 16#00AF
+/ovowelsignbengali 16#09CB
+/ovowelsigndeva 16#094B
+/ovowelsigngujarati 16#0ACB
+/p 16#0070
+/paampssquare 16#3380
+/paasentosquare 16#332B
+/pabengali 16#09AA
+/pacute 16#1E55
+/padeva 16#092A
+/pagedown 16#21DF
+/pageup 16#21DE
+/pagujarati 16#0AAA
+/pagurmukhi 16#0A2A
+/pahiragana 16#3071
+/paiyannoithai 16#0E2F
+/pakatakana 16#30D1
+/palatalizationcyrilliccmb 16#0484
+/palochkacyrillic 16#04C0
+/pansioskorean 16#317F
+/paragraph 16#00B6
+/parallel 16#2225
+/parenleft 16#0028
+/parenleftaltonearabic 16#FD3E
+/parenleftbt 16#F8ED
+/parenleftex 16#F8EC
+/parenleftinferior 16#208D
+/parenleftmonospace 16#FF08
+/parenleftsmall 16#FE59
+/parenleftsuperior 16#207D
+/parenlefttp 16#F8EB
+/parenleftvertical 16#FE35
+/parenright 16#0029
+/parenrightaltonearabic 16#FD3F
+/parenrightbt 16#F8F8
+/parenrightex 16#F8F7
+/parenrightinferior 16#208E
+/parenrightmonospace 16#FF09
+/parenrightsmall 16#FE5A
+/parenrightsuperior 16#207E
+/parenrighttp 16#F8F6
+/parenrightvertical 16#FE36
+/partialdiff 16#2202
+/paseqhebrew 16#05C0
+/pashtahebrew 16#0599
+/pasquare 16#33A9
+/patah 16#05B7
+/patah11 16#05B7
+/patah1d 16#05B7
+/patah2a 16#05B7
+/patahhebrew 16#05B7
+/patahnarrowhebrew 16#05B7
+/patahquarterhebrew 16#05B7
+/patahwidehebrew 16#05B7
+/pazerhebrew 16#05A1
+/pbopomofo 16#3106
+/pcircle 16#24DF
+/pdotaccent 16#1E57
+/pe 16#05E4
+/pecyrillic 16#043F
+/pedagesh 16#FB44
+/pedageshhebrew 16#FB44
+/peezisquare 16#333B
+/pefinaldageshhebrew 16#FB43
+/peharabic 16#067E
+/peharmenian 16#057A
+/pehebrew 16#05E4
+/pehfinalarabic 16#FB57
+/pehinitialarabic 16#FB58
+/pehiragana 16#307A
+/pehmedialarabic 16#FB59
+/pekatakana 16#30DA
+/pemiddlehookcyrillic 16#04A7
+/perafehebrew 16#FB4E
+/percent 16#0025
+/percentarabic 16#066A
+/percentmonospace 16#FF05
+/percentsmall 16#FE6A
+/period 16#002E
+/periodarmenian 16#0589
+/periodcentered 16#00B7
+/periodhalfwidth 16#FF61
+/periodinferior 16#F6E7
+/periodmonospace 16#FF0E
+/periodsmall 16#FE52
+/periodsuperior 16#F6E8
+/perispomenigreekcmb 16#0342
+/perpendicular 16#22A5
+/perthousand 16#2030
+/peseta 16#20A7
+/pfsquare 16#338A
+/phabengali 16#09AB
+/phadeva 16#092B
+/phagujarati 16#0AAB
+/phagurmukhi 16#0A2B
+/phi 16#03C6
+/phi1 16#03D5
+/phieuphacirclekorean 16#327A
+/phieuphaparenkorean 16#321A
+/phieuphcirclekorean 16#326C
+/phieuphkorean 16#314D
+/phieuphparenkorean 16#320C
+/philatin 16#0278
+/phinthuthai 16#0E3A
+/phisymbolgreek 16#03D5
+/phook 16#01A5
+/phophanthai 16#0E1E
+/phophungthai 16#0E1C
+/phosamphaothai 16#0E20
+/pi 16#03C0
+/pieupacirclekorean 16#3273
+/pieupaparenkorean 16#3213
+/pieupcieuckorean 16#3176
+/pieupcirclekorean 16#3265
+/pieupkiyeokkorean 16#3172
+/pieupkorean 16#3142
+/pieupparenkorean 16#3205
+/pieupsioskiyeokkorean 16#3174
+/pieupsioskorean 16#3144
+/pieupsiostikeutkorean 16#3175
+/pieupthieuthkorean 16#3177
+/pieuptikeutkorean 16#3173
+/pihiragana 16#3074
+/pikatakana 16#30D4
+/pisymbolgreek 16#03D6
+/piwrarmenian 16#0583
+/plus 16#002B
+/plusbelowcmb 16#031F
+/pluscircle 16#2295
+/plusminus 16#00B1
+/plusmod 16#02D6
+/plusmonospace 16#FF0B
+/plussmall 16#FE62
+/plussuperior 16#207A
+/pmonospace 16#FF50
+/pmsquare 16#33D8
+/pohiragana 16#307D
+/pointingindexdownwhite 16#261F
+/pointingindexleftwhite 16#261C
+/pointingindexrightwhite 16#261E
+/pointingindexupwhite 16#261D
+/pokatakana 16#30DD
+/poplathai 16#0E1B
+/postalmark 16#3012
+/postalmarkface 16#3020
+/pparen 16#24AB
+/precedes 16#227A
+/prescription 16#211E
+/primemod 16#02B9
+/primereversed 16#2035
+/product 16#220F
+/projective 16#2305
+/prolongedkana 16#30FC
+/propellor 16#2318
+/propersubset 16#2282
+/propersuperset 16#2283
+/proportion 16#2237
+/proportional 16#221D
+/psi 16#03C8
+/psicyrillic 16#0471
+/psilipneumatacyrilliccmb 16#0486
+/pssquare 16#33B0
+/puhiragana 16#3077
+/pukatakana 16#30D7
+/pvsquare 16#33B4
+/pwsquare 16#33BA
+/q 16#0071
+/qadeva 16#0958
+/qadmahebrew 16#05A8
+/qafarabic 16#0642
+/qaffinalarabic 16#FED6
+/qafinitialarabic 16#FED7
+/qafmedialarabic 16#FED8
+/qamats 16#05B8
+/qamats10 16#05B8
+/qamats1a 16#05B8
+/qamats1c 16#05B8
+/qamats27 16#05B8
+/qamats29 16#05B8
+/qamats33 16#05B8
+/qamatsde 16#05B8
+/qamatshebrew 16#05B8
+/qamatsnarrowhebrew 16#05B8
+/qamatsqatanhebrew 16#05B8
+/qamatsqatannarrowhebrew 16#05B8
+/qamatsqatanquarterhebrew 16#05B8
+/qamatsqatanwidehebrew 16#05B8
+/qamatsquarterhebrew 16#05B8
+/qamatswidehebrew 16#05B8
+/qarneyparahebrew 16#059F
+/qbopomofo 16#3111
+/qcircle 16#24E0
+/qhook 16#02A0
+/qmonospace 16#FF51
+/qof 16#05E7
+/qofdagesh 16#FB47
+/qofdageshhebrew 16#FB47
+% /qofhatafpatah 16#05E7 16#05B2
+% /qofhatafpatahhebrew 16#05E7 16#05B2
+% /qofhatafsegol 16#05E7 16#05B1
+% /qofhatafsegolhebrew 16#05E7 16#05B1
+/qofhebrew 16#05E7
+% /qofhiriq 16#05E7 16#05B4
+% /qofhiriqhebrew 16#05E7 16#05B4
+% /qofholam 16#05E7 16#05B9
+% /qofholamhebrew 16#05E7 16#05B9
+% /qofpatah 16#05E7 16#05B7
+% /qofpatahhebrew 16#05E7 16#05B7
+% /qofqamats 16#05E7 16#05B8
+% /qofqamatshebrew 16#05E7 16#05B8
+% /qofqubuts 16#05E7 16#05BB
+% /qofqubutshebrew 16#05E7 16#05BB
+% /qofsegol 16#05E7 16#05B6
+% /qofsegolhebrew 16#05E7 16#05B6
+% /qofsheva 16#05E7 16#05B0
+% /qofshevahebrew 16#05E7 16#05B0
+% /qoftsere 16#05E7 16#05B5
+% /qoftserehebrew 16#05E7 16#05B5
+/qparen 16#24AC
+/quarternote 16#2669
+/qubuts 16#05BB
+/qubuts18 16#05BB
+/qubuts25 16#05BB
+/qubuts31 16#05BB
+/qubutshebrew 16#05BB
+/qubutsnarrowhebrew 16#05BB
+/qubutsquarterhebrew 16#05BB
+/qubutswidehebrew 16#05BB
+/question 16#003F
+/questionarabic 16#061F
+/questionarmenian 16#055E
+/questiondown 16#00BF
+/questiondownsmall 16#F7BF
+/questiongreek 16#037E
+/questionmonospace 16#FF1F
+/questionsmall 16#F73F
+/quotedbl 16#0022
+/quotedblbase 16#201E
+/quotedblleft 16#201C
+/quotedblmonospace 16#FF02
+/quotedblprime 16#301E
+/quotedblprimereversed 16#301D
+/quotedblright 16#201D
+/quoteleft 16#2018
+/quoteleftreversed 16#201B
+/quotereversed 16#201B
+/quoteright 16#2019
+/quoterightn 16#0149
+/quotesinglbase 16#201A
+/quotesingle 16#0027
+/quotesinglemonospace 16#FF07
+/r 16#0072
+/raarmenian 16#057C
+/rabengali 16#09B0
+/racute 16#0155
+/radeva 16#0930
+/radical 16#221A
+/radicalex 16#F8E5
+/radoverssquare 16#33AE
+/radoverssquaredsquare 16#33AF
+/radsquare 16#33AD
+/rafe 16#05BF
+/rafehebrew 16#05BF
+/ragujarati 16#0AB0
+/ragurmukhi 16#0A30
+/rahiragana 16#3089
+/rakatakana 16#30E9
+/rakatakanahalfwidth 16#FF97
+/ralowerdiagonalbengali 16#09F1
+/ramiddlediagonalbengali 16#09F0
+/ramshorn 16#0264
+/ratio 16#2236
+/rbopomofo 16#3116
+/rcaron 16#0159
+/rcedilla 16#0157
+/rcircle 16#24E1
+/rcommaaccent 16#0157
+/rdblgrave 16#0211
+/rdotaccent 16#1E59
+/rdotbelow 16#1E5B
+/rdotbelowmacron 16#1E5D
+/referencemark 16#203B
+/reflexsubset 16#2286
+/reflexsuperset 16#2287
+/registered 16#00AE
+/registersans 16#F8E8
+/registerserif 16#F6DA
+/reharabic 16#0631
+/reharmenian 16#0580
+/rehfinalarabic 16#FEAE
+/rehiragana 16#308C
+% /rehyehaleflamarabic 16#0631 16#FEF3 16#FE8E 16#0644
+/rekatakana 16#30EC
+/rekatakanahalfwidth 16#FF9A
+/resh 16#05E8
+/reshdageshhebrew 16#FB48
+% /reshhatafpatah 16#05E8 16#05B2
+% /reshhatafpatahhebrew 16#05E8 16#05B2
+% /reshhatafsegol 16#05E8 16#05B1
+% /reshhatafsegolhebrew 16#05E8 16#05B1
+/reshhebrew 16#05E8
+% /reshhiriq 16#05E8 16#05B4
+% /reshhiriqhebrew 16#05E8 16#05B4
+% /reshholam 16#05E8 16#05B9
+% /reshholamhebrew 16#05E8 16#05B9
+% /reshpatah 16#05E8 16#05B7
+% /reshpatahhebrew 16#05E8 16#05B7
+% /reshqamats 16#05E8 16#05B8
+% /reshqamatshebrew 16#05E8 16#05B8
+% /reshqubuts 16#05E8 16#05BB
+% /reshqubutshebrew 16#05E8 16#05BB
+% /reshsegol 16#05E8 16#05B6
+% /reshsegolhebrew 16#05E8 16#05B6
+% /reshsheva 16#05E8 16#05B0
+% /reshshevahebrew 16#05E8 16#05B0
+% /reshtsere 16#05E8 16#05B5
+% /reshtserehebrew 16#05E8 16#05B5
+/reversedtilde 16#223D
+/reviahebrew 16#0597
+/reviamugrashhebrew 16#0597
+/revlogicalnot 16#2310
+/rfishhook 16#027E
+/rfishhookreversed 16#027F
+/rhabengali 16#09DD
+/rhadeva 16#095D
+/rho 16#03C1
+/rhook 16#027D
+/rhookturned 16#027B
+/rhookturnedsuperior 16#02B5
+/rhosymbolgreek 16#03F1
+/rhotichookmod 16#02DE
+/rieulacirclekorean 16#3271
+/rieulaparenkorean 16#3211
+/rieulcirclekorean 16#3263
+/rieulhieuhkorean 16#3140
+/rieulkiyeokkorean 16#313A
+/rieulkiyeoksioskorean 16#3169
+/rieulkorean 16#3139
+/rieulmieumkorean 16#313B
+/rieulpansioskorean 16#316C
+/rieulparenkorean 16#3203
+/rieulphieuphkorean 16#313F
+/rieulpieupkorean 16#313C
+/rieulpieupsioskorean 16#316B
+/rieulsioskorean 16#313D
+/rieulthieuthkorean 16#313E
+/rieultikeutkorean 16#316A
+/rieulyeorinhieuhkorean 16#316D
+/rightangle 16#221F
+/righttackbelowcmb 16#0319
+/righttriangle 16#22BF
+/rihiragana 16#308A
+/rikatakana 16#30EA
+/rikatakanahalfwidth 16#FF98
+/ring 16#02DA
+/ringbelowcmb 16#0325
+/ringcmb 16#030A
+/ringhalfleft 16#02BF
+/ringhalfleftarmenian 16#0559
+/ringhalfleftbelowcmb 16#031C
+/ringhalfleftcentered 16#02D3
+/ringhalfright 16#02BE
+/ringhalfrightbelowcmb 16#0339
+/ringhalfrightcentered 16#02D2
+/rinvertedbreve 16#0213
+/rittorusquare 16#3351
+/rlinebelow 16#1E5F
+/rlongleg 16#027C
+/rlonglegturned 16#027A
+/rmonospace 16#FF52
+/rohiragana 16#308D
+/rokatakana 16#30ED
+/rokatakanahalfwidth 16#FF9B
+/roruathai 16#0E23
+/rparen 16#24AD
+/rrabengali 16#09DC
+/rradeva 16#0931
+/rragurmukhi 16#0A5C
+/rreharabic 16#0691
+/rrehfinalarabic 16#FB8D
+/rrvocalicbengali 16#09E0
+/rrvocalicdeva 16#0960
+/rrvocalicgujarati 16#0AE0
+/rrvocalicvowelsignbengali 16#09C4
+/rrvocalicvowelsigndeva 16#0944
+/rrvocalicvowelsigngujarati 16#0AC4
+/rsuperior 16#F6F1
+/rtblock 16#2590
+/rturned 16#0279
+/rturnedsuperior 16#02B4
+/ruhiragana 16#308B
+/rukatakana 16#30EB
+/rukatakanahalfwidth 16#FF99
+/rupeemarkbengali 16#09F2
+/rupeesignbengali 16#09F3
+/rupiah 16#F6DD
+/ruthai 16#0E24
+/rvocalicbengali 16#098B
+/rvocalicdeva 16#090B
+/rvocalicgujarati 16#0A8B
+/rvocalicvowelsignbengali 16#09C3
+/rvocalicvowelsigndeva 16#0943
+/rvocalicvowelsigngujarati 16#0AC3
+/s 16#0073
+/sabengali 16#09B8
+/sacute 16#015B
+/sacutedotaccent 16#1E65
+/sadarabic 16#0635
+/sadeva 16#0938
+/sadfinalarabic 16#FEBA
+/sadinitialarabic 16#FEBB
+/sadmedialarabic 16#FEBC
+/sagujarati 16#0AB8
+/sagurmukhi 16#0A38
+/sahiragana 16#3055
+/sakatakana 16#30B5
+/sakatakanahalfwidth 16#FF7B
+/sallallahoualayhewasallamarabic 16#FDFA
+/samekh 16#05E1
+/samekhdagesh 16#FB41
+/samekhdageshhebrew 16#FB41
+/samekhhebrew 16#05E1
+/saraaathai 16#0E32
+/saraaethai 16#0E41
+/saraaimaimalaithai 16#0E44
+/saraaimaimuanthai 16#0E43
+/saraamthai 16#0E33
+/saraathai 16#0E30
+/saraethai 16#0E40
+/saraiileftthai 16#F886
+/saraiithai 16#0E35
+/saraileftthai 16#F885
+/saraithai 16#0E34
+/saraothai 16#0E42
+/saraueeleftthai 16#F888
+/saraueethai 16#0E37
+/saraueleftthai 16#F887
+/sarauethai 16#0E36
+/sarauthai 16#0E38
+/sarauuthai 16#0E39
+/sbopomofo 16#3119
+/scaron 16#0161
+/scarondotaccent 16#1E67
+/scedilla 16#015F
+/schwa 16#0259
+/schwacyrillic 16#04D9
+/schwadieresiscyrillic 16#04DB
+/schwahook 16#025A
+/scircle 16#24E2
+/scircumflex 16#015D
+/scommaaccent 16#0219
+/sdotaccent 16#1E61
+/sdotbelow 16#1E63
+/sdotbelowdotaccent 16#1E69
+/seagullbelowcmb 16#033C
+/second 16#2033
+/secondtonechinese 16#02CA
+/section 16#00A7
+/seenarabic 16#0633
+/seenfinalarabic 16#FEB2
+/seeninitialarabic 16#FEB3
+/seenmedialarabic 16#FEB4
+/segol 16#05B6
+/segol13 16#05B6
+/segol1f 16#05B6
+/segol2c 16#05B6
+/segolhebrew 16#05B6
+/segolnarrowhebrew 16#05B6
+/segolquarterhebrew 16#05B6
+/segoltahebrew 16#0592
+/segolwidehebrew 16#05B6
+/seharmenian 16#057D
+/sehiragana 16#305B
+/sekatakana 16#30BB
+/sekatakanahalfwidth 16#FF7E
+/semicolon 16#003B
+/semicolonarabic 16#061B
+/semicolonmonospace 16#FF1B
+/semicolonsmall 16#FE54
+/semivoicedmarkkana 16#309C
+/semivoicedmarkkanahalfwidth 16#FF9F
+/sentisquare 16#3322
+/sentosquare 16#3323
+/seven 16#0037
+/sevenarabic 16#0667
+/sevenbengali 16#09ED
+/sevencircle 16#2466
+/sevencircleinversesansserif 16#2790
+/sevendeva 16#096D
+/seveneighths 16#215E
+/sevengujarati 16#0AED
+/sevengurmukhi 16#0A6D
+/sevenhackarabic 16#0667
+/sevenhangzhou 16#3027
+/sevenideographicparen 16#3226
+/seveninferior 16#2087
+/sevenmonospace 16#FF17
+/sevenoldstyle 16#F737
+/sevenparen 16#247A
+/sevenperiod 16#248E
+/sevenpersian 16#06F7
+/sevenroman 16#2176
+/sevensuperior 16#2077
+/seventeencircle 16#2470
+/seventeenparen 16#2484
+/seventeenperiod 16#2498
+/seventhai 16#0E57
+/sfthyphen 16#00AD
+/shaarmenian 16#0577
+/shabengali 16#09B6
+/shacyrillic 16#0448
+/shaddaarabic 16#0651
+/shaddadammaarabic 16#FC61
+/shaddadammatanarabic 16#FC5E
+/shaddafathaarabic 16#FC60
+% /shaddafathatanarabic 16#0651 16#064B
+/shaddakasraarabic 16#FC62
+/shaddakasratanarabic 16#FC5F
+/shade 16#2592
+/shadedark 16#2593
+/shadelight 16#2591
+/shademedium 16#2592
+/shadeva 16#0936
+/shagujarati 16#0AB6
+/shagurmukhi 16#0A36
+/shalshelethebrew 16#0593
+/shbopomofo 16#3115
+/shchacyrillic 16#0449
+/sheenarabic 16#0634
+/sheenfinalarabic 16#FEB6
+/sheeninitialarabic 16#FEB7
+/sheenmedialarabic 16#FEB8
+/sheicoptic 16#03E3
+/sheqel 16#20AA
+/sheqelhebrew 16#20AA
+/sheva 16#05B0
+/sheva115 16#05B0
+/sheva15 16#05B0
+/sheva22 16#05B0
+/sheva2e 16#05B0
+/shevahebrew 16#05B0
+/shevanarrowhebrew 16#05B0
+/shevaquarterhebrew 16#05B0
+/shevawidehebrew 16#05B0
+/shhacyrillic 16#04BB
+/shimacoptic 16#03ED
+/shin 16#05E9
+/shindagesh 16#FB49
+/shindageshhebrew 16#FB49
+/shindageshshindot 16#FB2C
+/shindageshshindothebrew 16#FB2C
+/shindageshsindot 16#FB2D
+/shindageshsindothebrew 16#FB2D
+/shindothebrew 16#05C1
+/shinhebrew 16#05E9
+/shinshindot 16#FB2A
+/shinshindothebrew 16#FB2A
+/shinsindot 16#FB2B
+/shinsindothebrew 16#FB2B
+/shook 16#0282
+/sigma 16#03C3
+/sigma1 16#03C2
+/sigmafinal 16#03C2
+/sigmalunatesymbolgreek 16#03F2
+/sihiragana 16#3057
+/sikatakana 16#30B7
+/sikatakanahalfwidth 16#FF7C
+/siluqhebrew 16#05BD
+/siluqlefthebrew 16#05BD
+/similar 16#223C
+/sindothebrew 16#05C2
+/siosacirclekorean 16#3274
+/siosaparenkorean 16#3214
+/sioscieuckorean 16#317E
+/sioscirclekorean 16#3266
+/sioskiyeokkorean 16#317A
+/sioskorean 16#3145
+/siosnieunkorean 16#317B
+/siosparenkorean 16#3206
+/siospieupkorean 16#317D
+/siostikeutkorean 16#317C
+/six 16#0036
+/sixarabic 16#0666
+/sixbengali 16#09EC
+/sixcircle 16#2465
+/sixcircleinversesansserif 16#278F
+/sixdeva 16#096C
+/sixgujarati 16#0AEC
+/sixgurmukhi 16#0A6C
+/sixhackarabic 16#0666
+/sixhangzhou 16#3026
+/sixideographicparen 16#3225
+/sixinferior 16#2086
+/sixmonospace 16#FF16
+/sixoldstyle 16#F736
+/sixparen 16#2479
+/sixperiod 16#248D
+/sixpersian 16#06F6
+/sixroman 16#2175
+/sixsuperior 16#2076
+/sixteencircle 16#246F
+/sixteencurrencydenominatorbengali 16#09F9
+/sixteenparen 16#2483
+/sixteenperiod 16#2497
+/sixthai 16#0E56
+/slash 16#002F
+/slashmonospace 16#FF0F
+/slong 16#017F
+/slongdotaccent 16#1E9B
+/smileface 16#263A
+/smonospace 16#FF53
+/sofpasuqhebrew 16#05C3
+/softhyphen 16#00AD
+/softsigncyrillic 16#044C
+/sohiragana 16#305D
+/sokatakana 16#30BD
+/sokatakanahalfwidth 16#FF7F
+/soliduslongoverlaycmb 16#0338
+/solidusshortoverlaycmb 16#0337
+/sorusithai 16#0E29
+/sosalathai 16#0E28
+/sosothai 16#0E0B
+/sosuathai 16#0E2A
+/space 16#0020
+/spacehackarabic 16#0020
+/spade 16#2660
+/spadesuitblack 16#2660
+/spadesuitwhite 16#2664
+/sparen 16#24AE
+/squarebelowcmb 16#033B
+/squarecc 16#33C4
+/squarecm 16#339D
+/squarediagonalcrosshatchfill 16#25A9
+/squarehorizontalfill 16#25A4
+/squarekg 16#338F
+/squarekm 16#339E
+/squarekmcapital 16#33CE
+/squareln 16#33D1
+/squarelog 16#33D2
+/squaremg 16#338E
+/squaremil 16#33D5
+/squaremm 16#339C
+/squaremsquared 16#33A1
+/squareorthogonalcrosshatchfill 16#25A6
+/squareupperlefttolowerrightfill 16#25A7
+/squareupperrighttolowerleftfill 16#25A8
+/squareverticalfill 16#25A5
+/squarewhitewithsmallblack 16#25A3
+/srsquare 16#33DB
+/ssabengali 16#09B7
+/ssadeva 16#0937
+/ssagujarati 16#0AB7
+/ssangcieuckorean 16#3149
+/ssanghieuhkorean 16#3185
+/ssangieungkorean 16#3180
+/ssangkiyeokkorean 16#3132
+/ssangnieunkorean 16#3165
+/ssangpieupkorean 16#3143
+/ssangsioskorean 16#3146
+/ssangtikeutkorean 16#3138
+/ssuperior 16#F6F2
+/sterling 16#00A3
+/sterlingmonospace 16#FFE1
+/strokelongoverlaycmb 16#0336
+/strokeshortoverlaycmb 16#0335
+/subset 16#2282
+/subsetnotequal 16#228A
+/subsetorequal 16#2286
+/succeeds 16#227B
+/suchthat 16#220B
+/suhiragana 16#3059
+/sukatakana 16#30B9
+/sukatakanahalfwidth 16#FF7D
+/sukunarabic 16#0652
+/summation 16#2211
+/sun 16#263C
+/superset 16#2283
+/supersetnotequal 16#228B
+/supersetorequal 16#2287
+/svsquare 16#33DC
+/syouwaerasquare 16#337C
+/t 16#0074
+/tabengali 16#09A4
+/tackdown 16#22A4
+/tackleft 16#22A3
+/tadeva 16#0924
+/tagujarati 16#0AA4
+/tagurmukhi 16#0A24
+/taharabic 16#0637
+/tahfinalarabic 16#FEC2
+/tahinitialarabic 16#FEC3
+/tahiragana 16#305F
+/tahmedialarabic 16#FEC4
+/taisyouerasquare 16#337D
+/takatakana 16#30BF
+/takatakanahalfwidth 16#FF80
+/tatweelarabic 16#0640
+/tau 16#03C4
+/tav 16#05EA
+/tavdages 16#FB4A
+/tavdagesh 16#FB4A
+/tavdageshhebrew 16#FB4A
+/tavhebrew 16#05EA
+/tbar 16#0167
+/tbopomofo 16#310A
+/tcaron 16#0165
+/tccurl 16#02A8
+/tcedilla 16#0163
+/tcheharabic 16#0686
+/tchehfinalarabic 16#FB7B
+/tchehinitialarabic 16#FB7C
+/tchehmedialarabic 16#FB7D
+% /tchehmeeminitialarabic 16#FB7C 16#FEE4
+/tcircle 16#24E3
+/tcircumflexbelow 16#1E71
+/tcommaaccent 16#0163
+/tdieresis 16#1E97
+/tdotaccent 16#1E6B
+/tdotbelow 16#1E6D
+/tecyrillic 16#0442
+/tedescendercyrillic 16#04AD
+/teharabic 16#062A
+/tehfinalarabic 16#FE96
+/tehhahinitialarabic 16#FCA2
+/tehhahisolatedarabic 16#FC0C
+/tehinitialarabic 16#FE97
+/tehiragana 16#3066
+/tehjeeminitialarabic 16#FCA1
+/tehjeemisolatedarabic 16#FC0B
+/tehmarbutaarabic 16#0629
+/tehmarbutafinalarabic 16#FE94
+/tehmedialarabic 16#FE98
+/tehmeeminitialarabic 16#FCA4
+/tehmeemisolatedarabic 16#FC0E
+/tehnoonfinalarabic 16#FC73
+/tekatakana 16#30C6
+/tekatakanahalfwidth 16#FF83
+/telephone 16#2121
+/telephoneblack 16#260E
+/telishagedolahebrew 16#05A0
+/telishaqetanahebrew 16#05A9
+/tencircle 16#2469
+/tenideographicparen 16#3229
+/tenparen 16#247D
+/tenperiod 16#2491
+/tenroman 16#2179
+/tesh 16#02A7
+/tet 16#05D8
+/tetdagesh 16#FB38
+/tetdageshhebrew 16#FB38
+/tethebrew 16#05D8
+/tetsecyrillic 16#04B5
+/tevirhebrew 16#059B
+/tevirlefthebrew 16#059B
+/thabengali 16#09A5
+/thadeva 16#0925
+/thagujarati 16#0AA5
+/thagurmukhi 16#0A25
+/thalarabic 16#0630
+/thalfinalarabic 16#FEAC
+/thanthakhatlowleftthai 16#F898
+/thanthakhatlowrightthai 16#F897
+/thanthakhatthai 16#0E4C
+/thanthakhatupperleftthai 16#F896
+/theharabic 16#062B
+/thehfinalarabic 16#FE9A
+/thehinitialarabic 16#FE9B
+/thehmedialarabic 16#FE9C
+/thereexists 16#2203
+/therefore 16#2234
+/theta 16#03B8
+/theta1 16#03D1
+/thetasymbolgreek 16#03D1
+/thieuthacirclekorean 16#3279
+/thieuthaparenkorean 16#3219
+/thieuthcirclekorean 16#326B
+/thieuthkorean 16#314C
+/thieuthparenkorean 16#320B
+/thirteencircle 16#246C
+/thirteenparen 16#2480
+/thirteenperiod 16#2494
+/thonangmonthothai 16#0E11
+/thook 16#01AD
+/thophuthaothai 16#0E12
+/thorn 16#00FE
+/thothahanthai 16#0E17
+/thothanthai 16#0E10
+/thothongthai 16#0E18
+/thothungthai 16#0E16
+/thousandcyrillic 16#0482
+/thousandsseparatorarabic 16#066C
+/thousandsseparatorpersian 16#066C
+/three 16#0033
+/threearabic 16#0663
+/threebengali 16#09E9
+/threecircle 16#2462
+/threecircleinversesansserif 16#278C
+/threedeva 16#0969
+/threeeighths 16#215C
+/threegujarati 16#0AE9
+/threegurmukhi 16#0A69
+/threehackarabic 16#0663
+/threehangzhou 16#3023
+/threeideographicparen 16#3222
+/threeinferior 16#2083
+/threemonospace 16#FF13
+/threenumeratorbengali 16#09F6
+/threeoldstyle 16#F733
+/threeparen 16#2476
+/threeperiod 16#248A
+/threepersian 16#06F3
+/threequarters 16#00BE
+/threequartersemdash 16#F6DE
+/threeroman 16#2172
+/threesuperior 16#00B3
+/threethai 16#0E53
+/thzsquare 16#3394
+/tihiragana 16#3061
+/tikatakana 16#30C1
+/tikatakanahalfwidth 16#FF81
+/tikeutacirclekorean 16#3270
+/tikeutaparenkorean 16#3210
+/tikeutcirclekorean 16#3262
+/tikeutkorean 16#3137
+/tikeutparenkorean 16#3202
+/tilde 16#02DC
+/tildebelowcmb 16#0330
+/tildecmb 16#0303
+/tildecomb 16#0303
+/tildedoublecmb 16#0360
+/tildeoperator 16#223C
+/tildeoverlaycmb 16#0334
+/tildeverticalcmb 16#033E
+/timescircle 16#2297
+/tipehahebrew 16#0596
+/tipehalefthebrew 16#0596
+/tippigurmukhi 16#0A70
+/titlocyrilliccmb 16#0483
+/tiwnarmenian 16#057F
+/tlinebelow 16#1E6F
+/tmonospace 16#FF54
+/toarmenian 16#0569
+/tohiragana 16#3068
+/tokatakana 16#30C8
+/tokatakanahalfwidth 16#FF84
+/tonebarextrahighmod 16#02E5
+/tonebarextralowmod 16#02E9
+/tonebarhighmod 16#02E6
+/tonebarlowmod 16#02E8
+/tonebarmidmod 16#02E7
+/tonefive 16#01BD
+/tonesix 16#0185
+/tonetwo 16#01A8
+/tonos 16#0384
+/tonsquare 16#3327
+/topatakthai 16#0E0F
+/tortoiseshellbracketleft 16#3014
+/tortoiseshellbracketleftsmall 16#FE5D
+/tortoiseshellbracketleftvertical 16#FE39
+/tortoiseshellbracketright 16#3015
+/tortoiseshellbracketrightsmall 16#FE5E
+/tortoiseshellbracketrightvertical 16#FE3A
+/totaothai 16#0E15
+/tpalatalhook 16#01AB
+/tparen 16#24AF
+/trademark 16#2122
+/trademarksans 16#F8EA
+/trademarkserif 16#F6DB
+/tretroflexhook 16#0288
+/triagdn 16#25BC
+/triaglf 16#25C4
+/triagrt 16#25BA
+/triagup 16#25B2
+/ts 16#02A6
+/tsadi 16#05E6
+/tsadidagesh 16#FB46
+/tsadidageshhebrew 16#FB46
+/tsadihebrew 16#05E6
+/tsecyrillic 16#0446
+/tsere 16#05B5
+/tsere12 16#05B5
+/tsere1e 16#05B5
+/tsere2b 16#05B5
+/tserehebrew 16#05B5
+/tserenarrowhebrew 16#05B5
+/tserequarterhebrew 16#05B5
+/tserewidehebrew 16#05B5
+/tshecyrillic 16#045B
+/tsuperior 16#F6F3
+/ttabengali 16#099F
+/ttadeva 16#091F
+/ttagujarati 16#0A9F
+/ttagurmukhi 16#0A1F
+/tteharabic 16#0679
+/ttehfinalarabic 16#FB67
+/ttehinitialarabic 16#FB68
+/ttehmedialarabic 16#FB69
+/tthabengali 16#09A0
+/tthadeva 16#0920
+/tthagujarati 16#0AA0
+/tthagurmukhi 16#0A20
+/tturned 16#0287
+/tuhiragana 16#3064
+/tukatakana 16#30C4
+/tukatakanahalfwidth 16#FF82
+/tusmallhiragana 16#3063
+/tusmallkatakana 16#30C3
+/tusmallkatakanahalfwidth 16#FF6F
+/twelvecircle 16#246B
+/twelveparen 16#247F
+/twelveperiod 16#2493
+/twelveroman 16#217B
+/twentycircle 16#2473
+/twentyhangzhou 16#5344
+/twentyparen 16#2487
+/twentyperiod 16#249B
+/two 16#0032
+/twoarabic 16#0662
+/twobengali 16#09E8
+/twocircle 16#2461
+/twocircleinversesansserif 16#278B
+/twodeva 16#0968
+/twodotenleader 16#2025
+/twodotleader 16#2025
+/twodotleadervertical 16#FE30
+/twogujarati 16#0AE8
+/twogurmukhi 16#0A68
+/twohackarabic 16#0662
+/twohangzhou 16#3022
+/twoideographicparen 16#3221
+/twoinferior 16#2082
+/twomonospace 16#FF12
+/twonumeratorbengali 16#09F5
+/twooldstyle 16#F732
+/twoparen 16#2475
+/twoperiod 16#2489
+/twopersian 16#06F2
+/tworoman 16#2171
+/twostroke 16#01BB
+/twosuperior 16#00B2
+/twothai 16#0E52
+/twothirds 16#2154
+/u 16#0075
+/uacute 16#00FA
+/ubar 16#0289
+/ubengali 16#0989
+/ubopomofo 16#3128
+/ubreve 16#016D
+/ucaron 16#01D4
+/ucircle 16#24E4
+/ucircumflex 16#00FB
+/ucircumflexbelow 16#1E77
+/ucyrillic 16#0443
+/udattadeva 16#0951
+/udblacute 16#0171
+/udblgrave 16#0215
+/udeva 16#0909
+/udieresis 16#00FC
+/udieresisacute 16#01D8
+/udieresisbelow 16#1E73
+/udieresiscaron 16#01DA
+/udieresiscyrillic 16#04F1
+/udieresisgrave 16#01DC
+/udieresismacron 16#01D6
+/udotbelow 16#1EE5
+/ugrave 16#00F9
+/ugujarati 16#0A89
+/ugurmukhi 16#0A09
+/uhiragana 16#3046
+/uhookabove 16#1EE7
+/uhorn 16#01B0
+/uhornacute 16#1EE9
+/uhorndotbelow 16#1EF1
+/uhorngrave 16#1EEB
+/uhornhookabove 16#1EED
+/uhorntilde 16#1EEF
+/uhungarumlaut 16#0171
+/uhungarumlautcyrillic 16#04F3
+/uinvertedbreve 16#0217
+/ukatakana 16#30A6
+/ukatakanahalfwidth 16#FF73
+/ukcyrillic 16#0479
+/ukorean 16#315C
+/umacron 16#016B
+/umacroncyrillic 16#04EF
+/umacrondieresis 16#1E7B
+/umatragurmukhi 16#0A41
+/umonospace 16#FF55
+/underscore 16#005F
+/underscoredbl 16#2017
+/underscoremonospace 16#FF3F
+/underscorevertical 16#FE33
+/underscorewavy 16#FE4F
+/union 16#222A
+/universal 16#2200
+/uogonek 16#0173
+/uparen 16#24B0
+/upblock 16#2580
+/upperdothebrew 16#05C4
+/upsilon 16#03C5
+/upsilondieresis 16#03CB
+/upsilondieresistonos 16#03B0
+/upsilonlatin 16#028A
+/upsilontonos 16#03CD
+/uptackbelowcmb 16#031D
+/uptackmod 16#02D4
+/uragurmukhi 16#0A73
+/uring 16#016F
+/ushortcyrillic 16#045E
+/usmallhiragana 16#3045
+/usmallkatakana 16#30A5
+/usmallkatakanahalfwidth 16#FF69
+/ustraightcyrillic 16#04AF
+/ustraightstrokecyrillic 16#04B1
+/utilde 16#0169
+/utildeacute 16#1E79
+/utildebelow 16#1E75
+/uubengali 16#098A
+/uudeva 16#090A
+/uugujarati 16#0A8A
+/uugurmukhi 16#0A0A
+/uumatragurmukhi 16#0A42
+/uuvowelsignbengali 16#09C2
+/uuvowelsigndeva 16#0942
+/uuvowelsigngujarati 16#0AC2
+/uvowelsignbengali 16#09C1
+/uvowelsigndeva 16#0941
+/uvowelsigngujarati 16#0AC1
+/v 16#0076
+/vadeva 16#0935
+/vagujarati 16#0AB5
+/vagurmukhi 16#0A35
+/vakatakana 16#30F7
+/vav 16#05D5
+/vavdagesh 16#FB35
+/vavdagesh65 16#FB35
+/vavdageshhebrew 16#FB35
+/vavhebrew 16#05D5
+/vavholam 16#FB4B
+/vavholamhebrew 16#FB4B
+/vavvavhebrew 16#05F0
+/vavyodhebrew 16#05F1
+/vcircle 16#24E5
+/vdotbelow 16#1E7F
+/vecyrillic 16#0432
+/veharabic 16#06A4
+/vehfinalarabic 16#FB6B
+/vehinitialarabic 16#FB6C
+/vehmedialarabic 16#FB6D
+/vekatakana 16#30F9
+/venus 16#2640
+/verticalbar 16#007C
+/verticallineabovecmb 16#030D
+/verticallinebelowcmb 16#0329
+/verticallinelowmod 16#02CC
+/verticallinemod 16#02C8
+/vewarmenian 16#057E
+/vhook 16#028B
+/vikatakana 16#30F8
+/viramabengali 16#09CD
+/viramadeva 16#094D
+/viramagujarati 16#0ACD
+/visargabengali 16#0983
+/visargadeva 16#0903
+/visargagujarati 16#0A83
+/vmonospace 16#FF56
+/voarmenian 16#0578
+/voicediterationhiragana 16#309E
+/voicediterationkatakana 16#30FE
+/voicedmarkkana 16#309B
+/voicedmarkkanahalfwidth 16#FF9E
+/vokatakana 16#30FA
+/vparen 16#24B1
+/vtilde 16#1E7D
+/vturned 16#028C
+/vuhiragana 16#3094
+/vukatakana 16#30F4
+/w 16#0077
+/wacute 16#1E83
+/waekorean 16#3159
+/wahiragana 16#308F
+/wakatakana 16#30EF
+/wakatakanahalfwidth 16#FF9C
+/wakorean 16#3158
+/wasmallhiragana 16#308E
+/wasmallkatakana 16#30EE
+/wattosquare 16#3357
+/wavedash 16#301C
+/wavyunderscorevertical 16#FE34
+/wawarabic 16#0648
+/wawfinalarabic 16#FEEE
+/wawhamzaabovearabic 16#0624
+/wawhamzaabovefinalarabic 16#FE86
+/wbsquare 16#33DD
+/wcircle 16#24E6
+/wcircumflex 16#0175
+/wdieresis 16#1E85
+/wdotaccent 16#1E87
+/wdotbelow 16#1E89
+/wehiragana 16#3091
+/weierstrass 16#2118
+/wekatakana 16#30F1
+/wekorean 16#315E
+/weokorean 16#315D
+/wgrave 16#1E81
+/whitebullet 16#25E6
+/whitecircle 16#25CB
+/whitecircleinverse 16#25D9
+/whitecornerbracketleft 16#300E
+/whitecornerbracketleftvertical 16#FE43
+/whitecornerbracketright 16#300F
+/whitecornerbracketrightvertical 16#FE44
+/whitediamond 16#25C7
+/whitediamondcontainingblacksmalldiamond 16#25C8
+/whitedownpointingsmalltriangle 16#25BF
+/whitedownpointingtriangle 16#25BD
+/whiteleftpointingsmalltriangle 16#25C3
+/whiteleftpointingtriangle 16#25C1
+/whitelenticularbracketleft 16#3016
+/whitelenticularbracketright 16#3017
+/whiterightpointingsmalltriangle 16#25B9
+/whiterightpointingtriangle 16#25B7
+/whitesmallsquare 16#25AB
+/whitesmilingface 16#263A
+/whitesquare 16#25A1
+/whitestar 16#2606
+/whitetelephone 16#260F
+/whitetortoiseshellbracketleft 16#3018
+/whitetortoiseshellbracketright 16#3019
+/whiteuppointingsmalltriangle 16#25B5
+/whiteuppointingtriangle 16#25B3
+/wihiragana 16#3090
+/wikatakana 16#30F0
+/wikorean 16#315F
+/wmonospace 16#FF57
+/wohiragana 16#3092
+/wokatakana 16#30F2
+/wokatakanahalfwidth 16#FF66
+/won 16#20A9
+/wonmonospace 16#FFE6
+/wowaenthai 16#0E27
+/wparen 16#24B2
+/wring 16#1E98
+/wsuperior 16#02B7
+/wturned 16#028D
+/wynn 16#01BF
+/x 16#0078
+/xabovecmb 16#033D
+/xbopomofo 16#3112
+/xcircle 16#24E7
+/xdieresis 16#1E8D
+/xdotaccent 16#1E8B
+/xeharmenian 16#056D
+/xi 16#03BE
+/xmonospace 16#FF58
+/xparen 16#24B3
+/xsuperior 16#02E3
+/y 16#0079
+/yaadosquare 16#334E
+/yabengali 16#09AF
+/yacute 16#00FD
+/yadeva 16#092F
+/yaekorean 16#3152
+/yagujarati 16#0AAF
+/yagurmukhi 16#0A2F
+/yahiragana 16#3084
+/yakatakana 16#30E4
+/yakatakanahalfwidth 16#FF94
+/yakorean 16#3151
+/yamakkanthai 16#0E4E
+/yasmallhiragana 16#3083
+/yasmallkatakana 16#30E3
+/yasmallkatakanahalfwidth 16#FF6C
+/yatcyrillic 16#0463
+/ycircle 16#24E8
+/ycircumflex 16#0177
+/ydieresis 16#00FF
+/ydotaccent 16#1E8F
+/ydotbelow 16#1EF5
+/yeharabic 16#064A
+/yehbarreearabic 16#06D2
+/yehbarreefinalarabic 16#FBAF
+/yehfinalarabic 16#FEF2
+/yehhamzaabovearabic 16#0626
+/yehhamzaabovefinalarabic 16#FE8A
+/yehhamzaaboveinitialarabic 16#FE8B
+/yehhamzaabovemedialarabic 16#FE8C
+/yehinitialarabic 16#FEF3
+/yehmedialarabic 16#FEF4
+/yehmeeminitialarabic 16#FCDD
+/yehmeemisolatedarabic 16#FC58
+/yehnoonfinalarabic 16#FC94
+/yehthreedotsbelowarabic 16#06D1
+/yekorean 16#3156
+/yen 16#00A5
+/yenmonospace 16#FFE5
+/yeokorean 16#3155
+/yeorinhieuhkorean 16#3186
+/yerahbenyomohebrew 16#05AA
+/yerahbenyomolefthebrew 16#05AA
+/yericyrillic 16#044B
+/yerudieresiscyrillic 16#04F9
+/yesieungkorean 16#3181
+/yesieungpansioskorean 16#3183
+/yesieungsioskorean 16#3182
+/yetivhebrew 16#059A
+/ygrave 16#1EF3
+/yhook 16#01B4
+/yhookabove 16#1EF7
+/yiarmenian 16#0575
+/yicyrillic 16#0457
+/yikorean 16#3162
+/yinyang 16#262F
+/yiwnarmenian 16#0582
+/ymonospace 16#FF59
+/yod 16#05D9
+/yoddagesh 16#FB39
+/yoddageshhebrew 16#FB39
+/yodhebrew 16#05D9
+/yodyodhebrew 16#05F2
+/yodyodpatahhebrew 16#FB1F
+/yohiragana 16#3088
+/yoikorean 16#3189
+/yokatakana 16#30E8
+/yokatakanahalfwidth 16#FF96
+/yokorean 16#315B
+/yosmallhiragana 16#3087
+/yosmallkatakana 16#30E7
+/yosmallkatakanahalfwidth 16#FF6E
+/yotgreek 16#03F3
+/yoyaekorean 16#3188
+/yoyakorean 16#3187
+/yoyakthai 16#0E22
+/yoyingthai 16#0E0D
+/yparen 16#24B4
+/ypogegrammeni 16#037A
+/ypogegrammenigreekcmb 16#0345
+/yr 16#01A6
+/yring 16#1E99
+/ysuperior 16#02B8
+/ytilde 16#1EF9
+/yturned 16#028E
+/yuhiragana 16#3086
+/yuikorean 16#318C
+/yukatakana 16#30E6
+/yukatakanahalfwidth 16#FF95
+/yukorean 16#3160
+/yusbigcyrillic 16#046B
+/yusbigiotifiedcyrillic 16#046D
+/yuslittlecyrillic 16#0467
+/yuslittleiotifiedcyrillic 16#0469
+/yusmallhiragana 16#3085
+/yusmallkatakana 16#30E5
+/yusmallkatakanahalfwidth 16#FF6D
+/yuyekorean 16#318B
+/yuyeokorean 16#318A
+/yyabengali 16#09DF
+/yyadeva 16#095F
+/z 16#007A
+/zaarmenian 16#0566
+/zacute 16#017A
+/zadeva 16#095B
+/zagurmukhi 16#0A5B
+/zaharabic 16#0638
+/zahfinalarabic 16#FEC6
+/zahinitialarabic 16#FEC7
+/zahiragana 16#3056
+/zahmedialarabic 16#FEC8
+/zainarabic 16#0632
+/zainfinalarabic 16#FEB0
+/zakatakana 16#30B6
+/zaqefgadolhebrew 16#0595
+/zaqefqatanhebrew 16#0594
+/zarqahebrew 16#0598
+/zayin 16#05D6
+/zayindagesh 16#FB36
+/zayindageshhebrew 16#FB36
+/zayinhebrew 16#05D6
+/zbopomofo 16#3117
+/zcaron 16#017E
+/zcircle 16#24E9
+/zcircumflex 16#1E91
+/zcurl 16#0291
+/zdot 16#017C
+/zdotaccent 16#017C
+/zdotbelow 16#1E93
+/zecyrillic 16#0437
+/zedescendercyrillic 16#0499
+/zedieresiscyrillic 16#04DF
+/zehiragana 16#305C
+/zekatakana 16#30BC
+/zero 16#0030
+/zeroarabic 16#0660
+/zerobengali 16#09E6
+/zerodeva 16#0966
+/zerogujarati 16#0AE6
+/zerogurmukhi 16#0A66
+/zerohackarabic 16#0660
+/zeroinferior 16#2080
+/zeromonospace 16#FF10
+/zerooldstyle 16#F730
+/zeropersian 16#06F0
+/zerosuperior 16#2070
+/zerothai 16#0E50
+/zerowidthjoiner 16#FEFF
+/zerowidthnonjoiner 16#200C
+/zerowidthspace 16#200B
+/zeta 16#03B6
+/zhbopomofo 16#3113
+/zhearmenian 16#056A
+/zhebrevecyrillic 16#04C2
+/zhecyrillic 16#0436
+/zhedescendercyrillic 16#0497
+/zhedieresiscyrillic 16#04DD
+/zihiragana 16#3058
+/zikatakana 16#30B8
+/zinorhebrew 16#05AE
+/zlinebelow 16#1E95
+/zmonospace 16#FF5A
+/zohiragana 16#305E
+/zokatakana 16#30BE
+/zparen 16#24B5
+/zretroflexhook 16#0290
+/zstroke 16#01B6
+/zuhiragana 16#305A
+/zukatakana 16#30BA
+.dicttomark readonly def
+
+/ReverseAdobeGlyphList mark
+ 16#F769 [/Ismall]
+ 16#263B [/invsmileface /blacksmilingface]
+ 16#FB48 [/reshdageshhebrew]
+ 16#A1A [/cagurmukhi]
+ 16#183 [/btopbar]
+ 16#F8EC [/parenleftex]
+ 16#3055 [/sahiragana]
+ 16#FF27 [/Gmonospace]
+ 16#562 [/benarmenian]
+ 16#FCCB [/lamkhahinitialarabic]
+ 16#2562 [/SF200000]
+ 16#306 [/brevecmb]
+ 16#941 [/uvowelsigndeva]
+ 16#20AA [/sheqelhebrew /sheqel /newsheqelsign /afii57636]
+ 16#AA [/ordfeminine]
+ 16#FE4E [/lowlinecenterline]
+ 16#1E4E [/Otildedieresis]
+ 16#2489 [/twoperiod]
+ 16#AC4 [/rrvocalicvowelsigngujarati]
+ 16#60C [/commaarabic /afii57388]
+ 16#3B0 [/upsilondieresistonos]
+ 16#9EB [/fivebengali]
+ 16#2154 [/twothirds]
+ 16#154 [/Racute]
+ 16#3026 [/sixhangzhou]
+ 16#278F [/sixcircleinversesansserif]
+ 16#FEF8 [/lamalefhamzaabovefinalarabic]
+ 16#1EF8 [/Ytilde]
+ 16#533 [/Gimarmenian]
+ 16#2D7 [/minusmod]
+ 16#912 [/oshortdeva]
+ 16#7B [/braceleft]
+ 16#F7E4 [/Adieresissmall]
+ 16#1E1F [/fdotaccent]
+ 16#45A [/njecyrillic /afii10107]
+ 16#A95 [/kagujarati]
+ 16#1FE [/Ostrokeacute /Oslashacute]
+ 16#30D0 [/bakatakana]
+ 16#5DD [/finalmemhebrew /finalmem /afii57677]
+ 16#9BC [/nuktabengali]
+ 16#125 [/hcircumflex]
+ 16#F88E [/maitholowrightthai]
+ 16#1EC9 [/ihookabove]
+ 16#FC6D [/behnoonfinalarabic]
+ 16#33D6 [/molsquare]
+ 16#2A8 [/tccurl]
+ 16#317A [/sioskiyeokkorean]
+ 16#4C [/L]
+ 16#42B [/Yericyrillic /afii10045]
+ 16#FB94 [/gafinitialarabic]
+ 16#A66 [/zerogurmukhi]
+ 16#21CF [/arrowrightdblstroke]
+ 16#1CF [/Icaron]
+ 16#30A1 [/asmallkatakana]
+ 16#FF73 [/ukatakanahalfwidth]
+ 16#F6DC [/onefitted]
+ 16#E45 [/lakkhangyaothai]
+ 16#5AE [/zinorhebrew]
+ 16#3224 [/fiveideographicparen]
+ 16#F6 [/odieresis]
+ 16#FE9A [/thehfinalarabic]
+ 16#1E9A [/arighthalfring]
+ 16#24D5 [/fcircle]
+ 16#4D5 [/aiecyrillic]
+ 16#33A7 [/moverssquare]
+ 16#279 [/rturned]
+ 16#2279 [/notgreaternorless]
+ 16#314B [/khieukhkorean]
+ 16#1D [/controlGS]
+ 16#201D [/quotedblright]
+ 16#1A0 [/Ohorn]
+ 16#3072 [/hihiragana]
+ 16#FF44 [/dmonospace]
+ 16#E16 [/thothungthai]
+ 16#57F [/tiwnarmenian]
+ 16#323 [/dotbelowcomb /dotbelowcmb]
+ 16#95E [/fadeva]
+ 16#C7 [/Ccedilla]
+ 16#1E6B [/tdotaccent]
+ 16#FE6B [/atsmall]
+ 16#24A6 [/kparen]
+ 16#4A6 [/Pemiddlehookcyrillic]
+ 16#311C [/ebopomofo]
+ 16#629 [/tehmarbutaarabic /afii57417]
+ 16#3CD [/upsilontonos]
+ 16#FB36 [/zayindageshhebrew /zayindagesh]
+ 16#A08 [/iigurmukhi]
+ 16#2171 [/tworoman]
+ 16#171 [/udblacute /uhungarumlaut]
+ 16#3043 [/ismallhiragana]
+ 16#FF15 [/fivemonospace]
+ 16#2550 [/SF430000]
+ 16#550 [/Reharmenian]
+ 16#92F [/yadeva]
+ 16#FE3C [/blacklenticularbracketrightvertical]
+ 16#1E3C [/Lcircumflexbelow]
+ 16#477 [/izhitsadblgravecyrillic]
+ 16#2477 [/fourparen]
+ 16#3349 [/mirisquare]
+ 16#AB2 [/lagujarati]
+ 16#30ED [/rokatakana]
+ 16#39E [/Xi]
+ 16#3270 [/tikeutacirclekorean]
+ 16#142 [/lslash]
+ 16#3014 [/tortoiseshellbracketleft]
+ 16#FEE6 [/noonfinalarabic]
+ 16#1EE6 [/Uhookabove]
+ 16#2C5 [/arrowheaddownmod]
+ 16#22C5 [/dotmath]
+ 16#69 [/i]
+ 16#6A4 [/veharabic /afii57505]
+ 16#1E0D [/ddotbelow]
+ 16#448 [/shacyrillic /afii10090]
+ 16#A83 [/visargagujarati]
+ 16#1EC [/Oogonekmacron]
+ 16#30BE [/zokatakana]
+ 16#FF90 [/mikatakanahalfwidth]
+ 16#F6F9 [/Lslashsmall]
+ 16#25CB [/whitecircle /circle]
+ 16#9AA [/pabengali]
+ 16#2113 [/lsquare /afii61289]
+ 16#113 [/emacron]
+ 16#FEB7 [/sheeninitialarabic]
+ 16#1EB7 [/abrevedotbelow]
+ 16#4F2 [/Uhungarumlautcyrillic]
+ 16#33C4 [/squarecc]
+ 16#2296 [/minuscircle]
+ 16#296 [/glottalstopinverted]
+ 16#3168 [/nieunpansioskorean]
+ 16#203A [/guilsinglright]
+ 16#3A [/colon]
+ 16#419 [/afii10027 /Iishortcyrillic]
+ 16#1BD [/tonefive]
+ 16#308F [/wahiragana]
+ 16#FF61 [/periodhalfwidth]
+ 16#F6CA [/Caron]
+ 16#E33 [/saraamthai]
+ 16#59C [/gereshaccenthebrew]
+ 16#340 [/gravetonecmb]
+ 16#3212 [/mieumaparenkorean]
+ 16#E4 [/adieresis]
+ 16#FE88 [/alefhamzabelowfinalarabic]
+ 16#1E88 [/Wdotbelow]
+ 16#24C3 [/Ncircle]
+ 16#4C3 [/Kahookcyrillic]
+ 16#3395 [/mulsquare]
+ 16#2267 [/greateroverequal]
+ 16#267 [/henghook]
+ 16#3139 [/rieulkorean]
+ 16#200B [/zerowidthspace]
+ 16#B [/controlVT]
+ 16#F774 [/Tsmall]
+ 16#646 [/noonarabic /afii57446]
+ 16#3EA [/Gangiacoptic]
+ 16#A25 [/thagurmukhi]
+ 16#18E [/Ereversed]
+ 16#F8F7 [/parenrightex]
+ 16#3060 [/dahiragana]
+ 16#FF32 [/Rmonospace]
+ 16#E04 [/khokhwaithai]
+ 16#56D [/xeharmenian]
+ 16#311 [/breveinvertedcmb]
+ 16#94C [/auvowelsigndeva]
+ 16#B5 [/mu1 /mu]
+ 16#6F0 [/zeropersian]
+ 16#FE59 [/parenleftsmall]
+ 16#1E59 [/rdotaccent]
+ 16#2494 [/thirteenperiod]
+ 16#494 [/Ghemiddlehookcyrillic]
+ 16#310A [/tbopomofo]
+ 16#3BB [/lambda]
+ 16#328D [/ideographwoodcircle]
+ 16#9F6 [/threenumeratorbengali]
+ 16#15F [/scedilla]
+ 16#FF03 [/numbersignmonospace]
+ 16#53E [/Caarmenian]
+ 16#91D [/jhadeva]
+ 16#2086 [/sixinferior]
+ 16#F7EF [/Idieresissmall]
+ 16#6C1 [/haaltonearabic /hehaltonearabic]
+ 16#1E2A [/Hbrevebelow]
+ 16#2465 [/sixcircle]
+ 16#465 [/eiotifiedcyrillic]
+ 16#AA0 [/tthagujarati]
+ 16#2209 [/notelementof /notelement]
+ 16#209 [/idblgrave]
+ 16#30DB [/hokatakana]
+ 16#5E8 [/resh /reshhebrew /afii57688]
+ 16#38C [/Omicrontonos]
+ 16#9C7 [/evowelsignbengali]
+ 16#130 [/Idotaccent /Idot]
+ 16#F899 [/nikhahitleftthai]
+ 16#3002 [/ideographicperiod]
+ 16#FED4 [/fehmedialarabic]
+ 16#1ED4 [/Ocircumflexhookabove]
+ 16#3185 [/ssanghieuhkorean]
+ 16#57 [/W]
+ 16#436 [/zhecyrillic /afii10072]
+ 16#FB9F [/noonghunnafinalarabic]
+ 16#A71 [/addakgurmukhi]
+ 16#1DA [/udieresiscaron]
+ 16#30AC [/gakatakana]
+ 16#FF7E [/sekatakanahalfwidth]
+ 16#F6E7 [/periodinferior]
+ 16#E50 [/zerothai]
+ 16#25B9 [/whiterightpointingsmalltriangle]
+ 16#5B9 [/holamwidehebrew /holamquarterhebrew /holamnarrowhebrew /holamhebrew /holam32 /holam26 /holam19 /holam /afii57806]
+ 16#322F [/ideographicearthparen]
+ 16#998 [/ghabengali]
+ 16#101 [/amacron]
+ 16#1EA5 [/acircumflexacute]
+ 16#24E0 [/qcircle]
+ 16#4E0 [/Dzeabkhasiancyrillic]
+ 16#33B2 [/mussquare]
+ 16#284 [/dotlessjstrokehook]
+ 16#2284 [/notsubset]
+ 16#3156 [/yekorean]
+ 16#28 [/parenleft]
+ 16#663 [/threehackarabic /threearabic /afii57395]
+ 16#2663 [/clubsuitblack /club]
+ 16#407 [/afii10056 /Yicyrillic]
+ 16#A42 [/uumatragurmukhi]
+ 16#1AB [/tpalatalhook]
+ 16#307D [/pohiragana]
+ 16#FF4F [/omonospace]
+ 16#E21 [/momathai]
+ 16#32E [/brevebelowcmb]
+ 16#3200 [/kiyeokparenkorean]
+ 16#969 [/threedeva]
+ 16#D2 [/Ograve]
+ 16#1E76 [/Ucircumflexbelow]
+ 16#4B1 [/ustraightstrokecyrillic]
+ 16#24B1 [/vparen]
+ 16#3383 [/masquare]
+ 16#AEC [/sixgujarati]
+ 16#255 [/ccurl]
+ 16#3127 [/ibopomofo]
+ 16#F762 [/Bsmall]
+ 16#634 [/sheenarabic /afii57428]
+ 16#FB41 [/samekhdageshhebrew /samekhdagesh]
+ 16#A13 [/oogurmukhi]
+ 16#17C [/zdotaccent /zdot]
+ 16#F8E5 [/radicalex]
+ 16#304E [/gihiragana]
+ 16#FF20 [/atmonospace]
+ 16#55B [/emphasismarkarmenian]
+ 16#255B [/SF280000]
+ 16#20A3 [/franc]
+ 16#A3 [/sterling]
+ 16#1E47 [/ndotbelow]
+ 16#482 [/thousandcyrillic]
+ 16#2482 [/fifteenparen]
+ 16#2226 [/notparallel]
+ 16#30F8 [/vikatakana]
+ 16#F733 [/threeoldstyle]
+ 16#2605 [/blackstar]
+ 16#3A9 [/Omegagreek]
+ 16#327B [/hieuhacirclekorean]
+ 16#14D [/omacron]
+ 16#1EF1 [/uhorndotbelow]
+ 16#252C [/SF060000]
+ 16#2D0 [/colontriangularmod]
+ 16#90B [/rvocalicdeva]
+ 16#2074 [/foursuperior]
+ 16#74 [/t]
+ 16#6AF [/gafarabic /afii57509]
+ 16#1E18 [/Ecircumflexbelow]
+ 16#453 [/gjecyrillic /afii10100]
+ 16#30C9 [/dokatakana]
+ 16#FF9B [/rokatakanahalfwidth]
+ 16#5D6 [/zayinhebrew /zayin /afii57670]
+ 16#FD3F [/parenrightaltonearabic]
+ 16#37A [/ypogegrammeni]
+ 16#211E [/prescription]
+ 16#F887 [/saraueleftthai]
+ 16#11E [/Gbreve]
+ 16#FEC2 [/tahfinalarabic]
+ 16#1EC2 [/Ecircumflexhookabove]
+ 16#33CF [/ktsquare]
+ 16#2A1 [/glottalstopstroke]
+ 16#3173 [/pieuptikeutkorean]
+ 16#45 [/E]
+ 16#424 [/afii10038 /Efcyrillic]
+ 16#FB8D [/rrehfinalarabic]
+ 16#1C8 [/Lj]
+ 16#FF6C [/yasmallkatakanahalfwidth]
+ 16#F6D5 [/cyrflex]
+ 16#25A7 [/squareupperlefttolowerrightfill]
+ 16#5A7 [/dargalefthebrew /dargahebrew]
+ 16#986 [/aabengali]
+ 16#EF [/idieresis]
+ 16#1E93 [/zdotbelow]
+ 16#24CE [/Ycircle]
+ 16#33A0 [/cmsquaredsquare]
+ 16#272 [/nhookleft]
+ 16#2272 [/lessorequivalent]
+ 16#3144 [/pieupsioskorean]
+ 16#16 [/controlSYN]
+ 16#2016 [/dblverticalbar]
+ 16#651 [/shaddaarabic /afii57457]
+ 16#A30 [/ragurmukhi]
+ 16#199 [/khook]
+ 16#2199 [/arrowdownleft]
+ 16#306B [/nihiragana]
+ 16#FF3D [/bracketrightmonospace]
+ 16#E0F [/topatakthai]
+ 16#578 [/voarmenian]
+ 16#31C [/ringhalfleftbelowcmb]
+ 16#C0 [/Agrave]
+ 16#FE64 [/lesssmall]
+ 16#1E64 [/Sacutedotaccent]
+ 16#49F [/kastrokecyrillic]
+ 16#249F [/dparen]
+ 16#FC08 [/behmeemisolatedarabic]
+ 16#2243 [/asymptoticallyequal]
+ 16#3115 [/shbopomofo]
+ 16#622 [/afii57410 /alefmaddaabovearabic]
+ 16#3C6 [/phi]
+ 16#FB2F [/alefqamatshebrew]
+ 16#3298 [/ideographiclaborcircle]
+ 16#16A [/Umacron]
+ 16#216A [/Elevenroman]
+ 16#FF0E [/periodmonospace]
+ 16#549 [/Chaarmenian]
+ 16#928 [/nadeva]
+ 16#F7FA [/Uacutesmall]
+ 16#FE35 [/parenleftvertical]
+ 16#1E35 [/klinebelow]
+ 16#2470 [/seventeencircle]
+ 16#470 [/Psicyrillic]
+ 16#3342 [/hoonsquare]
+ 16#AAB [/phagujarati]
+ 16#214 [/Udblgrave]
+ 16#30E6 [/yukatakana]
+ 16#F721 [/exclamsmall]
+ 16#5F3 [/gereshhebrew]
+ 16#397 [/Eta]
+ 16#FB00 [/ff]
+ 16#3269 [/chieuchcirclekorean]
+ 16#13B [/Lcommaaccent /Lcedilla]
+ 16#300D [/cornerbracketright]
+ 16#1EDF [/ohornhookabove]
+ 16#FEDF [/laminitialarabic]
+ 16#2BE [/ringhalfright]
+ 16#62 [/b]
+ 16#1E06 [/Blinebelow]
+ 16#441 [/escyrillic /afii10083]
+ 16#1E5 [/gstroke]
+ 16#21E5 [/arrowtabright]
+ 16#30B7 [/sikatakana]
+ 16#FF89 [/nokatakanahalfwidth]
+ 16#F6F2 [/ssuperior]
+ 16#E5B [/khomutthai]
+ 16#5C4 [/upperdothebrew]
+ 16#25C4 [/triaglf /blackleftpointingpointer]
+ 16#323A [/ideographiccallparen]
+ 16#9A3 [/nnabengali]
+ 16#10C [/Ccaron]
+ 16#FEB0 [/zainfinalarabic]
+ 16#1EB0 [/Abrevegrave]
+ 16#4EB [/obarreddieresiscyrillic]
+ 16#33BD [/mwsquare]
+ 16#3161 [/eukorean]
+ 16#2033 [/second]
+ 16#33 [/three]
+ 16#412 [/afii10019 /Vecyrillic]
+ 16#FB7B [/tchehfinalarabic]
+ 16#A4D [/halantgurmukhi]
+ 16#1B6 [/zstroke]
+ 16#3088 [/yohiragana]
+ 16#FF5A [/zmonospace]
+ 16#F6C3 [/commaaccent]
+ 16#E2C [/lochulathai]
+ 16#595 [/zaqefgadolhebrew]
+ 16#339 [/ringhalfrightbelowcmb]
+ 16#320B [/thieuthparenkorean]
+ 16#DD [/Yacute]
+ 16#1E81 [/wgrave]
+ 16#24BC [/Gcircle]
+ 16#4BC [/Cheabkhasiancyrillic]
+ 16#338E [/squaremg]
+ 16#260 [/ghook]
+ 16#2260 [/notequal]
+ 16#3132 [/ssangkiyeokkorean]
+ 16#4 [/controlEOT]
+ 16#F76D [/Msmall]
+ 16#3E3 [/sheicoptic]
+ 16#FB4C [/betrafehebrew]
+ 16#A1E [/nyagurmukhi]
+ 16#187 [/Chook]
+ 16#F8F0 [/bracketleftbt]
+ 16#3059 [/suhiragana]
+ 16#FF2B [/Kmonospace]
+ 16#566 [/zaarmenian]
+ 16#2566 [/SF410000]
+ 16#30A [/ringcmb]
+ 16#945 [/ecandravowelsigndeva]
+ 16#AE [/registered]
+ 16#FE52 [/periodsmall]
+ 16#1E52 [/Omacronacute]
+ 16#248D [/sixperiod]
+ 16#AC8 [/aivowelsigngujarati]
+ 16#3B4 [/delta]
+ 16#9EF [/ninebengali]
+ 16#158 [/Rcaron]
+ 16#FEFC [/lamaleffinalarabic]
+ 16#537 [/Eharmenian]
+ 16#22DB [/greaterequalorless]
+ 16#2DB [/ogonek]
+ 16#916 [/khadeva]
+ 16#207F [/nsuperior]
+ 16#7F [/controlDEL]
+ 16#F7E8 [/Egravesmall]
+ 16#6BA [/noonghunnaarabic /afii57514]
+ 16#1E23 [/hdotaccent]
+ 16#45E [/ushortcyrillic /afii10110]
+ 16#A99 [/ngagujarati]
+ 16#202 [/Ainvertedbreve]
+ 16#2202 [/partialdiff]
+ 16#30D4 [/pikatakana]
+ 16#5E1 [/samekhhebrew /samekh /afii57681]
+ 16#385 [/dialytikatonos /dieresistonos]
+ 16#9C0 [/iivowelsignbengali]
+ 16#129 [/itilde]
+ 16#F892 [/maitrilowleftthai]
+ 16#1ECD [/odotbelow]
+ 16#317E [/sioscieuckorean]
+ 16#50 [/P]
+ 16#42F [/afii10049 /IAcyrillic]
+ 16#A6A [/fourgurmukhi]
+ 16#1D3 [/Ucaron]
+ 16#21D3 [/arrowdbldown]
+ 16#30A5 [/usmallkatakana]
+ 16#FF77 [/kikatakanahalfwidth]
+ 16#F6E0 [/centsuperior]
+ 16#E49 [/maithothai]
+ 16#25B2 [/triagup /blackuppointingtriangle]
+ 16#5B2 [/hatafpatahquarterhebrew /hatafpatahnarrowhebrew /hatafpatahhebrew /hatafpatah2f /hatafpatah23 /hatafpatah16 /hatafpatah /hatafpatahwidehebrew /afii57800]
+ 16#3228 [/nineideographicparen]
+ 16#FA [/uacute]
+ 16#FE9E [/jeemfinalarabic]
+ 16#4D9 [/schwacyrillic /afii10846]
+ 16#24D9 [/jcircle]
+ 16#33AB [/mpasquare]
+ 16#27D [/rhook]
+ 16#314F [/akorean]
+ 16#2021 [/daggerdbl]
+ 16#21 [/exclam]
+ 16#FB69 [/ttehmedialarabic]
+ 16#1A4 [/Phook]
+ 16#3076 [/buhiragana]
+ 16#FF48 [/hmonospace]
+ 16#E1A [/bobaimaithai]
+ 16#583 [/piwrarmenian]
+ 16#327 [/cedillacmb]
+ 16#2327 [/clear]
+ 16#962 [/lvocalicvowelsigndeva]
+ 16#CB [/Edieresis]
+ 16#1E6F [/tlinebelow]
+ 16#24AA [/oparen]
+ 16#4AA [/Esdescendercyrillic]
+ 16#337C [/syouwaerasquare]
+ 16#3120 [/aubopomofo]
+ 16#62D [/haharabic /afii57421]
+ 16#3D1 [/thetasymbolgreek /theta1]
+ 16#FB3A [/finalkafdageshhebrew /finalkafdagesh]
+ 16#32A3 [/ideographiccorrectcircle]
+ 16#175 [/wcircumflex]
+ 16#2175 [/sixroman]
+ 16#3047 [/esmallhiragana]
+ 16#FF19 [/ninemonospace]
+ 16#554 [/Keharmenian]
+ 16#2554 [/SF390000]
+ 16#933 [/lladeva]
+ 16#FE40 [/anglebracketrightvertical]
+ 16#1E40 [/Mdotaccent]
+ 16#47B [/omegaroundcyrillic]
+ 16#247B [/eightparen]
+ 16#334D [/meetorusquare]
+ 16#AB6 [/shagujarati]
+ 16#221F [/rightangle /orthogonal]
+ 16#30F1 [/wekatakana]
+ 16#3274 [/siosacirclekorean]
+ 16#9DD [/rhabengali]
+ 16#146 [/ncommaaccent /ncedilla]
+ 16#3018 [/whitetortoiseshellbracketleft]
+ 16#FEEA [/hehfinalarabic /hehfinalalttwoarabic]
+ 16#1EEA [/Uhorngrave]
+ 16#2C9 [/firsttonechinese]
+ 16#6D [/m]
+ 16#1E11 [/dcedilla]
+ 16#44C [/softsigncyrillic /afii10094]
+ 16#331E [/kooposquare]
+ 16#A87 [/igujarati]
+ 16#1F0 [/jcaron]
+ 16#30C2 [/dikatakana]
+ 16#FF94 [/yakatakanahalfwidth]
+ 16#F6FD [/Scaronsmall]
+ 16#25CF [/blackcircle /H18533]
+ 16#9AE [/mabengali]
+ 16#117 [/edotaccent /edot]
+ 16#FEBB [/sadinitialarabic]
+ 16#1EBB [/ehookabove]
+ 16#FC5F [/shaddakasratanarabic]
+ 16#33C8 [/dbsquare]
+ 16#29A [/eopenclosed]
+ 16#316C [/rieulpansioskorean]
+ 16#203E [/overline]
+ 16#3E [/greater]
+ 16#679 [/tteharabic /afii57511]
+ 16#41D [/afii10031 /Encyrillic]
+ 16#1C1 [/clicklateral]
+ 16#3093 [/nhiragana]
+ 16#FF65 [/middledotkatakanahalfwidth]
+ 16#F6CE [/Grave]
+ 16#E37 [/saraueethai]
+ 16#5A0 [/telishagedolahebrew]
+ 16#25A0 [/blacksquare /filledbox]
+ 16#344 [/dialytikatonoscmb]
+ 16#3216 [/cieucaparenkorean]
+ 16#E8 [/egrave]
+ 16#FE8C [/yehhamzaabovemedialarabic]
+ 16#1E8C [/Xdieresis]
+ 16#24C7 [/Rcircle]
+ 16#4C7 [/Enhookcyrillic]
+ 16#3399 [/fmsquare]
+ 16#226B [/muchgreater]
+ 16#26B [/lmiddletilde]
+ 16#313D [/rieulsioskorean]
+ 16#F [/controlSI]
+ 16#200F [/afii300]
+ 16#F778 [/Xsmall]
+ 16#64A [/yeharabic /afii57450]
+ 16#3EE [/Deicoptic]
+ 16#FB57 [/pehfinalarabic]
+ 16#192 [/florin]
+ 16#F8FB [/bracketrightbt]
+ 16#3064 [/tuhiragana]
+ 16#2192 [/arrowright]
+ 16#FF36 [/Vmonospace]
+ 16#E08 [/chochanthai]
+ 16#571 [/jaarmenian]
+ 16#315 [/commaaboverightcmb]
+ 16#950 [/omdeva]
+ 16#B9 [/onesuperior]
+ 16#6F4 [/fourpersian]
+ 16#FE5D [/tortoiseshellbracketleftsmall]
+ 16#1E5D [/rdotbelowmacron]
+ 16#2498 [/seventeenperiod]
+ 16#498 [/Zedescendercyrillic]
+ 16#223C [/tildeoperator /similar]
+ 16#310E [/kbopomofo]
+ 16#FFE0 [/centmonospace]
+ 16#61B [/semicolonarabic /afii57403]
+ 16#3BF [/omicron]
+ 16#9FA [/issharbengali]
+ 16#163 [/tcedilla /tcommaaccent]
+ 16#2163 [/Fourroman]
+ 16#279E [/arrowrightheavy]
+ 16#FF07 [/quotesinglemonospace]
+ 16#542 [/Ghadarmenian]
+ 16#2E6 [/tonebarhighmod]
+ 16#921 [/ddadeva]
+ 16#F7F3 [/Oacutesmall]
+ 16#1E2E [/Idieresisacute]
+ 16#469 [/yuslittleiotifiedcyrillic]
+ 16#2469 [/tencircle]
+ 16#333B [/peezisquare]
+ 16#AA4 [/tagujarati]
+ 16#20D [/odblgrave]
+ 16#30DF [/mikatakana]
+ 16#390 [/iotadieresistonos]
+ 16#3262 [/tikeutcirclekorean]
+ 16#9CB [/ovowelsignbengali]
+ 16#134 [/Jcircumflex]
+ 16#3006 [/ideographicclose]
+ 16#FED8 [/qafmedialarabic]
+ 16#1ED8 [/Ocircumflexdotbelow]
+ 16#2B7 [/wsuperior]
+ 16#3189 [/yoikorean]
+ 16#5B [/bracketleft]
+ 16#43A [/kacyrillic /afii10076]
+ 16#21DE [/pageup]
+ 16#1DE [/Adieresismacron]
+ 16#30B0 [/gukatakana]
+ 16#FF82 [/tukatakanahalfwidth]
+ 16#F6EB [/dsuperior]
+ 16#E54 [/fourthai]
+ 16#25BD [/whitedownpointingtriangle]
+ 16#5BD [/siluqlefthebrew /siluqhebrew /afii57839]
+ 16#361 [/breveinverteddoublecmb]
+ 16#3233 [/ideographicsocietyparen]
+ 16#99C [/jabengali]
+ 16#2105 [/careof /afii61248]
+ 16#105 [/aogonek]
+ 16#1EA9 [/acircumflexhookabove]
+ 16#24E4 [/ucircle]
+ 16#4E4 [/Idieresiscyrillic]
+ 16#33B6 [/muvsquare]
+ 16#288 [/tretroflexhook]
+ 16#315A [/oekorean]
+ 16#202C [/afii61573]
+ 16#2C [/comma]
+ 16#667 [/sevenhackarabic /sevenarabic /afii57399]
+ 16#2667 [/clubsuitwhite]
+ 16#40B [/afii10060 /Tshecyrillic]
+ 16#1AF [/Uhorn]
+ 16#3081 [/mehiragana]
+ 16#FF53 [/smonospace]
+ 16#E25 [/lolingthai]
+ 16#332 [/lowlinecmb]
+ 16#3204 [/mieumparenkorean]
+ 16#96D [/sevendeva]
+ 16#D6 [/Odieresis]
+ 16#1E7A [/Umacrondieresis]
+ 16#24B5 [/zparen]
+ 16#4B5 [/tetsecyrillic]
+ 16#3387 [/GBsquare]
+ 16#259 [/schwa]
+ 16#F766 [/Fsmall]
+ 16#638 [/zaharabic /afii57432]
+ 16#3DC [/Digammagreek]
+ 16#A17 [/gagurmukhi]
+ 16#180 [/bstroke]
+ 16#F8E9 [/copyrightsans]
+ 16#3052 [/gehiragana]
+ 16#FF24 [/Dmonospace]
+ 16#55F [/abbreviationmarkarmenian]
+ 16#255F [/SF370000]
+ 16#303 [/tildecomb /tildecmb]
+ 16#2303 [/control]
+ 16#93E [/aavowelsigndeva]
+ 16#20A7 [/peseta]
+ 16#A7 [/section]
+ 16#FE4B [/overlinewavy]
+ 16#1E4B [/ncircumflexbelow]
+ 16#486 [/psilipneumatacyrilliccmb]
+ 16#2486 [/nineteenparen]
+ 16#AC1 [/uvowelsigngujarati]
+ 16#222A [/union]
+ 16#30FC [/prolongedkana]
+ 16#F737 [/sevenoldstyle]
+ 16#3AD [/epsilontonos]
+ 16#327F [/koreanstandardsymbol]
+ 16#9E8 [/twobengali]
+ 16#151 [/odblacute /ohungarumlaut]
+ 16#3023 [/threehangzhou]
+ 16#278C [/threecircleinversesansserif]
+ 16#1EF5 [/ydotbelow]
+ 16#FEF5 [/lamalefmaddaaboveisolatedarabic]
+ 16#2D4 [/uptackmod]
+ 16#90F [/edeva]
+ 16#2078 [/eightsuperior]
+ 16#F7E1 [/Aacutesmall]
+ 16#78 [/x]
+ 16#1E1C [/Ecedillabreve]
+ 16#457 [/yicyrillic /afii10104]
+ 16#1FB [/aringacute]
+ 16#30CD [/nekatakana]
+ 16#FF9F [/semivoicedmarkkanahalfwidth]
+ 16#5DA [/finalkafhebrew /finalkaf /afii57674]
+ 16#37E [/questiongreek]
+ 16#9B9 [/habengali]
+ 16#2122 [/trademark]
+ 16#F88B [/maieklowrightthai]
+ 16#122 [/Gcommaaccent /Gcedilla]
+ 16#FEC6 [/zahfinalarabic]
+ 16#1EC6 [/Ecircumflexdotbelow]
+ 16#33D3 [/lxsquare]
+ 16#2A5 [/dzcurl]
+ 16#22A5 [/perpendicular]
+ 16#3177 [/pieupthieuthkorean]
+ 16#49 [/I]
+ 16#428 [/afii10042 /Shacyrillic]
+ 16#1CC [/nj]
+ 16#309E [/voicediterationhiragana]
+ 16#FF70 [/katahiraprolongmarkhalfwidth]
+ 16#F6D9 [/copyrightserif]
+ 16#E42 [/saraothai]
+ 16#25AB [/whitesmallsquare /H18551]
+ 16#5AB [/olehebrew]
+ 16#3221 [/twoideographicparen]
+ 16#98A [/uubengali]
+ 16#F3 [/oacute]
+ 16#FE97 [/tehinitialarabic]
+ 16#1E97 [/tdieresis]
+ 16#24D2 [/ccircle]
+ 16#4D2 [/Adieresiscyrillic]
+ 16#33A4 [/cmcubedsquare]
+ 16#2276 [/lessorgreater]
+ 16#3148 [/cieuckorean]
+ 16#1A [/controlSUB]
+ 16#201A [/quotesinglbase]
+ 16#19D [/Nhookleft]
+ 16#306F [/hahiragana]
+ 16#FF41 [/amonospace]
+ 16#E13 [/nonenthai]
+ 16#57C [/raarmenian]
+ 16#320 [/minusbelowcmb]
+ 16#2320 [/integraltop /integraltp]
+ 16#95B [/zadeva]
+ 16#C4 [/Adieresis]
+ 16#1E68 [/Sdotbelowdotaccent]
+ 16#24A3 [/hparen]
+ 16#FC0C [/tehhahisolatedarabic]
+ 16#4A3 [/endescendercyrillic]
+ 16#3119 [/sbopomofo]
+ 16#626 [/yehhamzaabovearabic /afii57414]
+ 16#3CA [/iotadieresis]
+ 16#FB33 [/daletdageshhebrew /daletdagesh]
+ 16#A05 [/agurmukhi]
+ 16#16E [/Uring]
+ 16#FF12 [/twomonospace]
+ 16#54D [/Seharmenian]
+ 16#92C [/badeva]
+ 16#F7FE [/Thornsmall]
+ 16#FE39 [/tortoiseshellbracketleftvertical]
+ 16#1E39 [/ldotbelowmacron]
+ 16#2474 [/oneparen]
+ 16#474 [/afii10148 /Izhitsacyrillic]
+ 16#AAF [/yagujarati]
+ 16#218 [/Scommaaccent]
+ 16#30EA [/rikatakana]
+ 16#39B [/Lambda]
+ 16#FB04 [/ffl]
+ 16#326D [/hieuhcirclekorean]
+ 16#13F [/Ldotaccent /Ldot]
+ 16#3011 [/blacklenticularbracketright]
+ 16#1EE3 [/ohorndotbelow]
+ 16#FEE3 [/meeminitialarabic]
+ 16#2C2 [/arrowheadleftmod]
+ 16#66 [/f]
+ 16#1E0A [/Ddotaccent]
+ 16#445 [/khacyrillic /afii10087]
+ 16#1E9 [/kcaron]
+ 16#21E9 [/arrowdownwhite]
+ 16#30BB [/sekatakana]
+ 16#FF8D [/hekatakanahalfwidth]
+ 16#F6F6 [/Circumflexsmall]
+ 16#25C8 [/whitediamondcontainingblacksmalldiamond]
+ 16#323E [/ideographicresourceparen]
+ 16#9A7 [/dhabengali]
+ 16#110 [/Dslash /Dcroat]
+ 16#FEB4 [/seenmedialarabic]
+ 16#1EB4 [/Abrevetilde]
+ 16#4EF [/umacroncyrillic]
+ 16#FC58 [/yehmeemisolatedarabic]
+ 16#33C1 [/mohmsquare]
+ 16#293 [/ezhcurl]
+ 16#3165 [/ssangnieunkorean]
+ 16#37 [/seven]
+ 16#416 [/Zhecyrillic /afii10024]
+ 16#1BA [/ezhtail]
+ 16#308C [/rehiragana]
+ 16#FF5E [/asciitildemonospace]
+ 16#F6C7 [/afii10831]
+ 16#E30 [/saraathai]
+ 16#599 [/pashtahebrew]
+ 16#33D [/xabovecmb]
+ 16#320F [/nieunaparenkorean]
+ 16#E1 [/aacute]
+ 16#1E85 [/wdieresis]
+ 16#4C0 [/palochkacyrillic]
+ 16#24C0 [/Kcircle]
+ 16#3392 [/mhzsquare]
+ 16#264 [/ramshorn]
+ 16#2264 [/lessequal]
+ 16#3136 [/nieunhieuhkorean]
+ 16#8 [/controlBS]
+ 16#F771 [/Qsmall]
+ 16#643 [/kafarabic /afii57443]
+ 16#3E7 [/kheicoptic]
+ 16#A22 [/ddhagurmukhi]
+ 16#18B [/Dtopbar]
+ 16#F8F4 [/braceex]
+ 16#305D [/sohiragana]
+ 16#FF2F [/Omonospace]
+ 16#E01 [/kokaithai]
+ 16#56A [/zhearmenian]
+ 16#256A [/SF540000]
+ 16#30E [/dblverticallineabovecmb]
+ 16#949 [/ocandravowelsigndeva]
+ 16#B2 [/twosuperior]
+ 16#1E56 [/Pdotaccent]
+ 16#2491 [/tenperiod]
+ 16#491 [/gheupturncyrillic /afii10098]
+ 16#ACC [/auvowelsigngujarati]
+ 16#2235 [/because]
+ 16#3107 [/mbopomofo]
+ 16#3B8 [/theta]
+ 16#328A [/ideographmooncircle]
+ 16#9F3 [/rupeesignbengali]
+ 16#215C [/threeeighths]
+ 16#15C [/Scircumflex]
+ 16#53B [/Iniarmenian]
+ 16#FCA4 [/tehmeeminitialarabic]
+ 16#91A [/cadeva]
+ 16#2083 [/threeinferior]
+ 16#F7EC [/Igravesmall]
+ 16#1E27 [/hdieresis]
+ 16#2462 [/threecircle]
+ 16#462 [/afii10146 /Yatcyrillic]
+ 16#A9D [/jhagujarati]
+ 16#2206 [/increment /Delta]
+ 16#206 [/Einvertedbreve]
+ 16#30D8 [/hekatakana]
+ 16#5E5 [/finaltsadihebrew /finaltsadi /afii57685]
+ 16#25E5 [/blackupperrighttriangle]
+ 16#389 [/Etatonos]
+ 16#9C4 [/rrvocalicvowelsignbengali]
+ 16#12D [/ibreve]
+ 16#F896 [/thanthakhatupperleftthai]
+ 16#1ED1 [/ocircumflexacute]
+ 16#250C [/SF010000]
+ 16#2B0 [/hsuperior]
+ 16#3182 [/yesieungsioskorean]
+ 16#54 [/T]
+ 16#433 [/gecyrillic /afii10068]
+ 16#3305 [/intisquare]
+ 16#A6E [/eightgurmukhi]
+ 16#1D7 [/Udieresisacute]
+ 16#30A9 [/osmallkatakana]
+ 16#FF7B [/sakatakanahalfwidth]
+ 16#F6E4 [/dollarsuperior]
+ 16#E4D [/nikhahitthai]
+ 16#5B6 [/segolwidehebrew /segolquarterhebrew /segolnarrowhebrew /segolhebrew /segol2c /segol1f /segol13 /segol /afii57795]
+ 16#25B6 [/blackrightpointingtriangle]
+ 16#322C [/ideographicwaterparen]
+ 16#995 [/kabengali]
+ 16#FE [/thorn]
+ 16#FEA2 [/hahfinalarabic]
+ 16#1EA2 [/Ahookabove]
+ 16#4DD [/zhedieresiscyrillic]
+ 16#24DD [/ncircle]
+ 16#33AF [/radoverssquaredsquare]
+ 16#2281 [/notsucceeds]
+ 16#281 [/Rsmallinverted]
+ 16#3153 [/eokorean]
+ 16#2025 [/twodotleader /twodotenleader]
+ 16#25 [/percent]
+ 16#660 [/zerohackarabic /zeroarabic /afii57392]
+ 16#2660 [/spadesuitblack /spade]
+ 16#404 [/afii10053 /Ecyrillic]
+ 16#FB6D [/vehmedialarabic]
+ 16#A3F [/imatragurmukhi]
+ 16#1A8 [/tonetwo]
+ 16#21A8 [/arrowupdownbase /arrowupdnbse]
+ 16#307A [/pehiragana]
+ 16#FF4C [/lmonospace]
+ 16#E1E [/phophanthai]
+ 16#587 [/echyiwnarmenian]
+ 16#32B [/dblarchinvertedbelowcmb]
+ 16#232B [/deleteleft]
+ 16#966 [/zerodeva]
+ 16#CF [/Idieresis]
+ 16#1E73 [/udieresisbelow]
+ 16#24AE [/sparen]
+ 16#4AE [/Ustraightcyrillic]
+ 16#3380 [/paampssquare]
+ 16#AE9 [/threegujarati]
+ 16#252 [/ascriptturned]
+ 16#2252 [/approxequalorimage]
+ 16#3124 [/angbopomofo]
+ 16#631 [/reharabic /afii57425]
+ 16#3D5 [/phisymbolgreek /phi1]
+ 16#FB3E [/memdageshhebrew /memdagesh]
+ 16#32A7 [/ideographicleftcircle]
+ 16#A10 [/aigurmukhi]
+ 16#2179 [/tenroman]
+ 16#179 [/Zacute]
+ 16#304B [/kahiragana]
+ 16#FF1D [/equalmonospace]
+ 16#2558 [/SF500000]
+ 16#937 [/ssadeva]
+ 16#A0 [/nonbreakingspace /nbspace]
+ 16#FE44 [/whitecornerbracketrightvertical]
+ 16#1E44 [/Ndotaccent]
+ 16#247F [/twelveparen]
+ 16#47F [/otcyrillic]
+ 16#3351 [/rittorusquare]
+ 16#2223 [/divides]
+ 16#30F5 [/kasmallkatakana]
+ 16#F730 [/zerooldstyle]
+ 16#3A6 [/Phi]
+ 16#3278 [/khieukhacirclekorean]
+ 16#9E1 [/llvocalicbengali]
+ 16#14A [/Eng]
+ 16#301C [/wavedash]
+ 16#FEEE [/wawfinalarabic]
+ 16#1EEE [/Uhorntilde]
+ 16#2CD [/macronlowmod]
+ 16#908 [/iideva]
+ 16#71 [/q]
+ 16#1E15 [/emacrongrave]
+ 16#3322 [/sentisquare]
+ 16#A8B [/rvocalicgujarati]
+ 16#1F4 [/Gacute]
+ 16#30C6 [/tekatakana]
+ 16#FF98 [/rikatakanahalfwidth]
+ 16#5D3 [/dalethebrew /dalet /afii57667]
+ 16#9B2 [/labengali]
+ 16#11B [/ecaron]
+ 16#F884 [/maihanakatleftthai]
+ 16#1EBF [/ecircumflexacute]
+ 16#FEBF [/dadinitialarabic]
+ 16#29E [/kturned]
+ 16#3170 [/mieumpansioskorean]
+ 16#2042 [/asterism]
+ 16#42 [/B]
+ 16#421 [/afii10035 /Escyrillic]
+ 16#A5C [/rragurmukhi]
+ 16#21C5 [/arrowupleftofdown]
+ 16#1C5 [/Dzcaron]
+ 16#FF69 [/usmallkatakanahalfwidth]
+ 16#F6D2 [/cyrFlex]
+ 16#25A4 [/squarehorizontalfill]
+ 16#5A4 [/mahapakhlefthebrew /mahapakhhebrew]
+ 16#321A [/phieuphaparenkorean]
+ 16#983 [/visargabengali]
+ 16#EC [/igrave]
+ 16#FE90 [/behfinalarabic]
+ 16#1E90 [/Zcircumflex]
+ 16#24CB [/Vcircle]
+ 16#4CB [/Chekhakassiancyrillic]
+ 16#339D [/squarecm]
+ 16#26F [/mturned]
+ 16#226F [/notgreater]
+ 16#3141 [/mieumkorean]
+ 16#13 [/controlDC3]
+ 16#2013 [/endash]
+ 16#64E [/fathalowarabic /fathaarabic /afii57454]
+ 16#3F2 [/sigmalunatesymbolgreek]
+ 16#A2D [/bhagurmukhi]
+ 16#2196 [/arrowupleft]
+ 16#F8FF [/apple]
+ 16#3068 [/tohiragana]
+ 16#196 [/Iotaafrican]
+ 16#FF3A [/Zmonospace]
+ 16#E0C [/chochoethai]
+ 16#575 [/yiarmenian]
+ 16#319 [/righttackbelowcmb]
+ 16#954 [/acutedeva]
+ 16#BD [/onehalf]
+ 16#6F8 [/eightpersian]
+ 16#1E61 [/sdotaccent]
+ 16#FE61 [/asterisksmall]
+ 16#249C [/aparen]
+ 16#49C [/Kaverticalstrokecyrillic]
+ 16#3112 [/xbopomofo]
+ 16#261F [/pointingindexdownwhite]
+ 16#61F [/questionarabic /afii57407]
+ 16#FD88 [/lammeemhahinitialarabic]
+ 16#3C3 [/sigma]
+ 16#FB2C [/shindageshshindothebrew /shindageshshindot]
+ 16#167 [/tbar]
+ 16#2167 [/Eightroman]
+ 16#FF0B [/plusmonospace]
+ 16#546 [/Nowarmenian]
+ 16#925 [/thadeva]
+ 16#208E [/parenrightinferior]
+ 16#FE32 [/endashvertical]
+ 16#1E32 [/Kdotbelow]
+ 16#46D [/yusbigiotifiedcyrillic]
+ 16#246D [/fourteencircle]
+ 16#AA8 [/nagujarati]
+ 16#211 [/rdblgrave]
+ 16#2211 [/summation]
+ 16#30E3 [/yasmallkatakana]
+ 16#5F0 [/vavvavhebrew /afii57716]
+ 16#394 [/Deltagreek]
+ 16#3266 [/sioscirclekorean]
+ 16#138 [/kgreenlandic]
+ 16#300A [/dblanglebracketleft]
+ 16#FEDC [/kafmedialarabic]
+ 16#1EDC [/Ohorngrave]
+ 16#2BB [/commaturnedmod]
+ 16#318D [/araeakorean]
+ 16#5F [/underscore]
+ 16#1E03 [/bdotaccent]
+ 16#43E [/ocyrillic /afii10080]
+ 16#FBA7 [/hehfinalaltonearabic]
+ 16#21E2 [/arrowdashright]
+ 16#1E2 [/AEmacron]
+ 16#30B4 [/gokatakana]
+ 16#FF86 [/nikatakanahalfwidth]
+ 16#F6EF [/msuperior]
+ 16#E58 [/eightthai]
+ 16#25C1 [/whiteleftpointingtriangle]
+ 16#5C1 [/shindothebrew /afii57804]
+ 16#3237 [/ideographiccongratulationparen]
+ 16#9A0 [/tthabengali]
+ 16#2109 [/fahrenheit]
+ 16#109 [/ccircumflex]
+ 16#1EAD [/acircumflexdotbelow]
+ 16#24E8 [/ycircle]
+ 16#4E8 [/Obarredcyrillic]
+ 16#33BA [/pwsquare]
+ 16#28C [/vturned]
+ 16#315E [/wekorean]
+ 16#2030 [/perthousand]
+ 16#30 [/zero]
+ 16#266B [/musicalnotedbl /eighthnotebeamed]
+ 16#66B [/decimalseparatorpersian /decimalseparatorarabic]
+ 16#40F [/afii10145 /Dzhecyrillic]
+ 16#1B3 [/Yhook]
+ 16#3085 [/yusmallhiragana]
+ 16#FF57 [/wmonospace]
+ 16#F6C0 [/ll]
+ 16#E29 [/sorusithai]
+ 16#2592 [/shademedium /shade]
+ 16#592 [/segoltahebrew]
+ 16#336 [/strokelongoverlaycmb]
+ 16#3208 [/cieucparenkorean]
+ 16#DA [/Uacute]
+ 16#1E7E [/Vdotbelow]
+ 16#4B9 [/cheverticalstrokecyrillic]
+ 16#24B9 [/Dcircle]
+ 16#338B [/nfsquare]
+ 16#25D [/eopenreversedhook]
+ 16#1 [/controlSTX]
+ 16#F76A [/Jsmall]
+ 16#263C [/sun /compass]
+ 16#3E0 [/Sampigreek]
+ 16#FB49 [/shindageshhebrew /shindagesh]
+ 16#A1B [/chagurmukhi]
+ 16#184 [/Tonesix]
+ 16#F8ED [/parenleftbt]
+ 16#3056 [/zahiragana]
+ 16#FF28 [/Hmonospace]
+ 16#563 [/gimarmenian]
+ 16#FCCC [/lammeeminitialarabic]
+ 16#2563 [/SF230000]
+ 16#307 [/dotaccentcmb]
+ 16#942 [/uuvowelsigndeva]
+ 16#20AB [/dong]
+ 16#AB [/guillemotleft]
+ 16#FE4F [/underscorewavy]
+ 16#1E4F [/otildedieresis]
+ 16#248A [/threeperiod]
+ 16#AC5 [/ecandravowelsigngujarati]
+ 16#222E [/contourintegral]
+ 16#3B1 [/alpha]
+ 16#9EC [/sixbengali]
+ 16#155 [/racute]
+ 16#3027 [/sevenhangzhou]
+ 16#2790 [/sevencircleinversesansserif]
+ 16#1EF9 [/ytilde]
+ 16#FEF9 [/lamalefhamzabelowisolatedarabic]
+ 16#2534 [/SF070000]
+ 16#534 [/Daarmenian]
+ 16#2D8 [/breve]
+ 16#913 [/odeva]
+ 16#7C [/verticalbar /bar]
+ 16#207C [/equalsuperior]
+ 16#F7E5 [/Aringsmall]
+ 16#1E20 [/Gmacron]
+ 16#45B [/tshecyrillic /afii10108]
+ 16#A96 [/khagujarati]
+ 16#1FF [/ostrokeacute /oslashacute]
+ 16#30D1 [/pakatakana]
+ 16#5DE [/memhebrew /mem /afii57678]
+ 16#2126 [/Ohm /Omega]
+ 16#F88F [/maitholowleftthai]
+ 16#126 [/Hbar]
+ 16#FECA [/ainfinalarabic]
+ 16#1ECA [/Idotbelow]
+ 16#317B [/siosnieunkorean]
+ 16#4D [/M]
+ 16#688 [/ddalarabic /afii57512]
+ 16#42C [/afii10046 /Softsigncyrillic]
+ 16#FB95 [/gafmedialarabic]
+ 16#A67 [/onegurmukhi]
+ 16#1D0 [/icaron]
+ 16#21D0 [/arrowleftdbl /arrowdblleft]
+ 16#30A2 [/akatakana]
+ 16#FF74 [/ekatakanahalfwidth]
+ 16#F6DD [/rupiah]
+ 16#E46 [/maiyamokthai]
+ 16#5AF [/masoracirclehebrew]
+ 16#3225 [/sixideographicparen]
+ 16#F7 [/divide]
+ 16#FE9B [/thehinitialarabic]
+ 16#1E9B [/slongdotaccent]
+ 16#24D6 [/gcircle]
+ 16#4D6 [/Iebrevecyrillic]
+ 16#33A8 [/moverssquaredsquare]
+ 16#227A [/precedes]
+ 16#27A [/rlonglegturned]
+ 16#314C [/thieuthkorean]
+ 16#1E [/controlRS]
+ 16#201E [/quotedblbase]
+ 16#A38 [/sagurmukhi]
+ 16#1A1 [/ohorn]
+ 16#3073 [/bihiragana]
+ 16#FF45 [/emonospace]
+ 16#E17 [/thothahanthai]
+ 16#2580 [/upblock]
+ 16#580 [/reharmenian]
+ 16#324 [/dieresisbelowcmb]
+ 16#95F [/yyadeva]
+ 16#C8 [/Egrave]
+ 16#1E6C [/Tdotbelow]
+ 16#4A7 [/pemiddlehookcyrillic]
+ 16#24A7 [/lparen]
+ 16#311D [/ehbopomofo]
+ 16#62A [/teharabic /afii57418]
+ 16#3CE [/omegatonos]
+ 16#A09 [/ugurmukhi]
+ 16#2172 [/threeroman]
+ 16#172 [/Uogonek]
+ 16#3044 [/ihiragana]
+ 16#FF16 [/sixmonospace]
+ 16#2551 [/SF240000]
+ 16#551 [/Coarmenian]
+ 16#930 [/radeva]
+ 16#1E3D [/lcircumflexbelow]
+ 16#FE3D [/dblanglebracketleftvertical]
+ 16#2478 [/fiveparen]
+ 16#478 [/Ukcyrillic]
+ 16#334A [/miribaarusquare]
+ 16#AB3 [/llagujarati]
+ 16#30EE [/wasmallkatakana]
+ 16#39F [/Omicron]
+ 16#3271 [/rieulacirclekorean]
+ 16#143 [/Nacute]
+ 16#3015 [/tortoiseshellbracketright]
+ 16#1EE7 [/uhookabove]
+ 16#FEE7 [/nooninitialarabic]
+ 16#2C6 [/circumflex]
+ 16#901 [/candrabindudeva]
+ 16#6A [/j]
+ 16#1E0E [/Dlinebelow]
+ 16#449 [/shchacyrillic /afii10091]
+ 16#1ED [/oogonekmacron]
+ 16#30BF [/takatakana]
+ 16#FF91 [/mukatakanahalfwidth]
+ 16#F6FA [/OEsmall]
+ 16#25CC [/dottedcircle]
+ 16#3242 [/ideographicselfparen]
+ 16#9AB [/phabengali]
+ 16#114 [/Ebreve]
+ 16#FEB8 [/sheenmedialarabic]
+ 16#1EB8 [/Edotbelow]
+ 16#4F3 [/uhungarumlautcyrillic]
+ 16#33C5 [/cdsquare]
+ 16#2297 [/timescircle /circlemultiply]
+ 16#297 [/cstretched]
+ 16#3169 [/rieulkiyeoksioskorean]
+ 16#203B [/referencemark]
+ 16#3B [/semicolon]
+ 16#41A [/afii10028 /Kacyrillic]
+ 16#1BE [/glottalinvertedstroke]
+ 16#3090 [/wihiragana]
+ 16#FF62 [/cornerbracketlefthalfwidth]
+ 16#F6CB [/Dieresis]
+ 16#E34 [/saraithai]
+ 16#59D [/gereshmuqdamhebrew]
+ 16#341 [/acutetonecmb]
+ 16#3213 [/pieupaparenkorean]
+ 16#E5 [/aring]
+ 16#1E89 [/wdotbelow]
+ 16#4C4 [/kahookcyrillic]
+ 16#24C4 [/Ocircle]
+ 16#3396 [/mlsquare]
+ 16#268 [/istroke]
+ 16#313A [/rieulkiyeokkorean]
+ 16#200C [/zerowidthnonjoiner /afii61664]
+ 16#C [/controlFF]
+ 16#F775 [/Usmall]
+ 16#647 [/heharabic /afii57470]
+ 16#3EB [/gangiacoptic]
+ 16#A26 [/dagurmukhi]
+ 16#18F [/Schwa]
+ 16#F8F8 [/parenrightbt]
+ 16#3061 [/tihiragana]
+ 16#FF33 [/Smonospace]
+ 16#E05 [/khokhonthai]
+ 16#56E [/caarmenian]
+ 16#312 [/commaturnedabovecmb]
+ 16#2312 [/arc]
+ 16#94D [/viramadeva]
+ 16#B6 [/paragraph]
+ 16#6F1 [/onepersian]
+ 16#FE5A [/parenrightsmall]
+ 16#1E5A [/Rdotbelow]
+ 16#495 [/ghemiddlehookcyrillic]
+ 16#2495 [/fourteenperiod]
+ 16#AD0 [/omgujarati]
+ 16#310B [/nbopomofo]
+ 16#3BC [/mugreek]
+ 16#328E [/ideographmetalcircle]
+ 16#9F7 [/fournumeratorbengali]
+ 16#2160 [/Oneroman]
+ 16#160 [/Scaron]
+ 16#FF04 [/dollarmonospace]
+ 16#53F [/Kenarmenian]
+ 16#2E3 [/xsuperior]
+ 16#91E [/nyadeva]
+ 16#2087 [/seveninferior]
+ 16#F7F0 [/Ethsmall]
+ 16#1E2B [/hbrevebelow]
+ 16#2466 [/sevencircle]
+ 16#466 [/Yuslittlecyrillic]
+ 16#AA1 [/ddagujarati]
+ 16#20A [/Iinvertedbreve]
+ 16#30DC [/bokatakana]
+ 16#5E9 [/shinhebrew /shin /afii57689]
+ 16#9C8 [/aivowelsignbengali]
+ 16#131 [/dotlessi]
+ 16#3003 [/dittomark]
+ 16#1ED5 [/ocircumflexhookabove]
+ 16#2510 [/SF030000]
+ 16#2B4 [/rturnedsuperior]
+ 16#3186 [/yeorinhieuhkorean]
+ 16#58 [/X]
+ 16#437 [/zecyrillic /afii10073]
+ 16#A72 [/irigurmukhi]
+ 16#1DB [/Udieresisgrave]
+ 16#30AD [/kikatakana]
+ 16#FF7F [/sokatakanahalfwidth]
+ 16#F6E8 [/periodsuperior]
+ 16#E51 [/onethai]
+ 16#25BA [/triagrt /blackrightpointingpointer]
+ 16#3230 [/ideographicsunparen]
+ 16#999 [/ngabengali]
+ 16#102 [/Abreve]
+ 16#FEA6 [/khahfinalarabic]
+ 16#1EA6 [/Acircumflexgrave]
+ 16#24E1 [/rcircle]
+ 16#4E1 [/dzeabkhasiancyrillic]
+ 16#33B3 [/mssquare]
+ 16#2285 [/notsuperset]
+ 16#285 [/eshsquatreversed]
+ 16#3157 [/okorean]
+ 16#29 [/parenright]
+ 16#2664 [/spadesuitwhite]
+ 16#664 [/fourhackarabic /fourarabic /afii57396]
+ 16#408 [/afii10057 /Jecyrillic]
+ 16#1AC [/Thook]
+ 16#307E [/mahiragana]
+ 16#FF50 [/pmonospace]
+ 16#E22 [/yoyakthai]
+ 16#32F [/breveinvertedbelowcmb]
+ 16#3201 [/nieunparenkorean]
+ 16#96A [/fourdeva]
+ 16#D3 [/Oacute]
+ 16#1E77 [/ucircumflexbelow]
+ 16#24B2 [/wparen]
+ 16#4B2 [/Hadescendercyrillic]
+ 16#3384 [/kasquare]
+ 16#AED [/sevengujarati]
+ 16#256 [/dtail]
+ 16#3128 [/ubopomofo]
+ 16#F763 [/Csmall]
+ 16#635 [/sadarabic /afii57429]
+ 16#A14 [/augurmukhi]
+ 16#17D [/Zcaron]
+ 16#F8E6 [/arrowvertex]
+ 16#304F [/kuhiragana]
+ 16#FF21 [/Amonospace]
+ 16#55C [/exclamarmenian]
+ 16#255C [/SF270000]
+ 16#300 [/gravecomb /gravecmb]
+ 16#20A4 [/lira /afii08941]
+ 16#A4 [/currency]
+ 16#1E48 [/Nlinebelow]
+ 16#483 [/titlocyrilliccmb]
+ 16#2483 [/sixteenparen]
+ 16#ABE [/aavowelsigngujarati]
+ 16#2227 [/logicaland]
+ 16#30F9 [/vekatakana]
+ 16#F734 [/fouroldstyle]
+ 16#2606 [/whitestar]
+ 16#3AA [/Iotadieresis]
+ 16#14E [/Obreve]
+ 16#3020 [/postalmarkface]
+ 16#FEF2 [/yehfinalarabic]
+ 16#1EF2 [/Ygrave]
+ 16#2D1 [/colontriangularhalfmod]
+ 16#90C [/lvocalicdeva]
+ 16#2075 [/fivesuperior]
+ 16#75 [/u]
+ 16#1E19 [/ecircumflexbelow]
+ 16#454 [/ecyrillic /afii10101]
+ 16#3326 [/dorusquare]
+ 16#A8F [/egujarati]
+ 16#30CA [/nakatakana]
+ 16#FF9C [/wakatakanahalfwidth]
+ 16#5D7 [/hethebrew /het /afii57671]
+ 16#9B6 [/shabengali]
+ 16#11F [/gbreve]
+ 16#F888 [/saraueeleftthai]
+ 16#FEC3 [/tahinitialarabic]
+ 16#1EC3 [/ecircumflexhookabove]
+ 16#33D0 [/lmsquare]
+ 16#2A2 [/glottalstopstrokereversed]
+ 16#3174 [/pieupsioskiyeokkorean]
+ 16#46 [/F]
+ 16#F7AF [/Macronsmall]
+ 16#425 [/afii10039 /Khacyrillic]
+ 16#1C9 [/lj]
+ 16#309B [/voicedmarkkana]
+ 16#FF6D [/yusmallkatakanahalfwidth]
+ 16#F6D6 [/dblgrave]
+ 16#E3F [/bahtthai]
+ 16#25A8 [/squareupperrighttolowerleftfill]
+ 16#5A8 [/qadmahebrew]
+ 16#987 [/ibengali]
+ 16#F0 [/eth]
+ 16#FE94 [/tehmarbutafinalarabic]
+ 16#1E94 [/Zlinebelow]
+ 16#24CF [/Zcircle]
+ 16#33A1 [/squaremsquared]
+ 16#273 [/nhookretroflex]
+ 16#2273 [/greaterorequivalent]
+ 16#3145 [/sioskorean]
+ 16#2017 [/underscoredbl /dbllowline]
+ 16#17 [/controlETB]
+ 16#652 [/sukunarabic /afii57458]
+ 16#19A [/lbar]
+ 16#306C [/nuhiragana]
+ 16#FF3E [/asciicircummonospace]
+ 16#E10 [/thothanthai]
+ 16#579 [/chaarmenian]
+ 16#31D [/uptackbelowcmb]
+ 16#958 [/qadeva]
+ 16#C1 [/Aacute]
+ 16#1E65 [/sacutedotaccent]
+ 16#FE65 [/greatersmall]
+ 16#24A0 [/eparen]
+ 16#4A0 [/Kabashkircyrillic]
+ 16#3116 [/rbopomofo]
+ 16#623 [/afii57411 /alefhamzaabovearabic]
+ 16#3C7 [/chi]
+ 16#FB30 [/alefdageshhebrew]
+ 16#3299 [/ideographicsecretcircle]
+ 16#A02 [/bindigurmukhi]
+ 16#16B [/umacron]
+ 16#216B [/Twelveroman]
+ 16#FF0F [/slashmonospace]
+ 16#54A [/Peharmenian]
+ 16#22EE [/ellipsisvertical]
+ 16#929 [/nnnadeva]
+ 16#F7FB [/Ucircumflexsmall]
+ 16#FE36 [/parenrightvertical]
+ 16#1E36 [/Ldotbelow]
+ 16#471 [/psicyrillic]
+ 16#2471 [/eighteencircle]
+ 16#AAC [/bagujarati]
+ 16#215 [/udblgrave]
+ 16#2215 [/divisionslash]
+ 16#30E7 [/yosmallkatakana]
+ 16#5F4 [/gershayimhebrew]
+ 16#398 [/Theta]
+ 16#FB01 [/fi]
+ 16#326A [/khieukhcirclekorean]
+ 16#13C [/lcommaaccent /lcedilla]
+ 16#300E [/whitecornerbracketleft]
+ 16#FEE0 [/lammedialarabic]
+ 16#1EE0 [/Ohorntilde]
+ 16#2BF [/ringhalfleft]
+ 16#22BF [/righttriangle]
+ 16#63 [/c]
+ 16#1E07 [/blinebelow]
+ 16#442 [/tecyrillic /afii10084]
+ 16#3314 [/kirosquare]
+ 16#21E6 [/arrowleftwhite]
+ 16#1E6 [/Gcaron]
+ 16#30B8 [/zikatakana]
+ 16#FF8A [/hakatakanahalfwidth]
+ 16#F6F3 [/tsuperior]
+ 16#323B [/ideographicstudyparen]
+ 16#9A4 [/tabengali]
+ 16#10D [/ccaron]
+ 16#1EB1 [/abrevegrave]
+ 16#33BE [/kwsquare]
+ 16#290 [/zretroflexhook]
+ 16#3162 [/yikorean]
+ 16#34 [/four]
+ 16#266F [/musicsharpsign]
+ 16#413 [/afii10020 /Gecyrillic]
+ 16#FB7C [/tchehinitialarabic]
+ 16#1B7 [/Ezh]
+ 16#3089 [/rahiragana]
+ 16#FF5B [/braceleftmonospace]
+ 16#F6C4 [/afii10063]
+ 16#E2D [/oangthai]
+ 16#596 [/tipehalefthebrew /tipehahebrew]
+ 16#33A [/bridgeinvertedbelowcmb]
+ 16#320C [/phieuphparenkorean]
+ 16#DE [/Thorn]
+ 16#FE82 [/alefmaddaabovefinalarabic]
+ 16#1E82 [/Wacute]
+ 16#4BD [/cheabkhasiancyrillic]
+ 16#24BD [/Hcircle]
+ 16#338F [/squarekg]
+ 16#261 [/gscript]
+ 16#2261 [/equivalence]
+ 16#3133 [/kiyeoksioskorean]
+ 16#5 [/controlENQ]
+ 16#F76E [/Nsmall]
+ 16#640 [/tatweelarabic /kashidaautonosidebearingarabic /kashidaautoarabic /afii57440]
+ 16#2640 [/venus /female]
+ 16#3E4 [/Feicoptic]
+ 16#FB4D [/kafrafehebrew]
+ 16#A1F [/ttagurmukhi]
+ 16#188 [/chook]
+ 16#F8F1 [/bracelefttp]
+ 16#305A [/zuhiragana]
+ 16#FF2C [/Lmonospace]
+ 16#567 [/eharmenian]
+ 16#2567 [/SF450000]
+ 16#30B [/hungarumlautcmb]
+ 16#946 [/eshortvowelsigndeva]
+ 16#AF [/overscore /macron]
+ 16#1E53 [/omacronacute]
+ 16#248E [/sevenperiod]
+ 16#AC9 [/ocandravowelsigngujarati]
+ 16#F73F [/questionsmall]
+ 16#3B5 [/epsilon]
+ 16#9F0 [/ramiddlediagonalbengali]
+ 16#159 [/rcaron]
+ 16#538 [/Etarmenian]
+ 16#FCA1 [/tehjeeminitialarabic]
+ 16#2DC [/ilde /tilde]
+ 16#917 [/gadeva]
+ 16#2080 [/zeroinferior]
+ 16#F7E9 [/Eacutesmall]
+ 16#1E24 [/Hdotbelow]
+ 16#45F [/dzhecyrillic /afii10193]
+ 16#3331 [/birusquare]
+ 16#A9A [/cagujarati]
+ 16#2203 [/thereexists /existential]
+ 16#203 [/ainvertedbreve]
+ 16#30D5 [/hukatakana]
+ 16#25E2 [/blacklowerrighttriangle]
+ 16#5E2 [/ayin /afii57682 /ayinhebrew]
+ 16#386 [/Alphatonos]
+ 16#9C1 [/uvowelsignbengali]
+ 16#12A [/Imacron]
+ 16#F893 [/maichattawaupperleftthai]
+ 16#FECE [/ghainfinalarabic]
+ 16#1ECE [/Ohookabove]
+ 16#33DB [/srsquare]
+ 16#317F [/pansioskorean]
+ 16#51 [/Q]
+ 16#430 [/acyrillic /afii10065]
+ 16#A6B [/fivegurmukhi]
+ 16#1D4 [/ucaron]
+ 16#21D4 [/dblarrowleft /arrowdblboth]
+ 16#30A6 [/ukatakana]
+ 16#FF78 [/kukatakanahalfwidth]
+ 16#F6E1 [/commainferior]
+ 16#E4A [/maitrithai]
+ 16#25B3 [/whiteuppointingtriangle]
+ 16#5B3 [/hatafqamatswidehebrew /hatafqamatsquarterhebrew /hatafqamatsnarrowhebrew /hatafqamatshebrew /hatafqamats34 /hatafqamats28 /hatafqamats1b /hatafqamats /afii57802]
+ 16#3229 [/tenideographicparen]
+ 16#FB [/ucircumflex]
+ 16#FE9F [/jeeminitialarabic]
+ 16#24DA [/kcircle]
+ 16#4DA [/Schwadieresiscyrillic]
+ 16#33AC [/gpasquare]
+ 16#27E [/rfishhook]
+ 16#3150 [/aekorean]
+ 16#22 [/quotedbl]
+ 16#2022 [/bullet]
+ 16#401 [/afii10023 /Iocyrillic]
+ 16#A3C [/nuktagurmukhi]
+ 16#1A5 [/phook]
+ 16#3077 [/puhiragana]
+ 16#FF49 [/imonospace]
+ 16#E1B [/poplathai]
+ 16#584 [/keharmenian]
+ 16#2584 [/dnblock]
+ 16#328 [/ogonekcmb]
+ 16#963 [/llvocalicvowelsigndeva]
+ 16#CC [/Igrave]
+ 16#1E70 [/Tcircumflexbelow]
+ 16#24AB [/pparen]
+ 16#4AB [/esdescendercyrillic]
+ 16#337D [/taisyouerasquare]
+ 16#AE6 [/zerogujarati]
+ 16#3121 [/oubopomofo]
+ 16#62E [/khaharabic /afii57422]
+ 16#3D2 [/Upsilonhooksymbol /Upsilon1]
+ 16#FB3B [/kafdageshhebrew /kafdagesh]
+ 16#32A4 [/ideographichighcircle]
+ 16#2176 [/sevenroman]
+ 16#176 [/Ycircumflex]
+ 16#3048 [/ehiragana]
+ 16#FF1A [/colonmonospace]
+ 16#555 [/Oharmenian]
+ 16#2555 [/SF220000]
+ 16#934 [/llladeva]
+ 16#1E41 [/mdotaccent]
+ 16#FE41 [/cornerbracketleftvertical]
+ 16#247C [/nineparen]
+ 16#47C [/Omegatitlocyrillic]
+ 16#334E [/yaadosquare]
+ 16#AB7 [/ssagujarati]
+ 16#2220 [/angle]
+ 16#30F2 [/wokatakana]
+ 16#3A3 [/Sigma]
+ 16#3275 [/ieungacirclekorean]
+ 16#147 [/Ncaron]
+ 16#3019 [/whitetortoiseshellbracketright]
+ 16#1EEB [/uhorngrave]
+ 16#FEEB [/hehinitialarabic]
+ 16#2CA [/secondtonechinese]
+ 16#905 [/adeva]
+ 16#6E [/n]
+ 16#1E12 [/Dcircumflexbelow]
+ 16#44D [/ereversedcyrillic /afii10095]
+ 16#A88 [/iigujarati]
+ 16#1F1 [/DZ]
+ 16#30C3 [/tusmallkatakana]
+ 16#FF95 [/yukatakanahalfwidth]
+ 16#F6FE [/Tildesmall]
+ 16#25D0 [/circlewithlefthalfblack]
+ 16#5D0 [/alefhebrew /afii57664 /alef]
+ 16#374 [/numeralsigngreek]
+ 16#9AF [/yabengali]
+ 16#118 [/Eogonek]
+ 16#2118 [/weierstrass]
+ 16#FEBC [/sadmedialarabic]
+ 16#1EBC [/Etilde]
+ 16#FC60 [/shaddafathaarabic]
+ 16#33C9 [/gysquare]
+ 16#29B [/Gsmallhook]
+ 16#316D [/rieulyeorinhieuhkorean]
+ 16#3F [/question]
+ 16#F7A8 [/Dieresissmall]
+ 16#41E [/afii10032 /Ocyrillic]
+ 16#A59 [/khhagurmukhi]
+ 16#1C2 [/clickalveolar]
+ 16#3094 [/vuhiragana]
+ 16#FF66 [/wokatakanahalfwidth]
+ 16#F6CF [/Hungarumlaut]
+ 16#E38 [/sarauthai]
+ 16#25A1 [/whitesquare /H22073]
+ 16#5A1 [/pazerhebrew]
+ 16#345 [/ypogegrammenigreekcmb]
+ 16#3217 [/chieuchaparenkorean]
+ 16#E9 [/eacute]
+ 16#1E8D [/xdieresis]
+ 16#4C8 [/enhookcyrillic]
+ 16#24C8 [/Scircle]
+ 16#339A [/nmsquare]
+ 16#26C [/lbelt]
+ 16#313E [/rieulthieuthkorean]
+ 16#2010 [/hyphentwo]
+ 16#10 [/controlDLE]
+ 16#F779 [/Ysmall]
+ 16#64B [/fathatanarabic /afii57451]
+ 16#3EF [/deicoptic]
+ 16#FB58 [/pehinitialarabic]
+ 16#A2A [/pagurmukhi]
+ 16#193 [/Ghook]
+ 16#F8FC [/bracerighttp]
+ 16#3065 [/duhiragana]
+ 16#2193 [/arrowdown]
+ 16#FF37 [/Wmonospace]
+ 16#E09 [/chochingthai]
+ 16#572 [/ghadarmenian]
+ 16#316 [/gravebelowcmb]
+ 16#951 [/udattadeva]
+ 16#BA [/ordmasculine]
+ 16#6F5 [/fivepersian]
+ 16#FE5E [/tortoiseshellbracketrightsmall]
+ 16#1E5E [/Rlinebelow]
+ 16#499 [/zedescendercyrillic]
+ 16#2499 [/eighteenperiod]
+ 16#223D [/reversedtilde]
+ 16#310F [/hbopomofo]
+ 16#FFE1 [/sterlingmonospace]
+ 16#261C [/pointingindexleftwhite]
+ 16#3C0 [/pi]
+ 16#2164 [/Fiveroman]
+ 16#164 [/Tcaron]
+ 16#3036 [/circlepostalmark]
+ 16#FF08 [/parenleftmonospace]
+ 16#543 [/Cheharmenian]
+ 16#2E7 [/tonebarmidmod]
+ 16#922 [/ddhadeva]
+ 16#F7F4 [/Ocircumflexsmall]
+ 16#1E2F [/idieresisacute]
+ 16#246A [/elevencircle]
+ 16#46A [/Yusbigcyrillic]
+ 16#AA5 [/thagujarati]
+ 16#20E [/Oinvertedbreve]
+ 16#30E0 [/mukatakana]
+ 16#391 [/Alpha]
+ 16#3263 [/rieulcirclekorean]
+ 16#9CC [/auvowelsignbengali]
+ 16#135 [/jcircumflex]
+ 16#2135 [/aleph]
+ 16#3007 [/ideographiczero]
+ 16#1ED9 [/ocircumflexdotbelow]
+ 16#2514 [/SF020000]
+ 16#2B8 [/ysuperior]
+ 16#318A [/yuyeokorean]
+ 16#5C [/backslash]
+ 16#1E00 [/Aringbelow]
+ 16#43B [/elcyrillic /afii10077]
+ 16#FBA4 [/hehhamzaaboveisolatedarabic]
+ 16#330D [/karoriisquare]
+ 16#21DF [/pagedown]
+ 16#1DF [/adieresismacron]
+ 16#30B1 [/kekatakana]
+ 16#FF83 [/tekatakanahalfwidth]
+ 16#F6EC [/esuperior]
+ 16#E55 [/fivethai]
+ 16#5BE [/maqafhebrew /afii57645]
+ 16#3234 [/ideographicnameparen]
+ 16#99D [/jhabengali]
+ 16#106 [/Cacute]
+ 16#FEAA [/dalfinalarabic]
+ 16#1EAA [/Acircumflextilde]
+ 16#24E5 [/vcircle]
+ 16#FC4E [/noonmeemisolatedarabic]
+ 16#33B7 [/mvsquare]
+ 16#4E5 [/idieresiscyrillic]
+ 16#289 [/ubar]
+ 16#315B [/yokorean]
+ 16#202D [/afii61574]
+ 16#2D [/hyphen]
+ 16#2668 [/hotsprings]
+ 16#668 [/eightarabic /eighthackarabic /afii57400]
+ 16#40C [/afii10061 /Kjecyrillic]
+ 16#A47 [/eematragurmukhi]
+ 16#1B0 [/uhorn]
+ 16#3082 [/mohiragana]
+ 16#FF54 [/tmonospace]
+ 16#E26 [/luthai]
+ 16#333 [/dbllowlinecmb]
+ 16#3205 [/pieupparenkorean]
+ 16#96E [/eightdeva]
+ 16#D7 [/multiply]
+ 16#1E7B [/umacrondieresis]
+ 16#24B6 [/Acircle]
+ 16#4B6 [/Chedescendercyrillic]
+ 16#3388 [/calsquare]
+ 16#25A [/schwahook]
+ 16#F767 [/Gsmall]
+ 16#639 [/afii57433 /ainarabic]
+ 16#FB46 [/tsadidageshhebrew /tsadidagesh]
+ 16#A18 [/ghagurmukhi]
+ 16#181 [/Bhook]
+ 16#F8EA [/trademarksans]
+ 16#3053 [/kohiragana]
+ 16#FF25 [/Emonospace]
+ 16#2560 [/SF420000]
+ 16#FCC9 [/lamjeeminitialarabic]
+ 16#304 [/macroncmb]
+ 16#93F [/ivowelsigndeva]
+ 16#A8 [/dieresis]
+ 16#FE4C [/overlinedblwavy]
+ 16#1E4C [/Otildeacute]
+ 16#2487 [/twentyparen]
+ 16#AC2 [/uuvowelsigngujarati]
+ 16#222B [/integral]
+ 16#30FD [/iterationkatakana]
+ 16#F738 [/eightoldstyle]
+ 16#3AE [/etatonos]
+ 16#9E9 [/threebengali]
+ 16#152 [/OE]
+ 16#3024 [/fourhangzhou]
+ 16#278D [/fourcircleinversesansserif]
+ 16#FEF6 [/lamalefmaddaabovefinalarabic]
+ 16#1EF6 [/Yhookabove]
+ 16#531 [/Aybarmenian]
+ 16#2D5 [/downtackmod]
+ 16#910 [/aideva]
+ 16#2079 [/ninesuperior]
+ 16#F7E2 [/Acircumflexsmall]
+ 16#79 [/y]
+ 16#1E1D [/ecedillabreve]
+ 16#458 [/jecyrillic /afii10105]
+ 16#332A [/haitusquare]
+ 16#A93 [/ogujarati]
+ 16#1FC [/AEacute]
+ 16#30CE [/nokatakana]
+ 16#5DB [/kafhebrew /kaf /afii57675]
+ 16#123 [/gcommaaccent /gcedilla]
+ 16#F88C [/maieklowleftthai]
+ 16#FEC7 [/zahinitialarabic]
+ 16#1EC7 [/ecircumflexdotbelow]
+ 16#2502 [/SF110000]
+ 16#33D4 [/mbsquare]
+ 16#2A6 [/ts]
+ 16#3178 [/kapyeounpieupkorean]
+ 16#4A [/J]
+ 16#429 [/afii10043 /Shchacyrillic]
+ 16#21CD [/arrowleftdblstroke]
+ 16#1CD [/Acaron]
+ 16#FF71 [/akatakanahalfwidth]
+ 16#F6DA [/registerserif]
+ 16#E43 [/saraaimaimuanthai]
+ 16#5AC [/iluyhebrew]
+ 16#25AC [/filledrect /blackrectangle]
+ 16#3222 [/threeideographicparen]
+ 16#98B [/rvocalicbengali]
+ 16#F4 [/ocircumflex]
+ 16#FE98 [/tehmedialarabic]
+ 16#1E98 [/wring]
+ 16#24D3 [/dcircle]
+ 16#4D3 [/adieresiscyrillic]
+ 16#33A5 [/mcubedsquare]
+ 16#277 [/omegalatinclosed]
+ 16#2277 [/greaterorless]
+ 16#3149 [/ssangcieuckorean]
+ 16#201B [/quotereversed /quoteleftreversed]
+ 16#1B [/controlESC]
+ 16#A35 [/vagurmukhi]
+ 16#19E [/nlegrightlong]
+ 16#3070 [/bahiragana]
+ 16#FF42 [/bmonospace]
+ 16#E14 [/dodekthai]
+ 16#57D [/seharmenian]
+ 16#321 [/hookpalatalizedbelowcmb]
+ 16#2321 [/integralbottom /integralbt]
+ 16#95C [/dddhadeva]
+ 16#C5 [/Aring]
+ 16#1E69 [/sdotbelowdotaccent]
+ 16#FE69 [/dollarsmall]
+ 16#24A4 [/iparen]
+ 16#4A4 [/Enghecyrillic]
+ 16#2248 [/approxequal]
+ 16#311A [/abopomofo]
+ 16#627 [/afii57415 /alefarabic]
+ 16#3CB [/upsilondieresis]
+ 16#FB34 [/hedageshhebrew /hedagesh]
+ 16#329D [/ideographicexcellentcircle]
+ 16#A06 [/aagurmukhi]
+ 16#16F [/uring]
+ 16#3041 [/asmallhiragana]
+ 16#FF13 [/threemonospace]
+ 16#54E [/Vewarmenian]
+ 16#92D [/bhadeva]
+ 16#F7FF [/Ydieresissmall]
+ 16#6D1 [/yehthreedotsbelowarabic]
+ 16#FE3A [/tortoiseshellbracketrightvertical]
+ 16#1E3A [/Llinebelow]
+ 16#2475 [/twoparen]
+ 16#475 [/izhitsacyrillic /afii10196]
+ 16#3347 [/mansyonsquare]
+ 16#AB0 [/ragujarati]
+ 16#219 [/scommaaccent]
+ 16#2219 [/bulletoperator]
+ 16#30EB [/rukatakana]
+ 16#F726 [/ampersandsmall]
+ 16#39C [/Mu]
+ 16#326E [/kiyeokacirclekorean]
+ 16#9D7 [/aulengthmarkbengali]
+ 16#140 [/ldotaccent /ldot]
+ 16#3012 [/postalmark]
+ 16#FEE4 [/meemmedialarabic]
+ 16#1EE4 [/Udotbelow]
+ 16#2C3 [/arrowheadrightmod]
+ 16#67 [/g]
+ 16#1E0B [/ddotaccent]
+ 16#446 [/tsecyrillic /afii10088]
+ 16#FBAF [/yehbarreefinalarabic]
+ 16#3318 [/guramusquare]
+ 16#A81 [/candrabindugujarati]
+ 16#21EA [/capslock]
+ 16#1EA [/Oogonek]
+ 16#30BC [/zekatakana]
+ 16#FF8E [/hokatakanahalfwidth]
+ 16#F6F7 [/Dotaccentsmall]
+ 16#25C9 [/fisheye]
+ 16#323F [/ideographicallianceparen]
+ 16#9A8 [/nabengali]
+ 16#111 [/dmacron /dcroat]
+ 16#2111 [/Ifraktur]
+ 16#1EB5 [/abrevetilde]
+ 16#4F0 [/Udieresiscyrillic]
+ 16#33C2 [/amsquare]
+ 16#294 [/glottalstop]
+ 16#3166 [/nieuntikeutkorean]
+ 16#38 [/eight]
+ 16#F7A1 [/exclamdownsmall]
+ 16#417 [/Zecyrillic /afii10025]
+ 16#1BB [/twostroke]
+ 16#308D [/rohiragana]
+ 16#F6C8 [/afii10832]
+ 16#E31 [/maihanakatthai]
+ 16#59A [/yetivhebrew]
+ 16#33E [/tildeverticalcmb]
+ 16#3210 [/tikeutaparenkorean]
+ 16#E2 [/acircumflex]
+ 16#FE86 [/wawhamzaabovefinalarabic]
+ 16#1E86 [/Wdotaccent]
+ 16#4C1 [/Zhebrevecyrillic]
+ 16#24C1 [/Lcircle]
+ 16#3393 [/ghzsquare]
+ 16#265 [/hturned]
+ 16#2265 [/greaterequal]
+ 16#3137 [/tikeutkorean]
+ 16#9 [/controlHT]
+ 16#F772 [/Rsmall]
+ 16#644 [/lamarabic /afii57444]
+ 16#3E8 [/Horicoptic]
+ 16#A23 [/nnagurmukhi]
+ 16#18C [/dtopbar]
+ 16#F8F5 [/integralex]
+ 16#305E [/zohiragana]
+ 16#FF30 [/Pmonospace]
+ 16#E02 [/khokhaithai]
+ 16#56B [/iniarmenian]
+ 16#256B [/SF530000]
+ 16#30F [/dblgravecmb]
+ 16#94A [/oshortvowelsigndeva]
+ 16#B3 [/threesuperior]
+ 16#1E57 [/pdotaccent]
+ 16#2492 [/elevenperiod]
+ 16#492 [/Ghestrokecyrillic]
+ 16#ACD [/viramagujarati]
+ 16#2236 [/ratio]
+ 16#3108 [/fbopomofo]
+ 16#3B9 [/iota]
+ 16#328B [/ideographfirecircle]
+ 16#9F4 [/onenumeratorbengali]
+ 16#15D [/scircumflex]
+ 16#215D [/fiveeighths]
+ 16#FF01 [/exclammonospace]
+ 16#53C [/Liwnarmenian]
+ 16#253C [/SF050000]
+ 16#2E0 [/gammasuperior]
+ 16#91B [/chadeva]
+ 16#2084 [/fourinferior]
+ 16#F7ED [/Iacutesmall]
+ 16#1E28 [/Hcedilla]
+ 16#463 [/yatcyrillic /afii10194]
+ 16#2463 [/fourcircle]
+ 16#A9E [/nyagujarati]
+ 16#2207 [/nabla /gradient]
+ 16#207 [/einvertedbreve]
+ 16#30D9 [/bekatakana]
+ 16#5E6 [/tsadihebrew /tsadi /afii57686]
+ 16#25E6 [/whitebullet /openbullet]
+ 16#38A [/Iotatonos]
+ 16#12E [/Iogonek]
+ 16#212E [/estimated]
+ 16#F897 [/thanthakhatlowrightthai]
+ 16#3000 [/ideographicspace]
+ 16#FED2 [/fehfinalarabic]
+ 16#1ED2 [/Ocircumflexgrave]
+ 16#2B1 [/hhooksuperior]
+ 16#3183 [/yesieungpansioskorean]
+ 16#55 [/U]
+ 16#434 [/decyrillic /afii10069]
+ 16#A6F [/ninegurmukhi]
+ 16#1D8 [/udieresisacute]
+ 16#30AA [/okatakana]
+ 16#FF7C [/sikatakanahalfwidth]
+ 16#F6E5 [/hypheninferior]
+ 16#E4E [/yamakkanthai]
+ 16#25B7 [/whiterightpointingtriangle]
+ 16#5B7 [/patahwidehebrew /patahquarterhebrew /patahnarrowhebrew /patahhebrew /patah2a /patah1d /patah11 /patah /afii57798]
+ 16#322D [/ideographicwoodparen]
+ 16#996 [/khabengali]
+ 16#FF [/ydieresis]
+ 16#FEA3 [/hahinitialarabic]
+ 16#1EA3 [/ahookabove]
+ 16#24DE [/ocircle]
+ 16#4DE [/Zedieresiscyrillic]
+ 16#33B0 [/pssquare]
+ 16#2282 [/subset /propersubset]
+ 16#282 [/shook]
+ 16#3154 [/ekorean]
+ 16#26 [/ampersand]
+ 16#2026 [/ellipsis]
+ 16#661 [/onehackarabic /onearabic /afii57393]
+ 16#2661 [/heartsuitwhite]
+ 16#405 [/afii10054 /Dzecyrillic]
+ 16#A40 [/iimatragurmukhi]
+ 16#1A9 [/Esh]
+ 16#307B [/hohiragana]
+ 16#FF4D [/mmonospace]
+ 16#E1F [/fofanthai]
+ 16#2588 [/block]
+ 16#32C [/caronbelowcmb]
+ 16#967 [/onedeva]
+ 16#D0 [/Eth]
+ 16#1E74 [/Utildebelow]
+ 16#4AF [/ustraightcyrillic]
+ 16#24AF [/tparen]
+ 16#3381 [/nasquare]
+ 16#AEA [/fourgujarati]
+ 16#2253 [/imageorapproximatelyequal]
+ 16#253 [/bhook]
+ 16#3125 [/engbopomofo]
+ 16#F760 [/Gravesmall]
+ 16#632 [/zainarabic /afii57426]
+ 16#3D6 [/pisymbolgreek /omega1]
+ 16#32A8 [/ideographicrightcircle]
+ 16#17A [/zacute]
+ 16#217A [/elevenroman]
+ 16#304C [/gahiragana]
+ 16#FF1E [/greatermonospace]
+ 16#559 [/ringhalfleftarmenian]
+ 16#2559 [/SF490000]
+ 16#938 [/sadeva]
+ 16#20A1 [/colonmonetary /colonsign]
+ 16#A1 [/exclamdown]
+ 16#1E45 [/ndotaccent]
+ 16#2480 [/thirteenparen]
+ 16#480 [/Koppacyrillic]
+ 16#30F6 [/kesmallkatakana]
+ 16#F731 [/oneoldstyle]
+ 16#3A7 [/Chi]
+ 16#3279 [/thieuthacirclekorean]
+ 16#9E2 [/lvocalicvowelsignbengali]
+ 16#14B [/eng]
+ 16#301D [/quotedblprimereversed]
+ 16#1EEF [/uhorntilde]
+ 16#2CE [/gravelowmod]
+ 16#22CE [/curlyor]
+ 16#909 [/udeva]
+ 16#72 [/r]
+ 16#1E16 [/Emacronacute]
+ 16#451 [/iocyrillic /afii10071]
+ 16#3323 [/sentosquare]
+ 16#1F5 [/gacute]
+ 16#30C7 [/dekatakana]
+ 16#FF99 [/rukatakanahalfwidth]
+ 16#5D4 [/hehebrew /he /afii57668]
+ 16#11C [/Gcircumflex]
+ 16#F885 [/saraileftthai]
+ 16#211C [/Rfraktur]
+ 16#FEC0 [/dadmedialarabic]
+ 16#1EC0 [/Ecircumflexgrave]
+ 16#33CD [/KKsquare]
+ 16#3171 [/kapyeounmieumkorean]
+ 16#43 [/C]
+ 16#67E [/peharabic /afii57506]
+ 16#422 [/afii10036 /Tecyrillic]
+ 16#FB8B [/jehfinalarabic]
+ 16#1C6 [/dzcaron]
+ 16#21C6 [/arrowleftoverright]
+ 16#FF6A [/esmallkatakanahalfwidth]
+ 16#F6D3 [/dblGrave]
+ 16#25A5 [/squareverticalfill]
+ 16#5A5 [/merkhalefthebrew /merkhahebrew]
+ 16#321B [/hieuhaparenkorean]
+ 16#ED [/iacute]
+ 16#1E91 [/zcircumflex]
+ 16#FE91 [/behinitialarabic]
+ 16#4CC [/chekhakassiancyrillic]
+ 16#24CC [/Wcircle]
+ 16#339E [/squarekm]
+ 16#270 [/mlonglegturned]
+ 16#2270 [/notlessnorequal]
+ 16#3142 [/pieupkorean]
+ 16#14 [/controlDC4]
+ 16#2014 [/emdash]
+ 16#64F [/dammalowarabic /dammaarabic /afii57455]
+ 16#3F3 [/yotgreek]
+ 16#A2E [/magurmukhi]
+ 16#2197 [/arrowupright]
+ 16#197 [/Istroke]
+ 16#3069 [/dohiragana]
+ 16#FF3B [/bracketleftmonospace]
+ 16#E0D [/yoyingthai]
+ 16#576 [/nowarmenian]
+ 16#31A [/leftangleabovecmb]
+ 16#BE [/threequarters]
+ 16#6F9 [/ninepersian]
+ 16#FE62 [/plussmall]
+ 16#1E62 [/Sdotbelow]
+ 16#49D [/kaverticalstrokecyrillic]
+ 16#249D [/bparen]
+ 16#3113 [/zhbopomofo]
+ 16#FFE5 [/yenmonospace]
+ 16#3C4 [/tau]
+ 16#FB2D [/shindageshsindothebrew /shindageshsindot]
+ 16#3296 [/ideographicfinancialcircle]
+ 16#168 [/Utilde]
+ 16#2168 [/Nineroman]
+ 16#FF0C [/commamonospace]
+ 16#547 [/Shaarmenian]
+ 16#926 [/dadeva]
+ 16#F7F8 [/Oslashsmall]
+ 16#FE33 [/underscorevertical]
+ 16#1E33 [/kdotbelow]
+ 16#246E [/fifteencircle]
+ 16#46E [/Ksicyrillic]
+ 16#212 [/Rinvertedbreve]
+ 16#2212 [/minus]
+ 16#30E4 [/yakatakana]
+ 16#5F1 [/vavyodhebrew /afii57717]
+ 16#395 [/Epsilon]
+ 16#3267 [/ieungcirclekorean]
+ 16#139 [/Lacute]
+ 16#300B [/dblanglebracketright]
+ 16#1EDD [/ohorngrave]
+ 16#2518 [/SF040000]
+ 16#2BC [/apostrophemod /afii57929]
+ 16#318E [/araeaekorean]
+ 16#60 [/grave]
+ 16#1E04 [/Bdotbelow]
+ 16#43F [/pecyrillic /afii10081]
+ 16#FBA8 [/hehinitialaltonearabic]
+ 16#1E3 [/aemacron]
+ 16#21E3 [/arrowdashdown]
+ 16#30B5 [/sakatakana]
+ 16#FF87 [/nukatakanahalfwidth]
+ 16#F6F0 [/osuperior]
+ 16#E59 [/ninethai]
+ 16#5C2 [/sindothebrew /afii57803]
+ 16#3238 [/ideographiclaborparen]
+ 16#9A1 [/ddabengali]
+ 16#10A [/Cdotaccent /Cdot]
+ 16#FEAE [/rehfinalarabic]
+ 16#1EAE [/Abreveacute]
+ 16#24E9 [/zcircle]
+ 16#4E9 [/obarredcyrillic]
+ 16#33BB [/nwsquare]
+ 16#28D [/wturned]
+ 16#315F [/wikorean]
+ 16#31 [/one]
+ 16#66C [/thousandsseparatorpersian /thousandsseparatorarabic]
+ 16#266C [/beamedsixteenthnotes]
+ 16#410 [/afii10017 /Acyrillic]
+ 16#A4B [/oomatragurmukhi]
+ 16#1B4 [/yhook]
+ 16#3086 [/yuhiragana]
+ 16#FF58 [/xmonospace]
+ 16#E2A [/sosuathai]
+ 16#2593 [/shadedark /dkshade]
+ 16#593 [/shalshelethebrew]
+ 16#337 [/solidusshortoverlaycmb]
+ 16#3209 [/chieuchparenkorean]
+ 16#DB [/Ucircumflex]
+ 16#1E7F [/vdotbelow]
+ 16#4BA [/Shhacyrillic]
+ 16#24BA [/Ecircle]
+ 16#338C [/mufsquare]
+ 16#25E [/eopenreversedclosed]
+ 16#2002 [/enspace]
+ 16#2 [/controlSOT]
+ 16#F76B [/Ksmall]
+ 16#FB4A [/tavdageshhebrew /tavdagesh /tavdages]
+ 16#A1C [/jagurmukhi]
+ 16#185 [/tonesix]
+ 16#F8EE [/bracketlefttp]
+ 16#3057 [/sihiragana]
+ 16#FF29 [/Imonospace]
+ 16#564 [/daarmenian]
+ 16#2564 [/SF470000]
+ 16#308 [/dieresiscmb]
+ 16#943 [/rvocalicvowelsigndeva]
+ 16#20AC [/euro /Euro]
+ 16#AC [/logicalnot]
+ 16#FE50 [/commasmall]
+ 16#1E50 [/Omacrongrave]
+ 16#248B [/fourperiod]
+ 16#260E [/telephoneblack]
+ 16#3B2 [/beta]
+ 16#9ED [/sevenbengali]
+ 16#156 [/Rcommaaccent /Rcedilla]
+ 16#3028 [/eighthangzhou]
+ 16#2791 [/eightcircleinversesansserif]
+ 16#FEFA [/lamalefhamzabelowfinalarabic]
+ 16#535 [/Echarmenian]
+ 16#2D9 [/dotaccent]
+ 16#914 [/audeva]
+ 16#207D [/parenleftsuperior]
+ 16#F7E6 [/AEsmall]
+ 16#7D [/braceright]
+ 16#1E21 [/gmacron]
+ 16#45C [/kjecyrillic /afii10109]
+ 16#A97 [/gagujarati]
+ 16#200 [/Adblgrave]
+ 16#2200 [/universal /forall]
+ 16#30D2 [/hikatakana]
+ 16#5DF [/finalnunhebrew /finalnun /afii57679]
+ 16#9BE [/aavowelsignbengali]
+ 16#127 [/hbar]
+ 16#F890 [/maitriupperleftthai]
+ 16#1ECB [/idotbelow]
+ 16#FECB [/aininitialarabic]
+ 16#33D8 [/pmsquare]
+ 16#317C [/siostikeutkorean]
+ 16#4E [/N]
+ 16#FDF2 [/lamlamhehisolatedarabic]
+ 16#42D [/afii10047 /Ereversedcyrillic]
+ 16#A68 [/twogurmukhi]
+ 16#1D1 [/Ocaron]
+ 16#21D1 [/arrowdblup]
+ 16#30A3 [/ismallkatakana]
+ 16#FF75 [/okatakanahalfwidth]
+ 16#F6DE [/threequartersemdash]
+ 16#E47 [/maitaikhuthai]
+ 16#5B0 [/shevawidehebrew /shevaquarterhebrew /shevanarrowhebrew /shevahebrew /sheva2e /sheva22 /sheva15 /sheva115 /sheva /afii57799]
+ 16#3226 [/sevenideographicparen]
+ 16#98F [/ebengali]
+ 16#F8 [/oslash]
+ 16#FE9C [/thehmedialarabic]
+ 16#24D7 [/hcircle]
+ 16#4D7 [/iebrevecyrillic]
+ 16#33A9 [/pasquare]
+ 16#227B [/succeeds]
+ 16#27B [/rhookturned]
+ 16#314D [/phieuphkorean]
+ 16#1F [/controlUS]
+ 16#FB67 [/ttehfinalarabic]
+ 16#A39 [/hagurmukhi]
+ 16#1A2 [/Oi]
+ 16#3074 [/pihiragana]
+ 16#FF46 [/fmonospace]
+ 16#E18 [/thothongthai]
+ 16#581 [/coarmenian]
+ 16#325 [/ringbelowcmb]
+ 16#2325 [/option]
+ 16#960 [/rrvocalicdeva]
+ 16#C9 [/Eacute]
+ 16#1E6D [/tdotbelow]
+ 16#24A8 [/mparen]
+ 16#4A8 [/Haabkhasiancyrillic]
+ 16#224C [/allequal]
+ 16#311E [/aibopomofo]
+ 16#62B [/theharabic /afii57419]
+ 16#FB38 [/tetdageshhebrew /tetdagesh]
+ 16#A0A [/uugurmukhi]
+ 16#173 [/uogonek]
+ 16#2173 [/fourroman]
+ 16#3045 [/usmallhiragana]
+ 16#FF17 [/sevenmonospace]
+ 16#552 [/Yiwnarmenian]
+ 16#2552 [/SF510000]
+ 16#931 [/rradeva]
+ 16#6D5 [/afii57534]
+ 16#FE3E [/dblanglebracketrightvertical]
+ 16#1E3E [/Macute]
+ 16#479 [/ukcyrillic]
+ 16#2479 [/sixparen]
+ 16#221D [/proportional]
+ 16#30EF [/wakatakana]
+ 16#3A0 [/Pi]
+ 16#3272 [/mieumacirclekorean]
+ 16#144 [/nacute]
+ 16#3016 [/whitelenticularbracketleft]
+ 16#FEE8 [/noonmedialarabic]
+ 16#1EE8 [/Uhornacute]
+ 16#2C7 [/caron]
+ 16#902 [/anusvaradeva]
+ 16#6B [/k]
+ 16#1E0F [/dlinebelow]
+ 16#44A [/hardsigncyrillic /afii10092]
+ 16#A85 [/agujarati]
+ 16#1EE [/Ezhcaron]
+ 16#30C0 [/dakatakana]
+ 16#FF92 [/mekatakanahalfwidth]
+ 16#F6FB [/Ogoneksmall]
+ 16#3243 [/ideographicreachparen]
+ 16#9AC [/babengali]
+ 16#115 [/ebreve]
+ 16#1EB9 [/edotbelow]
+ 16#4F4 [/Chedieresiscyrillic]
+ 16#33C6 [/coverkgsquare]
+ 16#298 [/bilabialclick]
+ 16#316A [/rieultikeutkorean]
+ 16#203C [/exclamdbl]
+ 16#3C [/less]
+ 16#41B [/afii10029 /Elcyrillic]
+ 16#1BF [/wynn]
+ 16#3091 [/wehiragana]
+ 16#FF63 [/cornerbracketrighthalfwidth]
+ 16#F6CC [/DieresisAcute]
+ 16#E35 [/saraiithai]
+ 16#59E [/gershayimaccenthebrew]
+ 16#342 [/perispomenigreekcmb]
+ 16#3214 [/siosaparenkorean]
+ 16#E6 [/ae]
+ 16#FE8A [/yehhamzaabovefinalarabic]
+ 16#1E8A [/Xdotaccent]
+ 16#24C5 [/Pcircle]
+ 16#3397 [/dlsquare]
+ 16#269 [/iotalatin]
+ 16#313B [/rieulmieumkorean]
+ 16#D [/controlCR]
+ 16#200D [/afii301]
+ 16#F776 [/Vsmall]
+ 16#648 [/wawarabic /afii57448]
+ 16#3EC [/Shimacoptic]
+ 16#A27 [/dhagurmukhi]
+ 16#190 [/Eopen]
+ 16#F8F9 [/bracketrighttp]
+ 16#3062 [/dihiragana]
+ 16#2190 [/arrowleft]
+ 16#FF34 [/Tmonospace]
+ 16#E06 [/khorakhangthai]
+ 16#56F [/kenarmenian]
+ 16#313 [/commaabovecmb]
+ 16#B7 [/middot /periodcentered]
+ 16#6F2 [/twopersian]
+ 16#1E5B [/rdotbelow]
+ 16#FE5B [/braceleftsmall]
+ 16#2496 [/fifteenperiod]
+ 16#496 [/Zhedescendercyrillic]
+ 16#310C [/lbopomofo]
+ 16#3BD [/nu]
+ 16#328F [/ideographearthcircle]
+ 16#9F8 [/denominatorminusonenumeratorbengali]
+ 16#161 [/scaron]
+ 16#2161 [/Tworoman]
+ 16#FF05 [/percentmonospace]
+ 16#540 [/Hoarmenian]
+ 16#2E4 [/glottalstopreversedsuperior]
+ 16#91F [/ttadeva]
+ 16#2088 [/eightinferior]
+ 16#F7F1 [/Ntildesmall]
+ 16#1E2C [/Itildebelow]
+ 16#467 [/yuslittlecyrillic]
+ 16#2467 [/eightcircle]
+ 16#3339 [/herutusquare]
+ 16#AA2 [/ddhagujarati]
+ 16#20B [/iinvertedbreve]
+ 16#220B [/suchthat]
+ 16#30DD [/pokatakana]
+ 16#5EA [/tavhebrew /tav /afii57690]
+ 16#38E [/Upsilontonos]
+ 16#3260 [/kiyeokcirclekorean]
+ 16#132 [/IJ]
+ 16#3004 [/jis]
+ 16#FED6 [/qaffinalarabic]
+ 16#1ED6 [/Ocircumflextilde]
+ 16#2B5 [/rhookturnedsuperior]
+ 16#3187 [/yoyakorean]
+ 16#59 [/Y]
+ 16#438 [/iicyrillic /afii10074]
+ 16#A73 [/uragurmukhi]
+ 16#1DC [/udieresisgrave]
+ 16#30AE [/gikatakana]
+ 16#FF80 [/takatakanahalfwidth]
+ 16#F6E9 [/asuperior]
+ 16#E52 [/twothai]
+ 16#5BB [/qubutswidehebrew /qubutsquarterhebrew /qubutsnarrowhebrew /qubutshebrew /qubuts31 /qubuts25 /qubuts18 /qubuts /afii57796]
+ 16#3231 [/ideographicstockparen]
+ 16#99A [/cabengali]
+ 16#2103 [/centigrade]
+ 16#103 [/abreve]
+ 16#FEA7 [/khahinitialarabic]
+ 16#1EA7 [/acircumflexgrave]
+ 16#24E2 [/scircle]
+ 16#FC4B [/noonjeemisolatedarabic]
+ 16#33B4 [/pvsquare]
+ 16#4E2 [/Imacroncyrillic]
+ 16#2286 [/subsetorequal /reflexsubset]
+ 16#286 [/eshcurl]
+ 16#3158 [/wakorean]
+ 16#2A [/asterisk]
+ 16#665 [/fivehackarabic /fivearabic /afii57397]
+ 16#2665 [/heartsuitblack /heart]
+ 16#409 [/afii10058 /Ljecyrillic]
+ 16#1AD [/thook]
+ 16#307F [/mihiragana]
+ 16#FF51 [/qmonospace]
+ 16#E23 [/roruathai]
+ 16#258C [/lfblock]
+ 16#330 [/tildebelowcmb]
+ 16#3202 [/tikeutparenkorean]
+ 16#96B [/fivedeva]
+ 16#D4 [/Ocircumflex]
+ 16#1E78 [/Utildeacute]
+ 16#24B3 [/xparen]
+ 16#4B3 [/hadescendercyrillic]
+ 16#3385 [/KBsquare]
+ 16#AEE [/eightgujarati]
+ 16#257 [/dhook]
+ 16#3129 [/iubopomofo]
+ 16#F764 [/Dsmall]
+ 16#636 [/dadarabic /afii57430]
+ 16#3DA [/Stigmagreek]
+ 16#FB43 [/pefinaldageshhebrew]
+ 16#A15 [/kagurmukhi]
+ 16#17E [/zcaron]
+ 16#F8E7 [/arrowhorizex]
+ 16#3050 [/guhiragana]
+ 16#FF22 [/Bmonospace]
+ 16#55D [/commaarmenian]
+ 16#255D [/SF260000]
+ 16#301 [/acutecomb /acutecmb]
+ 16#93C [/nuktadeva]
+ 16#A5 [/yen]
+ 16#FE49 [/overlinedashed]
+ 16#1E49 [/nlinebelow]
+ 16#2484 [/seventeenparen]
+ 16#484 [/palatalizationcyrilliccmb]
+ 16#ABF [/ivowelsigngujarati]
+ 16#2228 [/logicalor]
+ 16#30FA [/vokatakana]
+ 16#F735 [/fiveoldstyle]
+ 16#3AB [/Upsilondieresis]
+ 16#9E6 [/zerobengali]
+ 16#14F [/obreve]
+ 16#3021 [/onehangzhou]
+ 16#278A [/onecircleinversesansserif]
+ 16#FEF3 [/yehinitialarabic /alefmaksurainitialarabic]
+ 16#1EF3 [/ygrave]
+ 16#2D2 [/ringhalfrightcentered]
+ 16#90D [/ecandradeva]
+ 16#2076 [/sixsuperior]
+ 16#76 [/v]
+ 16#1E1A [/Etildebelow]
+ 16#455 [/dzecyrillic /afii10102]
+ 16#3327 [/tonsquare]
+ 16#A90 [/aigujarati]
+ 16#30CB [/nikatakana]
+ 16#FF9D [/nkatakanahalfwidth]
+ 16#5D8 [/tethebrew /tet /afii57672]
+ 16#25D8 [/invbullet /bulletinverse]
+ 16#9B7 [/ssabengali]
+ 16#120 [/Gdotaccent /Gdot]
+ 16#F889 [/maitaikhuleftthai]
+ 16#FEC4 [/tahmedialarabic]
+ 16#1EC4 [/Ecircumflextilde]
+ 16#33D1 [/squareln]
+ 16#22A3 [/tackleft]
+ 16#2A3 [/dzaltone]
+ 16#3175 [/pieupsiostikeutkorean]
+ 16#47 [/G]
+ 16#426 [/afii10040 /Tsecyrillic]
+ 16#1CA [/NJ]
+ 16#309C [/semivoicedmarkkana]
+ 16#FF6E [/yosmallkatakanahalfwidth]
+ 16#F6D7 [/dieresisacute]
+ 16#E40 [/saraethai]
+ 16#25A9 [/squarediagonalcrosshatchfill]
+ 16#5A9 [/telishaqetanahebrew]
+ 16#988 [/iibengali]
+ 16#F1 [/ntilde]
+ 16#1E95 [/zlinebelow]
+ 16#24D0 [/acircle]
+ 16#4D0 [/Abrevecyrillic]
+ 16#33A2 [/kmsquaredsquare]
+ 16#3146 [/ssangsioskorean]
+ 16#18 [/controlCAN]
+ 16#2018 [/quoteleft]
+ 16#A32 [/lagurmukhi]
+ 16#19B [/lambdastroke]
+ 16#306D [/nehiragana]
+ 16#FF3F [/underscoremonospace]
+ 16#E11 [/thonangmonthothai]
+ 16#57A [/peharmenian]
+ 16#31E [/downtackbelowcmb]
+ 16#959 [/khhadeva]
+ 16#C2 [/Acircumflex]
+ 16#FE66 [/equalsmall]
+ 16#1E66 [/Scarondotaccent]
+ 16#24A1 [/fparen]
+ 16#4A1 [/kabashkircyrillic]
+ 16#2245 [/approximatelyequal /congruent]
+ 16#3117 [/zbopomofo]
+ 16#624 [/wawhamzaabovearabic /afii57412]
+ 16#3C8 [/psi]
+ 16#FB31 [/betdageshhebrew /betdagesh]
+ 16#16C [/Ubreve]
+ 16#FF10 [/zeromonospace]
+ 16#54B [/Jheharmenian]
+ 16#92A [/padeva]
+ 16#F7FC [/Udieresissmall]
+ 16#1E37 [/ldotbelow]
+ 16#FE37 [/braceleftvertical]
+ 16#2472 [/nineteencircle]
+ 16#472 [/afii10147 /Fitacyrillic]
+ 16#5344 [/twentyhangzhou]
+ 16#AAD [/bhagujarati]
+ 16#216 [/Uinvertedbreve]
+ 16#30E8 [/yokatakana]
+ 16#399 [/Iota]
+ 16#FB02 [/fl]
+ 16#326B [/thieuthcirclekorean]
+ 16#13D [/Lcaron]
+ 16#300F [/whitecornerbracketright]
+ 16#1EE1 [/ohorntilde]
+ 16#251C [/SF080000]
+ 16#2C0 [/glottalstopmod]
+ 16#64 [/d]
+ 16#1E08 [/Ccedillaacute]
+ 16#443 [/ucyrillic /afii10085]
+ 16#3315 [/kiroguramusquare]
+ 16#1E7 [/gcaron]
+ 16#21E7 [/arrowupwhite]
+ 16#30B9 [/sukatakana]
+ 16#FF8B [/hikatakanahalfwidth]
+ 16#F6F4 [/Brevesmall]
+ 16#25C6 [/blackdiamond]
+ 16#323C [/ideographicsuperviseparen]
+ 16#9A5 [/thabengali]
+ 16#10E [/Dcaron]
+ 16#FEB2 [/seenfinalarabic]
+ 16#1EB2 [/Abrevehookabove]
+ 16#33BF [/mwmegasquare]
+ 16#291 [/zcurl]
+ 16#3163 [/ikorean]
+ 16#2035 [/primereversed]
+ 16#35 [/five]
+ 16#414 [/afii10021 /Decyrillic]
+ 16#FB7D [/tchehmedialarabic]
+ 16#1B8 [/Ezhreversed]
+ 16#308A [/rihiragana]
+ 16#FF5C [/barmonospace]
+ 16#F6C5 [/afii10064]
+ 16#E2E [/honokhukthai]
+ 16#597 [/reviamugrashhebrew /reviahebrew]
+ 16#33B [/squarebelowcmb]
+ 16#320D [/hieuhparenkorean]
+ 16#DF [/germandbls]
+ 16#1E83 [/wacute]
+ 16#24BE [/Icircle]
+ 16#4BE [/Chedescenderabkhasiancyrillic]
+ 16#3390 [/Hzsquare]
+ 16#2262 [/notidentical]
+ 16#3134 [/nieunkorean]
+ 16#6 [/controlACK]
+ 16#F76F [/Osmall]
+ 16#641 [/feharabic /afii57441]
+ 16#2641 [/earth]
+ 16#3E5 [/feicoptic]
+ 16#FB4E [/perafehebrew]
+ 16#A20 [/tthagurmukhi]
+ 16#189 [/Dafrican]
+ 16#F8F2 [/braceleftmid]
+ 16#305B [/sehiragana]
+ 16#FF2D [/Mmonospace]
+ 16#568 [/etarmenian]
+ 16#FCD1 [/meemmeeminitialarabic]
+ 16#2568 [/SF460000]
+ 16#30C [/caroncmb]
+ 16#947 [/evowelsigndeva]
+ 16#B0 [/degree]
+ 16#FE54 [/semicolonsmall]
+ 16#1E54 [/Pacute]
+ 16#248F [/eightperiod]
+ 16#3105 [/bbopomofo]
+ 16#3B6 [/zeta]
+ 16#FB1F [/yodyodpatahhebrew /doubleyodpatahhebrew /doubleyodpatah /afii57705]
+ 16#9F1 [/ralowerdiagonalbengali]
+ 16#15A [/Sacute]
+ 16#539 [/Toarmenian]
+ 16#FCA2 [/tehhahinitialarabic]
+ 16#2DD [/hungarumlaut]
+ 16#918 [/ghadeva]
+ 16#2081 [/oneinferior]
+ 16#F7EA [/Ecircumflexsmall]
+ 16#1E25 [/hdotbelow]
+ 16#2460 [/onecircle]
+ 16#460 [/Omegacyrillic]
+ 16#A9B [/chagujarati]
+ 16#204 [/Edblgrave]
+ 16#30D6 [/bukatakana]
+ 16#5E3 [/finalpehebrew /finalpe /afii57683]
+ 16#25E3 [/blacklowerlefttriangle]
+ 16#387 [/anoteleia]
+ 16#9C2 [/uuvowelsignbengali]
+ 16#12B [/imacron]
+ 16#F894 [/maichattawalowrightthai]
+ 16#212B [/angstrom]
+ 16#1ECF [/ohookabove]
+ 16#FECF [/ghaininitialarabic]
+ 16#FC73 [/tehnoonfinalarabic]
+ 16#33DC [/svsquare]
+ 16#3180 [/ssangieungkorean]
+ 16#52 [/R]
+ 16#431 [/becyrillic /afii10066]
+ 16#3303 [/aarusquare]
+ 16#A6C [/sixgurmukhi]
+ 16#1D5 [/Udieresismacron]
+ 16#30A7 [/esmallkatakana]
+ 16#FF79 [/kekatakanahalfwidth]
+ 16#F6E2 [/commasuperior]
+ 16#E4B [/maichattawathai]
+ 16#5B4 [/hiriq2d /hiriq21 /hiriq14 /hiriq /hiriqwidehebrew /hiriqquarterhebrew /hiriqnarrowhebrew /hiriqhebrew /afii57793]
+ 16#25B4 [/blackuppointingsmalltriangle]
+ 16#322A [/ideographicmoonparen]
+ 16#993 [/obengali]
+ 16#FC [/udieresis]
+ 16#FEA0 [/jeemmedialarabic]
+ 16#1EA0 [/Adotbelow]
+ 16#4DB [/schwadieresiscyrillic]
+ 16#24DB [/lcircle]
+ 16#33AD [/radsquare]
+ 16#27F [/rfishhookreversed]
+ 16#3151 [/yakorean]
+ 16#23 [/numbersign]
+ 16#402 [/afii10051 /Djecyrillic]
+ 16#FB6B [/vehfinalarabic]
+ 16#1A6 [/yr]
+ 16#3078 [/hehiragana]
+ 16#FF4A [/jmonospace]
+ 16#E1C [/phophungthai]
+ 16#585 [/oharmenian]
+ 16#329 [/verticallinebelowcmb]
+ 16#2329 [/angleleft]
+ 16#964 [/danda]
+ 16#CD [/Iacute]
+ 16#1E71 [/tcircumflexbelow]
+ 16#24AC [/qparen]
+ 16#4AC [/Tedescendercyrillic]
+ 16#337E [/meizierasquare]
+ 16#AE7 [/onegujarati]
+ 16#250 [/aturned]
+ 16#2250 [/approaches]
+ 16#3122 [/anbopomofo]
+ 16#262F [/yinyang]
+ 16#62F [/dalarabic /afii57423]
+ 16#3D3 [/Upsilonacutehooksymbolgreek]
+ 16#FB3C [/lameddageshhebrew /lameddagesh]
+ 16#32A5 [/ideographiccentrecircle]
+ 16#177 [/ycircumflex]
+ 16#2177 [/eightroman]
+ 16#3049 [/osmallhiragana]
+ 16#FF1B [/semicolonmonospace]
+ 16#556 [/Feharmenian]
+ 16#2556 [/SF210000]
+ 16#935 [/vadeva]
+ 16#FE42 [/cornerbracketrightvertical]
+ 16#1E42 [/Mdotbelow]
+ 16#247D [/tenparen]
+ 16#47D [/omegatitlocyrillic]
+ 16#AB8 [/sagujarati]
+ 16#30F3 [/nkatakana]
+ 16#3A4 [/Tau]
+ 16#3276 [/cieucacirclekorean]
+ 16#9DF [/yyabengali]
+ 16#148 [/ncaron]
+ 16#FEEC [/hehmedialarabic]
+ 16#1EEC [/Uhornhookabove]
+ 16#2CB [/fourthtonechinese]
+ 16#906 [/aadeva]
+ 16#6F [/o]
+ 16#1E13 [/dcircumflexbelow]
+ 16#44E [/iucyrillic /afii10096]
+ 16#A89 [/ugujarati]
+ 16#1F2 [/Dz]
+ 16#30C4 [/tukatakana]
+ 16#FF96 [/yokatakanahalfwidth]
+ 16#F6FF [/Zcaronsmall]
+ 16#25D1 [/circlewithrighthalfblack]
+ 16#5D1 [/bethebrew /afii57665 /bet]
+ 16#375 [/numeralsignlowergreek]
+ 16#9B0 [/rabengali]
+ 16#119 [/eogonek]
+ 16#1EBD [/etilde]
+ 16#4F8 [/Yerudieresiscyrillic]
+ 16#FC61 [/shaddadammaarabic]
+ 16#33CA [/hasquare]
+ 16#316E [/mieumpieupkorean]
+ 16#40 [/at]
+ 16#41F [/afii10033 /Pecyrillic]
+ 16#A5A [/ghhagurmukhi]
+ 16#1C3 [/clickretroflex]
+ 16#FF67 [/asmallkatakanahalfwidth]
+ 16#F6D0 [/Macron]
+ 16#E39 [/sarauuthai]
+ 16#3218 [/khieukhaparenkorean]
+ 16#981 [/candrabindubengali]
+ 16#EA [/ecircumflex]
+ 16#1E8E [/Ydotaccent]
+ 16#FE8E [/aleffinalarabic]
+ 16#24C9 [/Tcircle]
+ 16#339B [/mumsquare]
+ 16#26D [/lhookretroflex]
+ 16#313F [/rieulphieuphkorean]
+ 16#11 [/controlDC1]
+ 16#F77A [/Zsmall]
+ 16#64C [/dammatanarabic /dammatanaltonearabic /afii57452]
+ 16#3F0 [/kappasymbolgreek]
+ 16#FB59 [/pehmedialarabic]
+ 16#A2B [/phagurmukhi]
+ 16#194 [/Gammaafrican]
+ 16#F8FD [/bracerightmid]
+ 16#3066 [/tehiragana]
+ 16#2194 [/arrowboth]
+ 16#FF38 [/Xmonospace]
+ 16#E0A [/chochangthai]
+ 16#573 [/cheharmenian]
+ 16#317 [/acutebelowcmb]
+ 16#952 [/anudattadeva]
+ 16#BB [/guillemotright]
+ 16#6F6 [/sixpersian]
+ 16#1E5F [/rlinebelow]
+ 16#FE5F [/numbersignsmall]
+ 16#249A [/nineteenperiod]
+ 16#49A [/Kadescendercyrillic]
+ 16#3110 [/jbopomofo]
+ 16#261D [/pointingindexupwhite]
+ 16#3C1 [/rho]
+ 16#FB2A [/shinshindothebrew /shinshindot /afii57694]
+ 16#165 [/tcaron]
+ 16#2165 [/Sixroman]
+ 16#FF09 [/parenrightmonospace]
+ 16#544 [/Menarmenian]
+ 16#2E8 [/tonebarlowmod]
+ 16#923 [/nnadeva]
+ 16#F7F5 [/Otildesmall]
+ 16#FE30 [/twodotleadervertical]
+ 16#1E30 [/Kacute]
+ 16#46B [/yusbigcyrillic]
+ 16#246B [/twelvecircle]
+ 16#AA6 [/dagujarati]
+ 16#20F [/oinvertedbreve]
+ 16#220F [/product]
+ 16#30E1 [/mekatakana]
+ 16#392 [/Beta]
+ 16#3264 [/mieumcirclekorean]
+ 16#9CD [/viramabengali]
+ 16#136 [/Kcommaaccent /Kcedilla]
+ 16#3008 [/anglebracketleft]
+ 16#FEDA [/kaffinalarabic]
+ 16#1EDA [/Ohornacute]
+ 16#2B9 [/primemod]
+ 16#318B [/yuyekorean]
+ 16#5D [/bracketright]
+ 16#698 [/jeharabic /afii57508]
+ 16#1E01 [/aringbelow]
+ 16#43C [/emcyrillic /afii10078]
+ 16#FBA5 [/hehhamzaabovefinalarabic]
+ 16#21E0 [/arrowdashleft]
+ 16#1E0 [/Adotmacron]
+ 16#30B2 [/gekatakana]
+ 16#FF84 [/tokatakanahalfwidth]
+ 16#F6ED [/isuperior]
+ 16#E56 [/sixthai]
+ 16#25BF [/whitedownpointingsmalltriangle]
+ 16#5BF [/rafehebrew /rafe /afii57841]
+ 16#3235 [/ideographicspecialparen]
+ 16#99E [/nyabengali]
+ 16#107 [/cacute]
+ 16#1EAB [/acircumflextilde]
+ 16#24E6 [/wcircle]
+ 16#4E6 [/Odieresiscyrillic]
+ 16#33B8 [/kvsquare]
+ 16#28A [/upsilonlatin]
+ 16#228A [/subsetnotequal]
+ 16#315C [/ukorean]
+ 16#202E [/afii61575]
+ 16#2E [/period]
+ 16#2669 [/quarternote]
+ 16#669 [/ninearabic /ninehackarabic /afii57401]
+ 16#A48 [/aimatragurmukhi]
+ 16#1B1 [/Upsilonafrican]
+ 16#3083 [/yasmallhiragana]
+ 16#FF55 [/umonospace]
+ 16#F6BE [/dotlessj]
+ 16#E27 [/wowaenthai]
+ 16#2590 [/rtblock]
+ 16#334 [/tildeoverlaycmb]
+ 16#3206 [/siosparenkorean]
+ 16#96F [/ninedeva]
+ 16#D8 [/Oslash]
+ 16#2713 [/checkmark]
+ 16#1E7C [/Vtilde]
+ 16#4B7 [/chedescendercyrillic]
+ 16#24B7 [/Bcircle]
+ 16#3389 [/kcalsquare]
+ 16#25B [/eopen]
+ 16#F768 [/Hsmall]
+ 16#263A [/whitesmilingface /smileface]
+ 16#63A [/ghainarabic /afii57434]
+ 16#3DE [/Koppagreek]
+ 16#FB47 [/qofdageshhebrew /qofdagesh]
+ 16#A19 [/ngagurmukhi]
+ 16#182 [/Btopbar]
+ 16#F8EB [/parenlefttp]
+ 16#3054 [/gohiragana]
+ 16#FF26 [/Fmonospace]
+ 16#561 [/aybarmenian]
+ 16#FCCA [/lamhahinitialarabic]
+ 16#2561 [/SF190000]
+ 16#2305 [/projective]
+ 16#305 [/overlinecmb]
+ 16#940 [/iivowelsigndeva]
+ 16#20A9 [/won]
+ 16#A9 [/copyright]
+ 16#FE4D [/lowlinedashed]
+ 16#1E4D [/otildeacute]
+ 16#2488 [/oneperiod]
+ 16#AC3 [/rvocalicvowelsigngujarati]
+ 16#222C [/dblintegral]
+ 16#30FE [/voicediterationkatakana]
+ 16#F739 [/nineoldstyle]
+ 16#3AF [/iotatonos]
+ 16#9EA [/fourbengali]
+ 16#2153 [/onethird]
+ 16#153 [/oe]
+ 16#3025 [/fivehangzhou]
+ 16#278E [/fivecircleinversesansserif]
+ 16#1EF7 [/yhookabove]
+ 16#FEF7 [/lamalefhamzaaboveisolatedarabic]
+ 16#532 [/Benarmenian]
+ 16#2D6 [/plusmod]
+ 16#911 [/ocandradeva]
+ 16#207A [/plussuperior]
+ 16#F7E3 [/Atildesmall]
+ 16#7A [/z]
+ 16#1E1E [/Fdotaccent]
+ 16#459 [/ljecyrillic /afii10106]
+ 16#332B [/paasentosquare]
+ 16#A94 [/augujarati]
+ 16#1FD [/aeacute]
+ 16#30CF [/hakatakana]
+ 16#5DC [/lamedhebrew /lamed /afii57676]
+ 16#124 [/Hcircumflex]
+ 16#F88D [/maithoupperleftthai]
+ 16#FEC8 [/zahmedialarabic]
+ 16#1EC8 [/Ihookabove]
+ 16#33D5 [/squaremil]
+ 16#2A7 [/tesh]
+ 16#3179 [/kapyeounssangpieupkorean]
+ 16#4B [/K]
+ 16#F7B4 [/Acutesmall]
+ 16#686 [/tcheharabic /afii57507]
+ 16#42A [/afii10044 /Hardsigncyrillic]
+ 16#FB93 [/gaffinalarabic]
+ 16#1CE [/acaron]
+ 16#FF72 [/ikatakanahalfwidth]
+ 16#F6DB [/trademarkserif]
+ 16#E44 [/saraaimaimalaithai]
+ 16#5AD [/dehihebrew]
+ 16#3223 [/fourideographicparen]
+ 16#98C [/lvocalicbengali]
+ 16#F5 [/otilde]
+ 16#1E99 [/yring]
+ 16#24D4 [/ecircle]
+ 16#4D4 [/Aiecyrillic]
+ 16#33A6 [/kmcubedsquare]
+ 16#278 [/philatin]
+ 16#314A [/chieuchkorean]
+ 16#1C [/controlFS]
+ 16#201C [/quotedblleft]
+ 16#A36 [/shagurmukhi]
+ 16#19F [/Ocenteredtilde]
+ 16#3071 [/pahiragana]
+ 16#FF43 [/cmonospace]
+ 16#E15 [/totaothai]
+ 16#57E [/vewarmenian]
+ 16#322 [/hookretroflexbelowcmb]
+ 16#95D [/rhadeva]
+ 16#C6 [/AE]
+ 16#FE6A [/percentsmall]
+ 16#1E6A [/Tdotaccent]
+ 16#24A5 [/jparen]
+ 16#FC0E [/tehmeemisolatedarabic]
+ 16#4A5 [/enghecyrillic]
+ 16#AE0 [/rrvocalicgujarati]
+ 16#311B [/obopomofo]
+ 16#628 [/afii57416 /beharabic]
+ 16#3CC [/omicrontonos]
+ 16#FB35 [/vavdageshhebrew /vavdagesh65 /vavdagesh /afii57723]
+ 16#329E [/ideographicprintcircle]
+ 16#A07 [/igurmukhi]
+ 16#2170 [/oneroman]
+ 16#170 [/Uhungarumlaut /Udblacute]
+ 16#3042 [/ahiragana]
+ 16#FF14 [/fourmonospace]
+ 16#54F [/Tiwnarmenian]
+ 16#92E [/madeva]
+ 16#6D2 [/yehbarreearabic /afii57519]
+ 16#1E3B [/llinebelow]
+ 16#FE3B [/blacklenticularbracketleftvertical]
+ 16#2476 [/threeparen]
+ 16#476 [/Izhitsadblgravecyrillic]
+ 16#221A [/radical]
+ 16#30EC [/rekatakana]
+ 16#39D [/Nu]
+ 16#326F [/nieunacirclekorean]
+ 16#141 [/Lslash]
+ 16#3013 [/getamark]
+ 16#1EE5 [/udotbelow]
+ 16#2C4 [/arrowheadupmod]
+ 16#68 [/h]
+ 16#1E0C [/Ddotbelow]
+ 16#447 [/checyrillic /afii10089]
+ 16#A82 [/anusvaragujarati]
+ 16#1EB [/oogonek]
+ 16#30BD [/sokatakana]
+ 16#FF8F [/makatakanahalfwidth]
+ 16#F6F8 [/Hungarumlautsmall]
+ 16#25CA [/lozenge]
+ 16#3240 [/ideographicfestivalparen]
+ 16#112 [/Emacron]
+ 16#FEB6 [/sheenfinalarabic]
+ 16#1EB6 [/Abrevedotbelow]
+ 16#4F1 [/udieresiscyrillic]
+ 16#33C3 [/bqsquare]
+ 16#2295 [/pluscircle /circleplus]
+ 16#295 [/glottalstopreversed]
+ 16#3167 [/nieunsioskorean]
+ 16#2039 [/guilsinglleft]
+ 16#F7A2 [/centoldstyle]
+ 16#39 [/nine]
+ 16#418 [/afii10026 /Iicyrillic]
+ 16#21BC [/harpoonleftbarbup]
+ 16#1BC [/Tonefive]
+ 16#308E [/wasmallhiragana]
+ 16#F6C9 [/Acute]
+ 16#E32 [/saraaathai]
+ 16#59B [/tevirlefthebrew /tevirhebrew]
+ 16#33F [/dbloverlinecmb]
+ 16#3211 [/rieulaparenkorean]
+ 16#E3 [/atilde]
+ 16#1E87 [/wdotaccent]
+ 16#4C2 [/zhebrevecyrillic]
+ 16#24C2 [/Mcircle]
+ 16#3394 [/thzsquare]
+ 16#2266 [/lessoverequal]
+ 16#266 [/hhook]
+ 16#3138 [/ssangtikeutkorean]
+ 16#A [/controlLF]
+ 16#F773 [/Ssmall]
+ 16#645 [/meemarabic /afii57445]
+ 16#3E9 [/horicoptic]
+ 16#A24 [/tagurmukhi]
+ 16#18D [/deltaturned]
+ 16#F8F6 [/parenrighttp]
+ 16#305F [/tahiragana]
+ 16#FF31 [/Qmonospace]
+ 16#E03 [/khokhuatthai]
+ 16#56C [/liwnarmenian]
+ 16#FCD5 [/noonmeeminitialarabic]
+ 16#256C [/SF440000]
+ 16#2310 [/revlogicalnot /logicalnotreversed]
+ 16#310 [/candrabinducmb]
+ 16#94B [/ovowelsigndeva]
+ 16#B4 [/acute]
+ 16#1E58 [/Rdotaccent]
+ 16#2493 [/twelveperiod]
+ 16#493 [/ghestrokecyrillic]
+ 16#2237 [/proportion]
+ 16#3109 [/dbopomofo]
+ 16#3BA [/kappa]
+ 16#328C [/ideographwatercircle]
+ 16#9F5 [/twonumeratorbengali]
+ 16#215E [/seveneighths]
+ 16#15E [/Scedilla]
+ 16#FF02 [/quotedblmonospace]
+ 16#53D [/Xeharmenian]
+ 16#91C [/jadeva]
+ 16#2085 [/fiveinferior]
+ 16#F7EE [/Icircumflexsmall]
+ 16#1E29 [/hcedilla]
+ 16#2464 [/fivecircle]
+ 16#464 [/Eiotifiedcyrillic]
+ 16#3336 [/hekutaarusquare]
+ 16#A9F [/ttagujarati]
+ 16#208 [/Idblgrave]
+ 16#2208 [/element]
+ 16#30DA [/pekatakana]
+ 16#5E7 [/qofhebrew /qof /afii57687]
+ 16#12F [/iogonek]
+ 16#F898 [/thanthakhatlowleftthai]
+ 16#3001 [/ideographiccomma]
+ 16#1ED3 [/ocircumflexgrave]
+ 16#FED3 [/fehinitialarabic]
+ 16#2B2 [/jsuperior]
+ 16#3184 [/kapyeounphieuphkorean]
+ 16#56 [/V]
+ 16#F7BF [/questiondownsmall]
+ 16#691 [/rreharabic /afii57513]
+ 16#FDFA [/sallallahoualayhewasallamarabic]
+ 16#435 [/iecyrillic /afii10070]
+ 16#A70 [/tippigurmukhi]
+ 16#1D9 [/Udieresiscaron]
+ 16#30AB [/kakatakana]
+ 16#FF7D [/sukatakanahalfwidth]
+ 16#F6E6 [/hyphensuperior]
+ 16#E4F [/fongmanthai]
+ 16#5B8 [/qamatswidehebrew /qamatsquarterhebrew /qamatsqatanwidehebrew /qamatsqatanquarterhebrew /qamatsqatannarrowhebrew /qamatsqatanhebrew /qamatsnarrowhebrew /qamatshebrew /qamatsde /qamats33 /qamats29 /qamats27 /qamats1c /qamats1a /qamats10 /qamats /afii57797]
+ 16#322E [/ideographicmetalparen]
+ 16#997 [/gabengali]
+ 16#100 [/Amacron]
+ 16#FEA4 [/hahmedialarabic]
+ 16#1EA4 [/Acircumflexacute]
+ 16#4DF [/zedieresiscyrillic]
+ 16#24DF [/pcircle]
+ 16#33B1 [/nssquare]
+ 16#FC48 [/meemmeemisolatedarabic]
+ 16#2283 [/superset /propersuperset]
+ 16#283 [/esh]
+ 16#3155 [/yeokorean]
+ 16#27 [/quotesingle]
+ 16#662 [/twoarabic /twohackarabic /afii57394]
+ 16#2662 [/diamondsuitwhite]
+ 16#406 [/afii10055 /Icyrillic]
+ 16#A41 [/umatragurmukhi]
+ 16#1AA [/eshreversedloop]
+ 16#307C [/bohiragana]
+ 16#FF4E [/nmonospace]
+ 16#E20 [/phosamphaothai]
+ 16#589 [/periodarmenian]
+ 16#32D [/circumflexbelowcmb]
+ 16#968 [/twodeva]
+ 16#D1 [/Ntilde]
+ 16#1E75 [/utildebelow]
+ 16#24B0 [/uparen]
+ 16#4B0 [/Ustraightstrokecyrillic]
+ 16#3382 [/muasquare]
+ 16#AEB [/fivegujarati]
+ 16#254 [/oopen]
+ 16#3126 [/erbopomofo]
+ 16#F761 [/Asmall]
+ 16#633 [/seenarabic /afii57427]
+ 16#FB40 [/nundageshhebrew /nundagesh]
+ 16#32A9 [/ideographicmedicinecircle]
+ 16#217B [/twelveroman]
+ 16#17B [/Zdotaccent /Zdot]
+ 16#304D [/kihiragana]
+ 16#FF1F [/questionmonospace]
+ 16#55A [/apostrophearmenian]
+ 16#255A [/SF380000]
+ 16#939 [/hadeva]
+ 16#20A2 [/cruzeiro]
+ 16#A2 [/cent]
+ 16#1E46 [/Ndotbelow]
+ 16#481 [/koppacyrillic]
+ 16#2481 [/fourteenparen]
+ 16#ABC [/nuktagujarati]
+ 16#2225 [/parallel]
+ 16#30F7 [/vakatakana]
+ 16#F732 [/twooldstyle]
+ 16#3A8 [/Psi]
+ 16#327A [/phieuphacirclekorean]
+ 16#9E3 [/llvocalicvowelsignbengali]
+ 16#14C [/Omacron]
+ 16#301E [/quotedblprime]
+ 16#FEF0 [/alefmaksurafinalarabic]
+ 16#1EF0 [/Uhorndotbelow]
+ 16#FC94 [/yehnoonfinalarabic]
+ 16#22CF [/curlyand]
+ 16#2CF [/acutelowmod]
+ 16#90A [/uudeva]
+ 16#73 [/s]
+ 16#1E17 [/emacronacute]
+ 16#452 [/djecyrillic /afii10099]
+ 16#A8D [/ecandragujarati]
+ 16#30C8 [/tokatakana]
+ 16#FF9A [/rekatakanahalfwidth]
+ 16#5D5 [/vavhebrew /vav /afii57669]
+ 16#FD3E [/parenleftaltonearabic]
+ 16#11D [/gcircumflex]
+ 16#F886 [/saraiileftthai]
+ 16#1EC1 [/ecircumflexgrave]
+ 16#33CE [/squarekmcapital]
+ 16#2A0 [/qhook]
+ 16#3172 [/pieupkiyeokkorean]
+ 16#2044 [/fraction]
+ 16#44 [/D]
+ 16#2423 [/blank]
+ 16#423 [/afii10037 /Ucyrillic]
+ 16#A5E [/fagurmukhi]
+ 16#1C7 [/LJ]
+ 16#FF6B [/osmallkatakanahalfwidth]
+ 16#F6D4 [/cyrbreve]
+ 16#25A6 [/squareorthogonalcrosshatchfill]
+ 16#5A6 [/merkhakefulalefthebrew /merkhakefulahebrew]
+ 16#321C [/cieucuparenkorean]
+ 16#985 [/abengali]
+ 16#EE [/icircumflex]
+ 16#1E92 [/Zdotbelow]
+ 16#FE92 [/behmedialarabic]
+ 16#24CD [/Xcircle]
+ 16#339F [/mmsquaredsquare]
+ 16#271 [/mhook]
+ 16#2271 [/notgreaternorequal]
+ 16#3143 [/ssangpieupkorean]
+ 16#2015 [/horizontalbar /afii00208]
+ 16#15 [/controlNAK]
+ 16#650 [/kasraarabic /afii57456]
+ 16#A2F [/yagurmukhi]
+ 16#2198 [/arrowdownright]
+ 16#198 [/Khook]
+ 16#306A [/nahiragana]
+ 16#FF3C [/backslashmonospace]
+ 16#E0E [/dochadathai]
+ 16#577 [/shaarmenian]
+ 16#31B [/horncmb]
+ 16#BF [/questiondown]
+ 16#1E63 [/sdotbelow]
+ 16#FE63 [/hyphensmall]
+ 16#249E [/cparen]
+ 16#49E [/Kastrokecyrillic]
+ 16#3114 [/chbopomofo]
+ 16#FFE6 [/wonmonospace]
+ 16#621 [/hamzalowarabic /hamzaarabic /afii57409]
+ 16#3C5 [/upsilon]
+ 16#FB2E [/alefpatahhebrew]
+ 16#169 [/utilde]
+ 16#2169 [/Tenroman]
+ 16#FF0D [/hyphenmonospace]
+ 16#548 [/Voarmenian]
+ 16#927 [/dhadeva]
+ 16#F7F9 [/Ugravesmall]
+ 16#FE34 [/wavyunderscorevertical]
+ 16#1E34 [/Klinebelow]
+ 16#246F [/sixteencircle]
+ 16#46F [/ksicyrillic]
+ 16#AAA [/pagujarati]
+ 16#213 [/rinvertedbreve]
+ 16#2213 [/minusplus]
+ 16#30E5 [/yusmallkatakana]
+ 16#5F2 [/yodyodhebrew /afii57718]
+ 16#396 [/Zeta]
+ 16#3268 [/cieuccirclekorean]
+ 16#13A [/lacute]
+ 16#300C [/cornerbracketleft]
+ 16#FEDE [/lamfinalarabic]
+ 16#1EDE [/Ohornhookabove]
+ 16#2BD [/commareversedmod /afii64937]
+ 16#61 [/a]
+ 16#1E05 [/bdotbelow]
+ 16#440 [/ercyrillic /afii10082]
+ 16#FBA9 [/hehmedialaltonearabic]
+ 16#21E4 [/arrowtableft]
+ 16#1E4 [/Gstroke]
+ 16#30B6 [/zakatakana]
+ 16#FF88 [/nekatakanahalfwidth]
+ 16#F6F1 [/rsuperior]
+ 16#E5A [/angkhankhuthai]
+ 16#25C3 [/whiteleftpointingsmalltriangle]
+ 16#5C3 [/sofpasuqhebrew /afii57658]
+ 16#3239 [/ideographicrepresentparen]
+ 16#9A2 [/ddhabengali]
+ 16#10B [/cdotaccent /cdot]
+ 16#1EAF [/abreveacute]
+ 16#4EA [/Obarreddieresiscyrillic]
+ 16#33BC [/muwsquare]
+ 16#28E [/yturned]
+ 16#3160 [/yukorean]
+ 16#2032 [/minute]
+ 16#32 [/two]
+ 16#266D [/musicflatsign]
+ 16#66D [/asteriskaltonearabic /asteriskarabic /afii63167]
+ 16#411 [/afii10018 /Becyrillic]
+ 16#A4C [/aumatragurmukhi]
+ 16#1B5 [/Zstroke]
+ 16#21B5 [/carriagereturn]
+ 16#3087 [/yosmallhiragana]
+ 16#FF59 [/ymonospace]
+ 16#E2B [/hohipthai]
+ 16#594 [/zaqefqatanhebrew]
+ 16#338 [/soliduslongoverlaycmb]
+ 16#320A [/khieukhparenkorean]
+ 16#DC [/Udieresis]
+ 16#1E80 [/Wgrave]
+ 16#4BB [/shhacyrillic]
+ 16#24BB [/Fcircle]
+ 16#338D [/mugsquare]
+ 16#25F [/jdotlessstroke]
+ 16#3131 [/kiyeokkorean]
+ 16#3 [/controlETX]
+ 16#F76C [/Lsmall]
+ 16#3E2 [/Sheicoptic]
+ 16#FB4B [/vavholamhebrew /vavholam /afii57700]
+ 16#A1D [/jhagurmukhi]
+ 16#186 [/Oopen]
+ 16#F8EF [/bracketleftex]
+ 16#3058 [/zihiragana]
+ 16#FF2A [/Jmonospace]
+ 16#565 [/echarmenian]
+ 16#2565 [/SF480000]
+ 16#309 [/hookcmb /hookabovecomb]
+ 16#944 [/rrvocalicvowelsigndeva]
+ 16#AD [/softhyphen /sfthyphen]
+ 16#1E51 [/omacrongrave]
+ 16#248C [/fiveperiod]
+ 16#AC7 [/evowelsigngujarati]
+ 16#260F [/whitetelephone]
+ 16#3B3 [/gamma]
+ 16#9EE [/eightbengali]
+ 16#157 [/rcommaaccent /rcedilla]
+ 16#3029 [/ninehangzhou]
+ 16#2792 [/ninecircleinversesansserif]
+ 16#FEFB [/lamalefisolatedarabic]
+ 16#536 [/Zaarmenian]
+ 16#FC9F [/behmeeminitialarabic]
+ 16#22DA [/lessequalorgreater]
+ 16#2DA [/ring]
+ 16#915 [/kadeva]
+ 16#207E [/parenrightsuperior]
+ 16#F7E7 [/Ccedillasmall]
+ 16#7E [/asciitilde]
+ 16#1E22 [/Hdotaccent]
+ 16#A98 [/ghagujarati]
+ 16#201 [/adblgrave]
+ 16#30D3 [/bikatakana]
+ 16#5E0 [/nunhebrew /nun /afii57680]
+ 16#384 [/tonos]
+ 16#9BF [/ivowelsignbengali]
+ 16#128 [/Itilde]
+ 16#F891 [/maitrilowrightthai]
+ 16#FECC [/ainmedialarabic]
+ 16#1ECC [/Odotbelow]
+ 16#317D [/siospieupkorean]
+ 16#4F [/O]
+ 16#F7B8 [/Cedillasmall]
+ 16#42E [/afii10048 /IUcyrillic]
+ 16#3300 [/apaatosquare]
+ 16#A69 [/threegurmukhi]
+ 16#1D2 [/ocaron]
+ 16#21D2 [/dblarrowright /arrowdblright]
+ 16#30A4 [/ikatakana]
+ 16#FF76 [/kakatakanahalfwidth]
+ 16#F6DF [/centinferior]
+ 16#E48 [/maiekthai]
+ 16#5B1 [/hatafsegolwidehebrew /hatafsegolquarterhebrew /hatafsegolnarrowhebrew /hatafsegolhebrew /hatafsegol30 /hatafsegol24 /hatafsegol17 /hatafsegol /afii57801]
+ 16#3227 [/eightideographicparen]
+ 16#990 [/aibengali]
+ 16#F9 [/ugrave]
+ 16#24D8 [/icircle]
+ 16#4D8 [/Schwacyrillic]
+ 16#33AA [/kpasquare]
+ 16#27C [/rlongleg]
+ 16#314E [/hieuhkorean]
+ 16#20 [/spacehackarabic /space]
+ 16#2020 [/dagger]
+ 16#FB68 [/ttehinitialarabic]
+ 16#1A3 [/oi]
+ 16#3075 [/huhiragana]
+ 16#FF47 [/gmonospace]
+ 16#E19 [/nonuthai]
+ 16#582 [/yiwnarmenian]
+ 16#2326 [/deleteright]
+ 16#961 [/llvocalicdeva]
+ 16#CA [/Ecircumflex]
+ 16#1E6E [/Tlinebelow]
+ 16#24A9 [/nparen]
+ 16#4A9 [/haabkhasiancyrillic]
+ 16#337B [/heiseierasquare]
+ 16#311F [/eibopomofo]
+ 16#62C [/jeemarabic /afii57420]
+ 16#3D0 [/betasymbolgreek]
+ 16#FB39 [/yoddageshhebrew /yoddagesh]
+ 16#2174 [/fiveroman]
+ 16#174 [/Wcircumflex]
+ 16#3046 [/uhiragana]
+ 16#FF18 [/eightmonospace]
+ 16#553 [/Piwrarmenian]
+ 16#2553 [/SF520000]
+ 16#932 [/ladeva]
+ 16#1E3F [/macute]
+ 16#FE3F [/anglebracketleftvertical]
+ 16#247A [/sevenparen]
+ 16#47A [/Omegaroundcyrillic]
+ 16#AB5 [/vagujarati]
+ 16#221E [/infinity]
+ 16#30F0 [/wikatakana]
+ 16#3A1 [/Rho]
+ 16#3273 [/pieupacirclekorean]
+ 16#9DC [/rrabengali]
+ 16#145 [/Ncommaaccent /Ncedilla]
+ 16#3017 [/whitelenticularbracketright]
+ 16#1EE9 [/uhornacute]
+ 16#2524 [/SF090000]
+ 16#FC8D [/noonnoonfinalarabic]
+ 16#2C8 [/verticallinemod]
+ 16#903 [/visargadeva]
+ 16#6C [/l]
+ 16#1E10 [/Dcedilla]
+ 16#44B [/yericyrillic /afii10093]
+ 16#A86 [/aagujarati]
+ 16#1EF [/ezhcaron]
+ 16#30C1 [/tikatakana]
+ 16#FF93 [/mokatakanahalfwidth]
+ 16#F6FC [/Ringsmall]
+ 16#25CE [/bullseye]
+ 16#9AD [/bhabengali]
+ 16#2116 [/numero /afii61352]
+ 16#116 [/Edotaccent /Edot]
+ 16#FEBA [/sadfinalarabic]
+ 16#1EBA [/Ehookabove]
+ 16#4F5 [/chedieresiscyrillic]
+ 16#FC5E [/shaddadammatanarabic]
+ 16#33C7 [/cosquare]
+ 16#2299 [/circleot]
+ 16#316B [/rieulpieupsioskorean]
+ 16#3D [/equal]
+ 16#41C [/afii10030 /Emcyrillic]
+ 16#21C0 [/harpoonrightbarbup]
+ 16#1C0 [/clickdental]
+ 16#3092 [/wohiragana]
+ 16#FF64 [/ideographiccommaleft]
+ 16#F6CD [/DieresisGrave]
+ 16#E36 [/sarauethai]
+ 16#59F [/qarneyparahebrew]
+ 16#343 [/koroniscmb]
+ 16#3215 [/ieungaparenkorean]
+ 16#E7 [/ccedilla]
+ 16#FE8B [/yehhamzaaboveinitialarabic]
+ 16#1E8B [/xdotaccent]
+ 16#24C6 [/Qcircle]
+ 16#3398 [/klsquare]
+ 16#226A [/muchless]
+ 16#313C [/rieulpieupkorean]
+ 16#E [/controlSO]
+ 16#200E [/afii299]
+ 16#F777 [/Wsmall]
+ 16#649 [/alefmaksuraarabic /afii57449]
+ 16#3ED [/shimacoptic]
+ 16#A28 [/nagurmukhi]
+ 16#191 [/Fhook]
+ 16#F8FA [/bracketrightex]
+ 16#3063 [/tusmallhiragana]
+ 16#2191 [/arrowup]
+ 16#FF35 [/Umonospace]
+ 16#E07 [/ngonguthai]
+ 16#570 [/hoarmenian]
+ 16#314 [/commareversedabovecmb]
+ 16#B8 [/cedilla]
+ 16#6F3 [/threepersian]
+ 16#FE5C [/bracerightsmall]
+ 16#1E5C [/Rdotbelowmacron]
+ 16#2497 [/sixteenperiod]
+ 16#497 [/zhedescendercyrillic]
+ 16#310D [/gbopomofo]
+ 16#3BE [/xi]
+ 16#3290 [/ideographsuncircle]
+ 16#9F9 [/sixteencurrencydenominatorbengali]
+ 16#162 [/Tcommaaccent /Tcedilla]
+ 16#2162 [/Threeroman]
+ 16#FF06 [/ampersandmonospace]
+ 16#541 [/Jaarmenian]
+ 16#2E5 [/tonebarextrahighmod]
+ 16#920 [/tthadeva]
+ 16#2089 [/nineinferior]
+ 16#F7F2 [/Ogravesmall]
+ 16#1E2D [/itildebelow]
+ 16#2468 [/ninecircle]
+ 16#468 [/Yuslittleiotifiedcyrillic]
+ 16#AA3 [/nnagujarati]
+ 16#220C [/notcontains]
+ 16#20C [/Odblgrave]
+ 16#30DE [/makatakana]
+ 16#38F [/Omegatonos]
+ 16#3261 [/nieuncirclekorean]
+ 16#133 [/ij]
+ 16#3005 [/ideographiciterationmark]
+ 16#FED7 [/qafinitialarabic]
+ 16#1ED7 [/ocircumflextilde]
+ 16#2B6 [/Rsmallinvertedsuperior]
+ 16#3188 [/yoyaekorean]
+ 16#5A [/Z]
+ 16#439 [/iishortcyrillic /afii10075]
+ 16#A74 [/ekonkargurmukhi]
+ 16#1DD [/eturned]
+ 16#30AF [/kukatakana]
+ 16#FF81 [/tikatakanahalfwidth]
+ 16#F6EA [/bsuperior]
+ 16#E53 [/threethai]
+ 16#25BC [/triagdn /blackdownpointingtriangle]
+ 16#5BC [/dageshhebrew /dagesh /afii57807]
+ 16#360 [/tildedoublecmb]
+ 16#3232 [/ideographichaveparen]
+ 16#99B [/chabengali]
+ 16#104 [/Aogonek]
+ 16#FEA8 [/khahmedialarabic]
+ 16#1EA8 [/Acircumflexhookabove]
+ 16#24E3 [/tcircle]
+ 16#4E3 [/imacroncyrillic]
+ 16#33B5 [/nvsquare]
+ 16#287 [/tturned]
+ 16#2287 [/supersetorequal /reflexsuperset]
+ 16#3159 [/waekorean]
+ 16#2B [/plus]
+ 16#666 [/sixhackarabic /sixarabic /afii57398]
+ 16#2666 [/diamond]
+ 16#40A [/afii10059 /Njecyrillic]
+ 16#1AE [/Tretroflexhook]
+ 16#3080 [/muhiragana]
+ 16#FF52 [/rmonospace]
+ 16#E24 [/ruthai]
+ 16#331 [/macronbelowcmb]
+ 16#3203 [/rieulparenkorean]
+ 16#96C [/sixdeva]
+ 16#D5 [/Otilde]
+ 16#1E79 [/utildeacute]
+ 16#24B4 [/yparen]
+ 16#4B4 [/Tetsecyrillic]
+ 16#3386 [/MBsquare]
+ 16#AEF [/ninegujarati]
+ 16#258 [/ereversed]
+ 16#F765 [/Esmall]
+ 16#637 [/taharabic /afii57431]
+ 16#FB44 [/pedageshhebrew /pedagesh]
+ 16#A16 [/khagurmukhi]
+ 16#17F [/slong /longs]
+ 16#F8E8 [/registersans]
+ 16#3051 [/kehiragana]
+ 16#FF23 [/Cmonospace]
+ 16#55E [/questionarmenian]
+ 16#255E [/SF360000]
+ 16#2302 [/house]
+ 16#302 [/circumflexcmb]
+ 16#93D [/avagrahadeva]
+ 16#A6 [/brokenbar]
+ 16#FE4A [/overlinecenterline]
+ 16#1E4A [/Ncircumflexbelow]
+ 16#485 [/dasiapneumatacyrilliccmb]
+ 16#2485 [/eighteenparen]
+ 16#3357 [/wattosquare]
+ 16#AC0 [/iivowelsigngujarati]
+ 16#2229 [/intersection]
+ 16#30FB [/dotkatakana]
+ 16#F736 [/sixoldstyle]
+ 16#3AC [/alphatonos]
+ 16#9E7 [/onebengali]
+ 16#150 [/Ohungarumlaut /Odblacute]
+ 16#3022 [/twohangzhou]
+ 16#278B [/twocircleinversesansserif]
+ 16#FEF4 [/yehmedialarabic /alefmaksuramedialarabic]
+ 16#1EF4 [/Ydotbelow]
+ 16#2D3 [/ringhalfleftcentered]
+ 16#90E [/eshortdeva]
+ 16#2077 [/sevensuperior]
+ 16#F7E0 [/Agravesmall]
+ 16#77 [/w]
+ 16#1E1B [/etildebelow]
+ 16#456 [/icyrillic /afii10103]
+ 16#A91 [/ocandragujarati]
+ 16#1FA [/Aringacute]
+ 16#30CC [/nukatakana]
+ 16#FF9E [/voicedmarkkanahalfwidth]
+ 16#5D9 [/yodhebrew /yod /afii57673]
+ 16#25D9 [/whitecircleinverse /invcircle]
+ 16#9B8 [/sabengali]
+ 16#2121 [/telephone]
+ 16#F88A [/maiekupperleftthai]
+ 16#121 [/gdotaccent /gdot]
+ 16#1EC5 [/ecircumflextilde]
+ 16#2500 [/SF100000]
+ 16#33D2 [/squarelog]
+ 16#22A4 [/tackdown]
+ 16#2A4 [/dezh]
+ 16#3176 [/pieupcieuckorean]
+ 16#48 [/H]
+ 16#427 [/afii10041 /Checyrillic]
+ 16#1CB [/Nj]
+ 16#309D [/iterationhiragana]
+ 16#FF6F [/tusmallkatakanahalfwidth]
+ 16#F6D8 [/dieresisgrave]
+ 16#E41 [/saraaethai]
+ 16#5AA [/yerahbenyomolefthebrew /yerahbenyomohebrew]
+ 16#25AA [/blacksmallsquare /H18543]
+ 16#3220 [/oneideographicparen]
+ 16#989 [/ubengali]
+ 16#F2 [/ograve]
+ 16#FE96 [/tehfinalarabic]
+ 16#1E96 [/hlinebelow]
+ 16#4D1 [/abrevecyrillic]
+ 16#24D1 [/bcircle]
+ 16#33A3 [/mmcubedsquare]
+ 16#275 [/obarred]
+ 16#3147 [/ieungkorean]
+ 16#19 [/controlEM]
+ 16#2019 [/quoteright]
+ 16#19C [/Mturned]
+ 16#306E [/nohiragana]
+ 16#FF40 [/gravemonospace]
+ 16#E12 [/thophuthaothai]
+ 16#57B [/jheharmenian]
+ 16#31F [/plusbelowcmb]
+ 16#95A [/ghhadeva]
+ 16#C3 [/Atilde]
+ 16#1E67 [/scarondotaccent]
+ 16#24A2 [/gparen]
+ 16#FC0B [/tehjeemisolatedarabic]
+ 16#4A2 [/Endescendercyrillic]
+ 16#3118 [/cbopomofo]
+ 16#625 [/afii57413 /alefhamzabelowarabic]
+ 16#3C9 [/omega]
+ 16#FB32 [/gimeldagesh /gimeldageshhebrew]
+ 16#16D [/ubreve]
+ 16#FF11 [/onemonospace]
+ 16#54C [/Raarmenian]
+ 16#92B [/phadeva]
+ 16#F7FD [/Yacutesmall]
+ 16#FE38 [/bracerightvertical]
+ 16#1E38 [/Ldotbelowmacron]
+ 16#2473 [/twentycircle]
+ 16#473 [/fitacyrillic /afii10195]
+ 16#AAE [/magujarati]
+ 16#217 [/uinvertedbreve]
+ 16#2217 [/asteriskmath]
+ 16#30E9 [/rakatakana]
+ 16#F724 [/dollaroldstyle]
+ 16#39A [/Kappa]
+ 16#FB03 [/ffi]
+ 16#326C [/phieuphcirclekorean]
+ 16#13E [/lcaron]
+ 16#3010 [/blacklenticularbracketleft]
+ 16#FEE2 [/meemfinalarabic]
+ 16#1EE2 [/Ohorndotbelow]
+ 16#2C1 [/glottalstopreversedmod]
+ 16#65 [/e]
+ 16#1E09 [/ccedillaacute]
+ 16#444 [/efcyrillic /afii10086]
+ 16#3316 [/kiromeetorusquare]
+ 16#21E8 [/arrowrightwhite]
+ 16#1E8 [/Kcaron]
+ 16#30BA [/zukatakana]
+ 16#FF8C [/hukatakanahalfwidth]
+ 16#F6F5 [/Caronsmall]
+ 16#25C7 [/whitediamond]
+ 16#323D [/ideographicenterpriseparen]
+ 16#9A6 [/dabengali]
+ 16#10F [/dcaron]
+ 16#FEB3 [/seeninitialarabic]
+ 16#1EB3 [/abrevehookabove]
+ 16#4EE [/Umacroncyrillic]
+ 16#33C0 [/kohmsquare]
+ 16#292 [/ezh]
+ 16#3164 [/hangulfiller]
+ 16#36 [/six]
+ 16#415 [/afii10022 /Iecyrillic]
+ 16#1B9 [/ezhreversed]
+ 16#308B [/ruhiragana]
+ 16#FF5D [/bracerightmonospace]
+ 16#F6C6 [/afii10192]
+ 16#E2F [/paiyannoithai]
+ 16#598 [/zarqahebrew]
+ 16#33C [/seagullbelowcmb]
+ 16#320E [/kiyeokaparenkorean]
+ 16#E0 [/agrave]
+ 16#FE84 [/alefhamzaabovefinalarabic]
+ 16#1E84 [/Wdieresis]
+ 16#4BF [/chedescenderabkhasiancyrillic]
+ 16#24BF [/Jcircle]
+ 16#3391 [/khzsquare]
+ 16#263 [/gammalatinsmall]
+ 16#3135 [/nieuncieuckorean]
+ 16#7 [/controlBEL]
+ 16#F770 [/Psmall]
+ 16#642 [/qafarabic /afii57442]
+ 16#2642 [/mars /male]
+ 16#3E6 [/Kheicoptic]
+ 16#FB4F [/aleflamedhebrew]
+ 16#A21 [/ddagurmukhi]
+ 16#18A [/Dhook]
+ 16#F8F3 [/braceleftbt]
+ 16#305C [/zehiragana]
+ 16#FF2E [/Nmonospace]
+ 16#569 [/toarmenian]
+ 16#FCD2 [/noonjeeminitialarabic]
+ 16#2569 [/SF400000]
+ 16#30D [/verticallineabovecmb]
+ 16#948 [/aivowelsigndeva]
+ 16#B1 [/plusminus]
+ 16#1E55 [/pacute]
+ 16#FE55 [/colonsmall]
+ 16#2490 [/nineperiod]
+ 16#490 [/afii10050 /Gheupturncyrillic]
+ 16#ACB [/ovowelsigngujarati]
+ 16#2234 [/therefore]
+ 16#3106 [/pbopomofo]
+ 16#3B7 [/eta]
+ 16#FB20 [/ayinaltonehebrew]
+ 16#9F2 [/rupeemarkbengali]
+ 16#15B [/sacute]
+ 16#215B [/oneeighth]
+ 16#FEFF [/zerowidthjoiner]
+ 16#53A [/Zhearmenian]
+ 16#2DE [/rhotichookmod]
+ 16#919 [/ngadeva]
+ 16#2082 [/twoinferior]
+ 16#F7EB [/Edieresissmall]
+ 16#1E26 [/Hdieresis]
+ 16#2461 [/twocircle]
+ 16#461 [/omegacyrillic]
+ 16#3333 [/huiitosquare]
+ 16#A9C [/jagujarati]
+ 16#205 [/edblgrave]
+ 16#2205 [/emptyset]
+ 16#30D7 [/pukatakana]
+ 16#5E4 [/pe /pehebrew /afii57684]
+ 16#25E4 [/blackupperlefttriangle]
+ 16#388 [/Epsilontonos]
+ 16#9C3 [/rvocalicvowelsignbengali]
+ 16#12C [/Ibreve]
+ 16#F895 [/maichattawalowleftthai]
+ 16#FED0 [/ghainmedialarabic]
+ 16#1ED0 [/Ocircumflexacute]
+ 16#33DD [/wbsquare]
+ 16#3181 [/yesieungkorean]
+ 16#53 [/S]
+ 16#432 [/vecyrillic /afii10067]
+ 16#A6D [/sevengurmukhi]
+ 16#1D6 [/udieresismacron]
+ 16#30A8 [/ekatakana]
+ 16#FF7A [/kokatakanahalfwidth]
+ 16#F6E3 [/dollarinferior]
+ 16#E4C [/thanthakhatthai]
+ 16#5B5 [/tsere /tserewidehebrew /tserequarterhebrew /tserenarrowhebrew /tserehebrew /tsere2b /tsere1e /tsere12 /afii57794]
+ 16#25B5 [/whiteuppointingsmalltriangle]
+ 16#322B [/ideographicfireparen]
+ 16#994 [/aubengali]
+ 16#FD [/yacute]
+ 16#1EA1 [/adotbelow]
+ 16#24DC [/mcircle]
+ 16#4DC [/Zhedieresiscyrillic]
+ 16#33AE [/radoverssquare]
+ 16#2280 [/notprecedes]
+ 16#3152 [/yaekorean]
+ 16#2024 [/onedotenleader]
+ 16#24 [/dollar]
+ 16#403 [/afii10052 /Gjecyrillic]
+ 16#FB6C [/vehinitialarabic]
+ 16#A3E [/aamatragurmukhi]
+ 16#1A7 [/Tonetwo]
+ 16#3079 [/behiragana]
+ 16#FF4B [/kmonospace]
+ 16#E1D [/fofathai]
+ 16#586 [/feharmenian]
+ 16#32A [/bridgebelowcmb]
+ 16#232A [/angleright]
+ 16#965 [/dbldanda]
+ 16#CE [/Icircumflex]
+ 16#1E72 [/Udieresisbelow]
+ 16#4AD [/tedescendercyrillic]
+ 16#24AD [/rparen]
+ 16#337F [/corporationsquare]
+ 16#AE8 [/twogujarati]
+ 16#2251 [/geometricallyequal]
+ 16#251 [/ascript]
+ 16#3123 [/enbopomofo]
+ 16#630 [/thalarabic /afii57424]
+ 16#3D4 [/Upsilondieresishooksymbolgreek]
+ 16#32A6 [/ideographiclowcircle]
+ 16#A0F [/eegurmukhi]
+ 16#2178 [/nineroman]
+ 16#178 [/Ydieresis]
+ 16#304A [/ohiragana]
+ 16#FF1C [/lessmonospace]
+ 16#2557 [/SF250000]
+ 16#936 [/shadeva]
+ 16#FE43 [/whitecornerbracketleftvertical]
+ 16#1E43 [/mdotbelow]
+ 16#247E [/elevenparen]
+ 16#47E [/Otcyrillic]
+ 16#AB9 [/hagujarati]
+ 16#30F4 [/vukatakana]
+ 16#3A5 [/Upsilon]
+ 16#3277 [/chieuchacirclekorean]
+ 16#9E0 [/rrvocalicbengali]
+ 16#149 [/quoterightn /napostrophe]
+ 16#1EED [/uhornhookabove]
+ 16#2CC [/verticallinelowmod]
+ 16#907 [/ideva]
+ 16#2070 [/zerosuperior]
+ 16#70 [/p]
+ 16#1E14 [/Emacrongrave]
+ 16#44F [/iacyrillic /afii10097]
+ 16#A8A [/uugujarati]
+ 16#1F3 [/dz]
+ 16#30C5 [/dukatakana]
+ 16#FF97 [/rakatakanahalfwidth]
+ 16#5D2 [/gimel /gimelhebrew /afii57666]
+ 16#11A [/Ecaron]
+ 16#FEBE [/dadfinalarabic]
+ 16#1EBE [/Ecircumflexacute]
+ 16#4F9 [/yerudieresiscyrillic]
+ 16#FC62 [/shaddakasraarabic]
+ 16#33CB [/HPsquare]
+ 16#29D [/jcrossedtail]
+ 16#316F [/mieumsioskorean]
+ 16#41 [/A]
+ 16#420 [/afii10034 /Ercyrillic]
+ 16#FB89 [/ddalfinalarabic]
+ 16#A5B [/zagurmukhi]
+ 16#21C4 [/arrowrightoverleft]
+ 16#1C4 [/DZcaron]
+ 16#FF68 [/ismallkatakanahalfwidth]
+ 16#F6D1 [/cyrBreve]
+ 16#E3A [/phinthuthai]
+ 16#25A3 [/squarewhitewithsmallblack]
+ 16#5A3 [/munahlefthebrew /munahhebrew]
+ 16#3219 [/thieuthaparenkorean]
+ 16#982 [/anusvarabengali]
+ 16#EB [/edieresis]
+ 16#1E8F [/ydotaccent]
+ 16#24CA [/Ucircle]
+ 16#339C [/squaremm]
+ 16#226E [/notless]
+ 16#26E [/lezh]
+ 16#3140 [/rieulhieuhkorean]
+ 16#2012 [/figuredash]
+ 16#12 [/controlDC2]
+ 16#64D [/kasratanarabic /afii57453]
+ 16#3F1 [/rhosymbolgreek]
+ 16#A2C [/bagurmukhi]
+ 16#195 [/hv]
+ 16#2195 [/arrowupdn]
+ 16#3067 [/dehiragana]
+ 16#F8FE [/bracerightbt]
+ 16#FF39 [/Ymonospace]
+ 16#E0B [/sosothai]
+ 16#574 [/menarmenian]
+ 16#FCDD [/yehmeeminitialarabic]
+ 16#2318 [/propellor]
+ 16#318 [/lefttackbelowcmb]
+ 16#953 [/gravedeva]
+ 16#BC [/onequarter]
+ 16#6F7 [/sevenpersian]
+ 16#1E60 [/Sdotaccent]
+ 16#249B [/twentyperiod]
+ 16#49B [/kadescendercyrillic]
+ 16#3111 [/qbopomofo]
+ 16#FFE3 [/macronmonospace]
+ 16#261E [/pointingindexrightwhite]
+ 16#3C2 [/sigmafinal /sigma1]
+ 16#FB2B [/shinsindothebrew /shinsindot /afii57695]
+ 16#3294 [/ideographnamecircle]
+ 16#166 [/Tbar]
+ 16#2166 [/Sevenroman]
+ 16#FF0A [/asteriskmonospace]
+ 16#545 [/Yiarmenian]
+ 16#2E9 [/tonebarextralowmod]
+ 16#924 [/tadeva]
+ 16#208D [/parenleftinferior]
+ 16#F7F6 [/Odieresissmall]
+ 16#1E31 [/kacute]
+ 16#FE31 [/emdashvertical]
+ 16#246C [/thirteencircle]
+ 16#46C [/Yusbigiotifiedcyrillic]
+ 16#AA7 [/dhagujarati]
+ 16#210 [/Rdblgrave]
+ 16#30E2 [/mokatakana]
+ 16#25EF [/largecircle]
+ 16#393 [/Gamma]
+ 16#3265 [/pieupcirclekorean]
+ 16#137 [/kcommaaccent /kcedilla]
+ 16#3009 [/anglebracketright]
+ 16#1EDB [/ohornacute]
+ 16#FEDB [/kafinitialarabic]
+ 16#2BA [/dblprimemod]
+ 16#318C [/yuikorean]
+ 16#5E [/asciicircum]
+ 16#1E02 [/Bdotaccent]
+ 16#43D [/encyrillic /afii10079]
+ 16#1E1 [/adotmacron]
+ 16#21E1 [/arrowdashup]
+ 16#30B3 [/kokatakana]
+ 16#FF85 [/nakatakanahalfwidth]
+ 16#F6EE [/lsuperior]
+ 16#E57 [/seventhai]
+ 16#5C0 [/paseqhebrew /afii57842]
+ 16#25C0 [/blackleftpointingtriangle]
+ 16#3236 [/ideographicfinancialparen]
+ 16#99F [/ttabengali]
+ 16#108 [/Ccircumflex]
+ 16#FEAC [/thalfinalarabic]
+ 16#1EAC [/Acircumflexdotbelow]
+ 16#24E7 [/xcircle]
+ 16#4E7 [/odieresiscyrillic]
+ 16#33B9 [/mvmegasquare]
+ 16#228B [/supersetnotequal]
+ 16#28B [/vhook]
+ 16#315D [/weokorean]
+ 16#2F [/slash]
+ 16#66A [/percentarabic /afii57381]
+ 16#266A [/musicalnote]
+ 16#40E [/afii10062 /Ushortcyrillic]
+ 16#1B2 [/Vhook]
+ 16#3084 [/yahiragana]
+ 16#FF56 [/vmonospace]
+ 16#F6BF [/LL]
+ 16#E28 [/sosalathai]
+ 16#2591 [/shadelight /ltshade]
+ 16#591 [/etnahtalefthebrew /etnahtahebrew /etnahtafoukhlefthebrew /etnahtafoukhhebrew]
+ 16#335 [/strokeshortoverlaycmb]
+ 16#3207 [/ieungparenkorean]
+ 16#970 [/abbreviationsigndeva]
+ 16#D9 [/Ugrave]
+ 16#1E7D [/vtilde]
+ 16#24B8 [/Ccircle]
+ 16#4B8 [/Cheverticalstrokecyrillic]
+ 16#338A [/pfsquare]
+ 16#25C [/eopenreversed]
+.dicttomark readonly def
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_btokn.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,330 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for binary tokens.
+% When this is run, systemdict is still writable,
+% but everything defined here goes into level2dict.
+
+% Define whether or not to allow writing dictionaries.
+% This is a non-standard feature!
+/WRITEDICTS //false def
+
+languagelevel 1 .setlanguagelevel
+level2dict begin
+
+% Initialization for the system name table.
+
+mark
+% 0
+ /abs /add /aload /anchorsearch /and
+ /arc /arcn /arct /arcto /array
+ /ashow /astore /awidthshow /begin /bind
+ /bitshift /ceiling /charpath /clear /cleartomark
+% 20
+ /clip /clippath /closepath /concat /concatmatrix
+ /copy /count /counttomark /currentcmykcolor /currentdash
+ /currentdict /currentfile /currentfont /currentgray /currentgstate
+ /currenthsbcolor /currentlinecap /currentlinejoin /currentlinewidth /currentmatrix
+% 40
+ /currentpoint /currentrgbcolor /currentshared /curveto /cvi
+ /cvlit /cvn /cvr /cvrs /cvs
+ /cvx /def /defineusername /dict /div
+ /dtransform /dup /end /eoclip /eofill
+% 60
+ /eoviewclip /eq /exch /exec /exit
+ /file /fill /findfont /flattenpath /floor
+ /flush /flushfile /for /forall /ge
+ /get /getinterval /grestore /gsave /gstate
+% 80
+ /gt /identmatrix /idiv /idtransform /if
+ /ifelse /image /imagemask /index /ineofill
+ /infill /initviewclip /inueofill /inufill /invertmatrix
+ /itransform /known /le /length /lineto
+% 100
+ /load /loop /lt /makefont /matrix
+ /maxlength /mod /moveto /mul /ne
+ /neg /newpath /not /null /or
+ /pathbbox /pathforall /pop /print /printobject
+% 120
+ /put /putinterval /rcurveto /read /readhexstring
+ /readline /readstring /rectclip /rectfill /rectstroke
+ /rectviewclip /repeat /restore /rlineto /rmoveto
+ /roll /rotate /round /save /scale
+% 140
+ /scalefont /search /selectfont /setbbox /setcachedevice
+ /setcachedevice2 /setcharwidth /setcmykcolor /setdash /setfont
+ /setgray /setgstate /sethsbcolor /setlinecap /setlinejoin
+ /setlinewidth /setmatrix /setrgbcolor /setshared /shareddict
+% 160
+ /show /showpage /stop /stopped /store
+ /string /stringwidth /stroke /strokepath /sub
+ /systemdict /token /transform /translate /truncate
+ /type /uappend /ucache /ueofill /ufill
+% 180
+ /undef /upath /userdict /ustroke /viewclip
+ /viewclippath /where /widthshow /write /writehexstring
+ /writeobject /writestring /wtranslation /xor /xshow
+ /xyshow /yshow /FontDirectory /SharedFontDirectory /Courier
+% 200
+ /Courier-Bold /Courier-BoldOblique /Courier-Oblique /Helvetica /Helvetica-Bold
+ /Helvetica-BoldOblique /Helvetica-Oblique /Symbol /Times-Bold /Times-BoldItalic
+ /Times-Italic /Times-Roman /execuserobject /currentcolor /currentcolorspace
+ /currentglobal /execform /filter /findresource /globaldict
+% 220
+ /makepattern /setcolor /setcolorspace /setglobal /setpagedevice
+ /setpattern
+% pad to 256
+ counttomark 256 exch sub { 0 } repeat
+% 256
+ /= /== /ISOLatin1Encoding /StandardEncoding
+% 260
+ ([) cvn (]) cvn /atan /banddevice /bytesavailable
+ /cachestatus /closefile /colorimage /condition /copypage
+ /cos /countdictstack /countexecstack /cshow /currentblackgeneration
+ /currentcacheparams /currentcolorscreen /currentcolortransfer /currentcontext /currentflat
+% 280
+ /currenthalftone /currenthalftonephase /currentmiterlimit /currentobjectformat /currentpacking
+ /currentscreen /currentstrokeadjust /currenttransfer /currentundercolorremoval /defaultmatrix
+ /definefont /deletefile /detach /deviceinfo /dictstack
+ /echo /erasepage /errordict /execstack /executeonly
+% 300
+ /exp /false /filenameforall /fileposition /fork
+ /framedevice /grestoreall /handleerror /initclip /initgraphics
+ /initmatrix /instroke /inustroke /join /kshow
+ /ln /lock /log /mark /monitor
+% 320
+ /noaccess /notify /nulldevice /packedarray /quit
+ /rand /rcheck /readonly /realtime /renamefile
+ /renderbands /resetfile /reversepath /rootfont /rrand
+ /run /scheck /setblackgeneration /setcachelimit /setcacheparams
+% 340
+ /setcolorscreen /setcolortransfer /setfileposition /setflat /sethalftone
+ /sethalftonephase /setmiterlimit /setobjectformat /setpacking /setscreen
+ /setstrokeadjust /settransfer /setucacheparams /setundercolorremoval /sin
+ /sqrt /srand /stack /status /statusdict
+% 360
+ /true /ucachestatus /undefinefont /usertime /ustrokepath
+ /version /vmreclaim /vmstatus /wait /wcheck
+ /xcheck /yield /defineuserobject /undefineuserobject /UserObjects
+ /cleardictstack
+% 376
+ /A /B /C /D /E /F /G /H /I /J /K /L /M
+ /N /O /P /Q /R /S /T /U /V /W /X /Y /Z
+ /a /b /c /d /e /f /g /h /i /j /k /l /m
+ /n /o /p /q /r /s /t /u /v /w /x /y /z
+% 428
+ /setvmthreshold (<<) cvn
+ (>>) cvn /currentcolorrendering /currentdevparams /currentoverprint /currentpagedevice
+ /currentsystemparams /currentuserparams /defineresource /findencoding /gcheck
+% 440
+ /glyphshow /languagelevel /product /pstack /resourceforall
+ /resourcestatus /revision /serialnumber /setcolorrendering /setdevparams
+ /setoverprint /setsystemparams /setuserparams /startjob /undefineresource
+ /GlobalFontDirectory /ASCII85Decode /ASCII85Encode /ASCIIHexDecode /ASCIIHexEncode
+% 460
+ /CCITTFaxDecode /CCITTFaxEncode /DCTDecode /DCTEncode /LZWDecode
+ /LZWEncode /NullEncode /RunLengthDecode /RunLengthEncode /SubFileDecode
+ /CIEBasedA /CIEBasedABC /DeviceCMYK /DeviceGray /DeviceRGB
+ /Indexed /Pattern /Separation /CIEBasedDEF /CIEBasedDEFG
+% 480
+ /DeviceN
+% 481 -- end
+.packtomark .installsystemnames
+
+% Define printobject and writeobject.
+% These are mostly implemented in PostScript, so that we don't have to
+% worry about interrupts or callbacks when writing to the output file.
+
+% Define procedures for accumulating the space required to represent
+% an object in binary form. The procedures for composite objects (arrays
+% and dictionaries) leave different results on the stack:
+% <#refs> <#chars> <simple_obj> -proc- <#refs> <#chars>
+% <#refs> <#chars> <array|dict> -proc- <array|dict> <#refs> <#chars>
+% This is required so that .writeobjects can also accumulate the actual
+% list of composite objects to write in the binary object sequence.
+/cntdict mark
+ /integertype /pop load
+ /realtype 1 index
+ /marktype 1 index
+ /nulltype 1 index
+ /booleantype 1 index
+ /nametype { length add } bind
+ /stringtype 1 index
+ /arraytype //null
+ /dicttype //null
+.dicttomark def
+/.cntobj { % <<arguments and results as for procedures in cntdict>>
+ dup type //cntdict exch get exec
+} .bind def
+cntdict /arraytype {
+ dup dup length 5 -1 roll add 4 2 roll { .cntobj } forall
+} bind put
+cntdict /dicttype {
+ WRITEDICTS {
+ dup dup length 2 mul 5 -1 roll add 4 2 roll {
+ % We have to use .execn here, rather than simply rolling the
+ % value under the top elements, because key might involve arrays
+ % or dictionaries.
+ cvlit {.cntobj} exch 2 .execn .cntobj
+ } forall
+ } {
+ /writeobject .systemvar /typecheck signalerror
+ } ifelse
+} bind put
+
+/w2dict mark
+ /nametype { 2 copy .writecvs pop } bind
+ /stringtype 1 index
+.dicttomark def
+
+/.bosheader { % <top_length> <total_length> <string8> .bosheader
+ % <string4|8>
+ dup 0 currentobjectformat 127 add put % object format => BOS tag
+ 2 index 255 le 2 index 65531 le and {
+ % Use the short header format: tag toplen(1) totlen(2)
+ exch 4 add exch
+ 0 4 getinterval
+ dup 1 5 -1 roll put
+ } {
+ % Use the long header format: tag 0(1) toplen(2) totlen(4)
+ exch 8 add exch
+ 0 0 4 2 roll .bosobject exch pop exch pop % store with byte swapping
+ } ifelse % Stack: shortlen str
+ exch dup -8 bitshift exch 255 and % str hibyte lobyte
+ currentobjectformat 1 and 0 eq { % lsb first
+ exch
+ } if
+ 2 index 3 3 -1 roll put
+ 1 index 2 3 -1 roll put
+} .bind def
+
+/.writeobjects { % <file> <tag> <array> .writeobjects -
+ mark exch
+
+ % Count the space required for refs and strings.
+
+ dup length 0 3 -1 roll
+ % Stack: file tag -mark- #refs #chars array
+ dup 4 1 roll { .cntobj } forall
+
+ % Write the header.
+
+ % Stack: file tag -mark- array1 ... (array|dict)N #refs #chars
+ counttomark 3 add -2 roll 4 1 roll
+ % Stack: -mark- array1 ... (array|dict)N tag #refs #chars file
+ dup counttomark 1 sub index length
+ 4 index 3 bitshift 4 index add
+ (xxxxxxxx) .bosheader writestring
+
+ % Write the objects per se.
+
+ 3 1 roll pop
+ counttomark 1 sub index length 3 bitshift exch
+ 3 bitshift
+ % Stack: -mark- array1 ... (array|dict)N tag file ref# char#
+ counttomark 4 sub {
+ counttomark -1 roll dup 6 1 roll
+ % Stack: ... objN tag file ref# char# objN
+ dup type /dicttype eq { % can't be first object
+ { 5 1 roll (x\000xxxxxx) .bosobject
+ 3 index exch writestring
+ 4 -1 roll (x\000xxxxxx) .bosobject
+ 3 index exch writestring
+ } forall
+ } {
+ { (x\000xxxxxx) .bosobject
+ dup 1 6 index put
+ 3 index exch writestring
+ 4 -1 roll pop 0 4 1 roll % clear tag
+ } forall
+ } ifelse
+ } repeat
+
+ % Write the strings and names.
+
+ pop pop exch pop
+ % Stack: -mark- array1 ... array|dictN file
+ counttomark 1 sub {
+ counttomark -1 roll {
+ % The counting pass ensured that the keys and values
+ % of any dictionary must be writable objects.
+ % Hence, we are processing a dictionary iff
+ % the next-to-top stack element is not a file.
+ 1 index type /filetype ne {
+ exch 2 index exch dup type //w2dict exch .knownget
+ { exec } { pop } ifelse pop
+ } if
+ dup type //w2dict exch .knownget { exec } { pop } ifelse
+ } forall
+ } repeat
+
+ % Clean up.
+
+ % Stack: -mark- file
+ pop pop
+
+} .bind def
+
+/printobject { % <obj> <tag> printobject -
+ currentobjectformat 0 eq {
+ /printobject .systemvar /undefined signalerror
+ } if
+ (%stdout) (w) file 2 index 2 index .writeobject pop pop
+} odef
+/writeobject { % <file> <obj> <tag> writeobject -
+ currentobjectformat 0 eq {
+ /writeobject .systemvar /undefined signalerror
+ } if
+ 2 .argindex pop % check # of args
+ .writeobject
+} odef
+/.writeobject {
+ 3 copy exch
+ % We must allocate the array in local VM
+ % to avoid a possible invalidaccess.
+ .currentglobal //false .setglobal exch 1 array astore exch .setglobal
+ .writeobjects pop pop pop
+} .bind def
+
+% Implement binary error message output.
+/.objectprinttest { % <obj> .objectprinttest -
+ % This is a pseudo-operator so it will restore the stack
+ % if it gets an error.
+ mark 0 0 3 .argindex .cntobj cleartomark pop
+} bind odef
+/.printerror {
+ $error /binary get .languagelevel 2 ge and {
+ currentobjectformat 0 ne {
+ [ /Error $error /errorname get $error /command get
+ % Convert the object with cvs if it isn't printable.
+ dup { .objectprinttest } .internalstopped {
+ pop 100 string cvs
+ } if
+ //false ] 250 printobject
+ }
+ //.printerror % known to be a procedure
+ ifelse
+ }
+ //.printerror % known to be a procedure
+ ifelse
+} bind def
+
+currentdict /cntdict .undef
+currentdict /w2dict .undef
+
+% End of level2dict
+
+end
+.setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps
===================================================================
(Binary files differ)
Index: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps 2017-04-23 22:09:22 UTC (rev 43996)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps 2017-04-23 22:15:25 UTC (rev 43997)
Property changes on: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cet.ps
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/postscript
\ No newline at end of property
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cff.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,250 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Loader for CFF (compressed) fonts, including OpenType CFFs.
+% The following are not implemented yet:
+% Deleted entries in the Name Index
+% Embedded PostScript
+% Multiple Master fonts
+% Chameleon fonts
+% Synthetic fonts
+
+% ---------------- Font loading machinery ---------------- %
+
+% Augment the FONTPATH machinery so it recognizes OpenType CFF font sets.
+
+/.scanfontheaders where {
+ pop /.scanfontheaders [
+ .scanfontheaders aload pop (OTTO*)
+ ] def
+} if
+
+% Load a font file that might be an OpenType CFF font set.
+
+% <file> .loadfontfile -
+/.loadnonottofontfile /.loadfontfile load def
+/.loadfontfile {
+ dup (12345678) .peekstring pop (wOFFOTTO) eq
+ {
+ .init_wOFF_otto_font_file
+ //true //false
+ }{//true} ifelse
+
+ {
+ dup 4 string .peekstring pop (OTTO) eq
+ {
+ % If this is a font at all, it's an OpenType CFF font set.
+ .init_otto_font_file //true
+ }
+ { //false } ifelse
+ } if
+
+ { % Use a random FontSet resource name. ****** WRONG ******
+ realtime rand xor =string cvs exch //false //false
+ ReadData pop
+ } {
+ % Not a TrueType font.
+ .loadnonottofontfile
+ } ifelse
+} bind def
+
+% <file> .init_otto_font_file <file>
+/.init_otto_font_file {
+ /FontSetInit /ProcSet findresource begin
+ 2 dict begin
+ /f exch def /cff //null def
+ card32 pop card16 6 { next pop } repeat dup {
+ % Stack: numtables tablesleft
+ dup 0 eq {
+ pop pop /.loadottofontfile cvx /invalidfont signalerror
+ } if
+ f 4 string readstring pop (CFF ) eq { sub exit } if
+ f 12 string readstring pop pop 1 sub % skip to next table
+ } loop
+ % Stack: tablesread
+ card32 pop card32 card32
+ % Stack: tablesread start length
+ exch 3 -1 roll 1 add 16 mul 12 add sub
+ f exch subfilefilter flushfile % skip to start
+ f exch subfilefilter end
+} bind def
+
+% <file> .init_otto_font_file <file>
+/.init_wOFF_otto_font_file {
+ /FontSetInit /ProcSet findresource begin
+ 2 dict begin
+ /f exch def /cff //null def
+ 3 {card32 pop} repeat % (wOFF), (OTTO) and file length
+
+ card16
+ 30 { next pop } repeat
+ dup
+ {
+ % Stack: numtables tablesleft
+ dup 0 eq {
+ pop pop /.loadottofontfile cvx /invalidfont signalerror
+ } if
+ f 4 string readstring pop (CFF ) eq { sub exit } if
+ f 12 string readstring pop pop 1 sub % skip to next table
+ } loop
+ % Stack: tablesread
+ 4 { card32 } repeat
+ % Stack: tablesread start complen len checksum
+ pop
+ % Stack: tablesread start complen len
+ 4 -2 roll exch
+ % Stack: complen len start tablesread
+ 1 add 20 mul 44 add sub
+ % Stack: complen len offset
+ f exch subfilefilter flushfile % skip to start
+ % Stack: complen len
+ % the table can legally be uncompressed: complen == len
+ 1 index 1 index eq
+ { exch pop f exch subfilefilter}
+ { pop f exch subfilefilter /FlateDecode filter} ifelse
+ end
+} bind def
+20 dict begin
+
+% ------ Utilities ------ %
+
+/subfilefilter { % <file> <length> subfilefilter <filter>
+ % SubFileDecode interprets a length of 0 as infinite.
+ dup 0 le { pop pop () 0 } if () /SubFileDecode filter
+} bind def
+
+
+/advance { % <n> advance -
+ f cff eq { pos add /pos exch store } { pop } ifelse
+} bind def
+/next { % - next <byte>
+ f read {
+ 1 advance
+ CFFDEBUG { ( ) print dup = } if
+ } {
+ 0
+ CFFDEBUG { ( Out of range access, assuming 0) = } if
+ /pdfformaterror where {
+ pop
+ ( **** Warning: Out of range access to a CFF table, assuming 0.\n)
+ pdfformaterror
+ } if
+ } ifelse
+} bind def
+/next2 { % - next2 <byte1> <byte2>
+ f read {
+ f read {
+ 2 advance
+ CFFDEBUG { ( ) print 1 index =only (,) print dup = } if
+ } {
+ 1 advance
+ CFFDEBUG { ( ) print dup = } if
+ } ifelse
+ } if
+} bind def
+/nextstring { % <length> nextstring <string>
+ dup 0 eq {
+ pop ()
+ } {
+ string f exch readstring pop dup length advance
+ CFFDEBUG { ( ) print dup //== exec } if
+ } ifelse
+} bind def
+
+/card8 % - card8 <card8>
+ /next load
+def
+/card16 { % - card16 <card16>
+ next2 exch 8 bitshift add
+} bind def
+/card32 { % - card32 <card32>
+ card16 16 bitshift card16 add
+} bind def
+/offsetprocs [
+ /card8 load
+ /card16 load
+ { card8 16 bitshift card16 add } bind
+ /card32 load
+] readonly def
+/offsetproc { % <offsize> offsetproc <proc>
+ 1 sub //offsetprocs exch get
+} bind def
+/offset { % <offsize> offset <offset>
+ offsetproc exec
+} bind def
+/sid % - <sid> sid
+ /card16 load
+def
+
+% ------ Main program ------ %
+
+% We need to pass the file as a parameter for the sake of the PDF
+% interpreter. Also for the sake of PDF, a flag forces the font
+% to be defined as <resname> instead of the name embedded in the data.
+% This is needed for subsetted fonts; it is valid if the CFF
+% contains only a single font.
+% Finally, PDF interpreter may request creation of CIDFont out of an
+% ordinary CFF font.
+/StartData { % <resname> <nbytes> StartData -
+ currentfile exch subfilefilter //false //false ReadData pop
+} bind def
+/ReadData { % <resname> <file> <forceresname> <forcecid> ReadData <fontset>
+ % Initialize.
+
+ 30 dict begin
+ /forcecidfont exch def
+ /forceresname exch def
+ /cff exch def
+ /pos 0 def
+ /resname exch cvlit def
+ /DEBUG CFFDEBUG def % bring the binding closer
+ /StringCache 1 dict def % Private DICT may be reused.
+
+ forcecidfont
+ [ { cff 1024 string readstring not { exit } if } loop ]
+ .parsecff /fonts exch def
+
+ resname
+ mark fonts {
+ forceresname { exch pop resname exch } if
+ dup /CIDFontType known { % This is a CIDFont.
+ dup /CIDFontName 3 index put
+ 1 index exch /CIDFont defineresource
+ } { % This is a font.
+ dup /FontName 3 index put
+ dup /FontType 2 put
+ 1 index exch
+ definefont
+ } ifelse
+ } forall .dicttomark
+
+ end % temporary dict
+ end % FontSetInit ProcSet
+ /FontSet defineresource
+
+} bind def
+
+% ---------------- Resource category definition ---------------- %
+
+currentdict end readonly
+
+languagelevel exch 2 .setlanguagelevel
+
+/FontSet /Generic /Category findresource dup length dict .copydict
+/Category defineresource pop
+
+/FontSetInit exch /ProcSet defineresource pop
+
+.setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidcm.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,447 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Extending Font resource category with CIDFont-CMap fonts.
+
+languagelevel 2 .setlanguagelevel currentglobal //true setglobal
+
+% In the comments below, 'CSI' is an abbreviation/acronym for CIDSystemInfo.
+% We pre-scan resource files to retrieve the CSI from them.
+% First we define a hidden procset .prs_dict containing
+% necessary variables and procedures.
+% Then we redefine the old /Font category using this procset.
+
+% We maintain internal caches for the CSI values retrieved from
+% resource files. This supposes that document doesn't uninstall
+% resource files. To disable caching, set enable_cache to false.
+
+% We assume that names starting with '.prs' do not appear in resource files.
+% If this causes any problem, this prefix should be systematically changed
+% in this file. ('prs' is an abbreviation for 'prescan'.)
+
+25 dict begin
+
+% Define local variables :
+
+/.prs_dict currentdict def % self-reference (constant)
+/.prs_empty 0 dict readonly def
+/path_buffer 8192 string def
+/name_buffer 1024 string def
+/minus (-) 0 get def % character code constant for '-'
+/period (.) 0 get def % character code constant for '.'
+/CMap 10 dict def % CSI cache for CMaps
+/CIDFont 10 dict def % CSI cache for CIDFonts
+/enable_cache //true def % set false to disable cache
+
+% The folloving variables are just placeholders for ones to be set
+% dynamically :
+/.prsFile 0 def % file to prescan
+/.prsResult 0 def % result of prescan
+/.prsDictCount 0 def % save the dictionary stack depth
+
+% Define a dummy CIDInit procset to use while pre-scanning :
+
+/DummyCIDInit 15 dict
+begin
+
+ /begincmap {} def
+ /usecmap {pop} bind def
+
+ {stop} bind
+ [ /begincodespacerange /endcodespacerange /beginnotdefchar /endnotdefchar
+ /beginnotdefrange /endnotdefrange /begincidchar /endcidchar /begincidrange
+ /endcidrange /endcmap /usefont /StartData
+ ] {
+ 1 index def
+ } bind forall
+ pop
+
+currentdict end def
+
+% Define a local 'findresource' for pre-scanning :
+% (it returns the dummy CIDInit instead of the regular CIDInit ProcSet)
+
+/findresource { % <InstName> <CatName> findresource <inst>
+ 2 copy /ProcSet eq exch % /InstName /CatName bool /InstName
+ /CIDInit eq and {
+ pop pop //DummyCIDInit
+ } {
+ //findresource exec
+ } ifelse
+} bind def
+
+% Define procedures for pre-scanning :
+
+/StopIfCSIDefined { % - StopIfCSIDefined -
+
+ % Check if the dictionary stack contains a dictionary containing /CIDSystemInfo.
+ % The search is limited to the top .prsDictCount dictionaries in the stack.
+ % If so, retrieve the CSI, and execute stop to terminate the pre-scanning of the file.
+ % Otherwise, do nothing, so the pre-scanning continues.
+
+ countdictstack //.prs_dict /.prsDictCount get sub dup {
+ currentdict /CIDSystemInfo .knownget {
+ //.prs_dict exch /.prsResult exch put
+ stop
+ } if
+ currentdict exch end
+ } repeat {
+ begin
+ } repeat
+} bind def
+
+/PrescanFile { % - PrescanFile -
+ { //.prs_dict /.prsFile get token {
+ dup type % token type
+ dup /nametype eq exch /operatortype eq or {
+ dup xcheck {
+ exec
+ //StopIfCSIDefined exec
+ } if
+ } if
+ } {
+ stop
+ } ifelse
+ } loop
+} bind odef
+
+/GetCIDSystemInfoFromFile { % <file> GetCIDSystemInfoFromFile <CSI>
+
+ % This procedure reads resource files with 'token',
+ % executing the tokens untill /CIDSystemInfo appears to be defined.
+ % Normally the resource file creates a new dictionary on
+ % dictionary stack and defines /CIDSystemInfo in it.
+ %
+ % Returns an empty dictionary if no CIDSystemInfo is found.
+
+ RESMPDEBUG { (cidcm GetCIDSystemInfoFromFile beg) = } if
+ //.prs_dict begin
+ /.prsFile exch def
+ /.prsResult //.prs_empty def
+ /.prsDictCount countdictstack def
+ RESMPDEBUG { (cidcm GetCIDSystemInfoFromFile will PrescanFile.) = } if
+ { //PrescanFile } stopped pop
+ //.prs_dict /.prsResult get
+ end
+ RESMPDEBUG { (cidcm GetCIDSystemInfoFromFile end) = } if
+} bind def
+
+/GetCIDSystemInfo { % <InstName> <CatName> GetCIDSystemInfo <CSI>
+
+ % Retrieve CSI, using caches.
+
+ RESMPDEBUG { (cidcm GetCIDSystemInfo beg) = } if
+ /Category findresource begin % /InstName
+ dup ResourceStatus
+ {
+ pop 2 lt {
+ FindResource /CIDSystemInfo .knownget not {
+ //.prs_empty
+ } if % CSI
+ } { % /InstName
+ currentdict /GetCIDSystemInfoFromMap .knownget {
+ exec
+ } if
+ dup type /nametype eq
+ {
+ RESMPDEBUG { (cidcm GetCIDSystemInfo got a name.) = } if
+ //.prs_dict Category get % /InstName CSIs
+ dup 2 index known
+ //enable_cache and {
+ RESMPDEBUG { (cidcm GetCIDSystemInfo from cache.) = } if
+ exch get % CSI
+ } {
+ RESMPDEBUG { (cidcm GetCIDSystemInfo from file.) = } if
+ exch % CSIs /InstName
+ dup //path_buffer ResourceFileName % CSIs /InstName (path)
+ RESMPDEBUG { (cidcm GetCIDSystemInfo from file ) print dup = } if
+ currentglobal exch //true setglobal % CSIs /InstName g (path)
+ mark exch % CSIs /InstName g [ (path)
+ { (r) file } stopped {
+ cleartomark //.prs_empty
+ } {
+ exch 1 index % CSIs /InstName g file [ file
+ //GetCIDSystemInfoFromFile stopped {
+ cleartomark closefile //.prs_empty
+ } {
+ exch pop exch closefile
+ } ifelse
+ } ifelse % CSIs /InstName g CSI
+ exch setglobal % CSIs /InstName CSI
+ dup 4 1 roll % CSI CSIs /InstName CSI
+ put % CSI
+ RESMPDEBUG {
+ (cidcm GetCIDSystemInfo got from file : <<) print
+ dup { exch //=string cvs print ( ) print
+ //=string cvs print ( ) print
+ } forall
+ (>>) =
+ } if
+ } ifelse
+ } if
+ } ifelse
+ } {
+ pop //.prs_empty
+ } ifelse
+ end
+ RESMPDEBUG { (cidcm GetCIDSystemInfo end) = } if
+} bind def
+
+/IsCompatibleCSI { % <CSI-M> <CSI-F> IsCompatibleCSI <bool>
+
+ % The CSI in a CIDFont may be an array, a dict, or null.
+ % If it is an array, it must be of 1 element, which is a dict.
+ % In this case the dict is used for testing the compatibility.
+ % Two dicts are compatible iff they contain same /Ordering and /Registry.
+ % Identity CMap is compatible with any CIDFont.
+
+ exch % CSI-F CSI-M
+ { dup type /arraytype eq {
+ dup length 1 ne {
+ pop pop //false exit
+ } if
+ 0 get
+ } if % CSI-F CSI-M
+ dup type /dicttype ne {
+ pop pop //false exit
+ } if % CSI-F <<CSI-M>>
+ exch % <<CSI-M>> CSI-F
+ dup type /dicttype ne {
+ pop pop //false exit
+ } if % <<CSI-M>> <<CSI-F>>
+ dup /Ordering .knownget {
+ /Identity eq {
+ pop pop //true exit
+ } if
+ } if
+ //true % <<CSI-M>> <<CSI-F>> bEQ
+ [/Registry /Ordering] {
+ 2 index 1 index .knownget not {
+ 1234567
+ } if % <<CSI-M>> <<CSI-F>> bEQ /key vF
+ exch % <<CSI-M>> <<CSI-F>> bEQ vF /key
+ 4 index exch .knownget not {
+ 7654321
+ } if % <<CSI-M>> <<CSI-F>> bEQ vF vM
+ eq and % <<CSI-M>> <<CSI-F>> bEQ
+ } forall
+ exch pop exch pop % bEQ
+ exit
+ } loop
+} bind def
+
+/IsWellComposed { % <CIDFontName> <CMapName> IsWellComposed <bool>
+
+ % Check if the given CIDFont and CMap have compatible CSIs.
+ exch % /CMapName /CIDFontName
+ /CIDFont //GetCIDSystemInfo exec % /CMapName CSI-F
+ dup type /dicttype eq {
+ dup length 0 ne {
+ exch % CSI-F /CMapName
+ /CMap //GetCIDSystemInfo exec % CSI-F CSI-M
+ //IsCompatibleCSI exec % bool
+ } {
+ pop pop //false
+ } ifelse
+ } {
+ pop pop //false
+ } ifelse
+} bind def
+
+/IsComposedFont { % <FontName> IsComposedFont <CIDFontName> <CMapName> true
+ % <FontName> IsComposedFont false
+
+ % Check if the given font name may be decomposed into CIDFont.CMap, CIDFont-CMap
+ % or into CIDFont--CMap, such that CIDFont and CMap have compatible CSIs.
+ % FontName
+ dup type /stringtype ne {
+ //name_buffer cvs
+ } if % (FontName)
+ { dup length 2 sub -1 1 {
+ % (FontName) i
+ 2 copy get dup //minus eq exch //period eq or {
+ 2 copy 2 copy % (FontName) i (FontName) i (FontName) i
+ 2 copy get //minus eq {
+ 2 copy 1 sub get //minus eq {
+ 1 sub
+ } if
+ } if % (FontName) i (FontName) i (FontName) i0
+ 0 exch getinterval cvn % (FontName) i (FontName) i /CIDFontName
+ 3 1 roll % (FontName) i /CIDFontName (FontName) i
+ 1 add dup % (FontName) i /CIDFontName (FontName) i1 i1
+ 5 index length % (FontName) i /CIDFontName (FontName) i1 i1 l
+ exch sub getinterval cvn % (FontName) i /CIDFontName /CMapName
+ 2 copy //IsWellComposed exec { % (FontName) i /CIDFontName /CMapName
+ 4 2 roll pop pop % /CIDFontName /CMapName
+ stop
+ } if
+ pop pop pop
+ } {
+ pop
+ } ifelse % (FontName)
+ } for
+ pop
+ } stopped
+} bind def
+
+/ComposeName { % <CIDFont> <CMap> <scr> ComposeName <CIDFont-CMap>
+ dup dup 5 2 roll % (scr) (scr) /CIDFont /CMap (scr)
+ 3 2 roll exch cvs length dup % (scr) (scr) /CMap l0 l0
+ 4 -1 roll exch //minus put % (scr) /CMap l0
+ 1 add dup % (scr) /CMap l1 l1
+ 3 index dup length % (scr) /CMap l1 l1 (scr) L
+ 2 index sub % (scr) /CMap l1 l1 (scr) LT
+ 3 2 roll % (scr) /CMap l1 (scr) LT l1
+ exch getinterval % (scr) /CMap l1 (scrT)
+ 3 2 roll exch cvs length % (scr) l1 l2
+ add 0 exch getinterval % (CIDFont-CMap)
+} bind def
+
+% Redefine the /Font category with CIDFont-CMap construction :
+
+% The following code supposes that the following names are not
+% defined in the old /Font category dictionary :
+% /IsComposedFont, /IsWellComposed .
+
+/Font /Category findresource dup length dict copy begin
+
+/FindResource { % <InstName> FindResource <inst>
+ dup //ResourceStatus exec {
+ pop pop //FindResource exec
+ } {
+ dup //IsComposedFont exec { % /FontName /CIDFontName /CMapName
+ exch [ exch ] composefont % inst
+ } {
+ //FindResource exec
+ } ifelse
+ } ifelse
+} bind def
+
+/ResourceStatus { % <InstName> ResourceStatus <nStatus> <nSize> true
+ % <InstName> ResourceStatus false
+ dup //ResourceStatus exec {
+ 3 2 roll pop //true % nStatus nSize true
+ } {
+ //IsComposedFont exec { % /CIDFontName /CMapName
+ /CMap resourcestatus { % /CIDFontName nStatusM nSizeM
+ exch pop exch % nSizeM /CIDFontName
+ /CIDFont resourcestatus { % nSizeM nStatusF nSizeF
+ exch pop % nSizeF nSizeM
+ dup 0 ge {
+ exch dup 0 ge {
+ add
+ } {
+ exch pop
+ } ifelse
+ } {
+ pop
+ } ifelse % nSize
+ 2 exch //true % nStatus nSize true
+ } {
+ pop pop pop //false % work around buggy resource file
+ } ifelse
+ } {
+ pop pop pop //false % work around buggy resource file
+ } ifelse
+ } {
+ //false
+ } ifelse
+ } ifelse
+} bind def
+
+/ResourceForAll { % <template> <proc> <scratch> ResourceForAll -
+
+ % We suppose that the resourceforall procedure does not
+ % define or install new fonts, CMaps, and/or CIDFonts.
+
+ % First we create 3 temporary dictionaries to store temporary data
+ % about fonts, CMaps and CIDFonts.
+ % These dictionaries must be created dynamically, to allow for a possible
+ % recursive call to resourceforall from the resourceforall procedure.
+ currentglobal //false setglobal
+ 20 dict 20 dict 20 dict % (templ) proc (scr) g <<CIDFont>> <<CMap>> <<Fonts>>
+
+ % Store resource identifiers into local dictionaries
+ % A resource instance can have a key that is not a name or a string. In this
+ % case, resourceforall passes the key directly to proc instead of copying it
+ % into the scratch string. This case can arise only for a resource instance
+ % defined in virtual memory by a previous defineresource
+
+ % Discard non-string keys of CIDFont and CMap because <CIDFontName>-<CMapName>
+ % is only defined for names.
+
+ { /.DisableResourceOrdering pop % gs_resmp accesses this through execstack - don't remove !
+
+ 6 index [ 2 index {exch //null put} aload pop ] cvx bind 6 index //ResourceForAll exec
+
+ (*) [ 3 index {exch dup type /stringtype eq { cvn dup put } { pop pop } ifelse } aload pop
+ ] cvx bind 6 index /CMap resourceforall
+
+ (*) [ 4 index {exch dup type /stringtype eq { cvn dup put } { pop pop } ifelse } aload pop
+ ] cvx bind 6 index /CIDFont resourceforall
+
+ exit
+ } loop % This loop is a pattern for execstack_lookup - don't remove !
+ 4 -1 roll setglobal % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
+
+ %% Make the list of fonts in the form (/Name status) :
+
+ % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
+ dup {
+ pop dup
+ //ResourceStatus exec {
+ pop 2 index % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>> /Name nStatus <<Font>>
+ 3 1 roll put % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
+ } {
+ pop
+ } ifelse
+ } forall % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
+
+ %% Add CIDFont-CMap to it (filtering duplicates) :
+
+ 3 2 roll {
+ 3 index {
+ 3 1 roll % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap /CIDFont /CMap
+ 6 index //ComposeName exec % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap (Font)
+ dup 8 index .stringmatch {
+ cvn % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap /Font
+ dup 4 index exch known {
+ pop pop
+ } {
+ 2 index % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap /Font /CIDFont
+ 4 2 roll % (templ) proc (scr) <<CMap>> <<Font>> /Font /CIDFont /CIDFont /CMap
+ //IsWellComposed exec {
+ exch 2 index exch 2 put % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont
+ } {
+ exch pop
+ } ifelse
+ } ifelse
+ } {
+ pop pop
+ } ifelse
+ dup % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CIDFont
+ } forall
+ pop pop % (templ) proc (scr) <<CMap>> <<Font>>
+ } forall % (templ) proc (scr) <<CMap>> <<Font>>
+ exch pop % (templ) proc (scr) <<Font>>
+ 4 3 roll pop % proc (scr) <<Font>>
+
+ % Make the enumerator and apply it :
+ /MappedCategoryRedefiner /ProcSet findresource /MakeResourceEnumerator get exec exec
+} bind def
+
+currentdict end /Font exch /Category defineresource pop
+end
+setglobal .setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_ciddc.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,230 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define SubstCID, Decoding and CIDDecoding resource categories and related procsets.
+
+languagelevel 2 .setlanguagelevel
+currentglobal //true setglobal
+
+%----------------ParseDecoding procset----------------------------
+
+/ParseDecoding <<
+
+/Parse % <resource_name> <num_tokens> Parse -
+{ dict begin % /ResName
+ 0 % /ResName nCode
+ { currentfile token not {
+ exit
+ } if % /ResName nCode token
+ dup type /integertype eq { % /ResName nCode
+ exch pop
+ } {
+ 1 index def % /ResName nCode
+ } ifelse
+ } loop % /ResName nCode
+ pop % /ResName
+ currentdict end /Decoding % /ResName <<inst>> /Decoding
+ defineresource pop
+} bind
+
+>> /ProcSet defineresource pop
+
+%----------------Decoding category----------------------------
+
+/Generic /Category findresource dup length dict copy
+dup /InstanceType /dicttype put
+/Decoding exch /Category defineresource pop
+
+%----------------ParseCMap_Inverse procset----------------------------
+
+/ParseCMap_Inverse <<
+ /findresource { pop } bind
+ /defineresource { pop pop } bind
+ /dict {}
+ /def { pop pop } bind
+ /dup //null
+ /begin { pop } bind
+ /end {}
+ /currentdict //null
+ /CMapName //null
+ /usecmap { pop } bind
+ /begincmap {}
+ /endcmap {}
+ /begincodespacerange { pop mark } bind
+ /endcodespacerange { cleartomark } bind
+ /beginnotdefrange { pop mark } bind
+ /endnotdefrange { cleartomark } bind
+ /beginbfchar { pop mark } bind
+ /endbfchar { pop mark } bind
+ /beginbfrange { begincidrange }
+ /endbfrange { endcidrange }
+ /begincidchar { beginbfchar }
+ /endcidchar { endbfchar }
+ /begincidrange { pop mark } bind
+ /endcidrange { cleartomark } bind
+>> % Just keep it on stack for a while.
+
+% Now we define another dict for local binding, than merge it with the previous one :
+dup length 5 add dict begin
+
+ /.Ranges 40 dict def % Key = CID/256, value = array of 256 integer codes.
+ //.Ranges /CIDCount 0 put
+
+ /.StringToInt % <string> .StringToInt <integer>
+ { 0 exch { exch 8 bitshift add } forall
+ } bind def
+
+ /.SetCouple % <I> <b> .SetCouple -
+ { exch % b I
+ dup 256 idiv % b I I0
+ dup //.Ranges exch known not {
+ dup //.Ranges exch 256 array put
+ } if % b I I0
+ //.Ranges exch get % b I [Range]
+ exch 256 mod % b [Range] I1
+ 2 copy get % b [Range] I1 e
+ dup //null ne {
+ % We've got char code duplicates for same CID.
+ dup type /integertype eq {
+ 4 3 roll % [Range] I1 e b
+ 2 array astore put %
+ } {
+ dup length 1 add dup dup array dup % b [Range] I1 D l l D' D'
+ 3 2 roll 0 exch getinterval % b [Range] I1 D l D' D''
+ 4 3 roll exch copy pop % b [Range] I1 l D'
+ dup 3 2 roll 1 sub % b [Range] I1 D' D' l-1
+ 6 5 roll % [Range] I1 D' D' l-1 b
+ put put %
+ } ifelse
+ } {
+ pop 3 2 roll put %
+ } ifelse
+ } bind def
+
+ /endcidrange
+ { % Writes the inversed CMap to .Ranges
+ counttomark 3 idiv { % (b) (e) I
+ exch .StringToInt % (b) I e
+ 3 2 roll .StringToInt % I e b
+ % Note : this code does't handle multidimentional CID ranges.
+ % fixme : optimize below.
+ dup 3 2 roll exch sub 1 add % I b d
+ { 2 copy //.SetCouple exec % I b
+ 1 add exch 1 add exch
+ } repeat % I b
+ pop % I
+ dup //.Ranges /CIDCount get gt { % I
+ dup //.Ranges exch /CIDCount exch put
+ } if % I
+ pop
+ } repeat
+ pop % mark
+ } bind def
+
+ /.GetCIDDecoding % - .GetCIDDEcoding <dict>
+ { //.Ranges dup length dict copy
+ //.Ranges //.PurgeDict exec
+ //.Ranges /CIDCount 0 put
+ } bind def
+
+currentdict end
+exch copy % Merge the dicts - see above.
+/ProcSet defineresource pop
+
+%----------------CIDDecoding category----------------------------
+% Note that we put all instances in global memory - see FindResource.
+
+/Generic /Category findresource dup length dict copy
+begin
+ /Category /CIDDecoding def
+ /InstanceType /dicttype def
+
+ /.CMapChooser <<
+ % This lists CMaps to inverse and unite for creating a CIDDecoding.
+ % Choose by FAPIcidfmap.Registry concatenated with TrueType encoding ID.
+ % Font renderer must provide the glyph substitution internally.
+
+ /CNS1.Big5 [ /ETen-B5-H /ETen-B5-V ]
+ /CNS1.Unicode [ /UniCNS-UCS2-H /UniCNS-UCS2-V]
+ /CNS1.UCS-4 [ /UniCNS-UCS2-H /UniCNS-UCS2-V]
+ /GB1.GB2312 [ /GBK-EUC-H /GBK-EUC-V ]
+ /GB1.Unicode [ /UniGB-UCS2-H /UniGB-UCS2-V ]
+ /GB1.UCS-4 [ /UniGB-UCS2-H /UniGB-UCS2-V ]
+ /Japan1.ShiftJIS [ /90ms-RKSJ-H /90ms-RKSJ-V ]
+ /Japan1.Unicode [ /UniJIS-UCS2-H /UniJIS-UCS2-V]
+ /Japan1.UCS-4 [ /UniJIS-UCS2-H /UniJIS-UCS2-V]
+ /Japan2.ShiftJIS [ /90ms-RKSJ-H /90ms-RKSJ-V ]
+ /Japan2.Unicode [ /UniHojo-UCS2-H ]
+ /Japan2.UCS-4 [ /UniHojo-UCS2-H ]
+ /Korea1.Johab [ /KSC-Johab-V /KSC-Johab-H ]
+ /Korea1.Wansung [ /KSCms-UHC-V /KSCms-UHC-H ]
+ /Korea1.Unicode [ /UniKS-UCS2-H /UniKS-UCS2-V ]
+ /Identity.Symbol [ /Identity-H /Identity-V ]
+ /Unicode.Unicode [ /Identity-UTF16-H ]
+ /Identity.Unicode [ /Identity-UTF16-H ]
+ /Identity.UCS-4 [ /Identity-H /Identity-V ]
+ >> def
+
+ /.MakeInstance % <name> .MakeInstance <inst>
+ { dup % /Name /Name
+ //.CMapChooser exch .knownget not {
+ (Can't build /) print =string cvs print
+ ( /CIDDecoding resource. See gs_ciddc.ps . ) = flush
+ /findresource cvx /undefinedresource signalerror
+ } if % /Name [CMaps]
+ exch pop % [CMaps]
+ /CMap /Category findresource % [CMaps] <CMapCategory>
+ /ParseCMap_Inverse /ProcSet findresource % [CMaps] <CMapCategory> <PCI>
+ 3 2 roll { % <CMapCategory> <PCI> /CMapName
+ 3 2 roll begin % <PCI> /CMapName
+ dup .ResourceFile not {
+ (Can't find CMap ) print =string cvs print
+ ( building a CIDDecoding resource. ) = flush
+ /findresource cvx /undefinedresource signalerror
+ } if
+ currentdict end exch % <PCI> /CMapName <CMapCategory> file
+
+ 3 index begin
+ cvx exec % <PCI> /CMapName <CMapCategory>
+ end
+ exch pop exch % <CMapCategory> <PCI>
+ } forall
+ exch pop begin %
+ .GetCIDDecoding
+ end
+ } bind def
+
+ /FindResource % <name> FindResource <dict>
+ { currentglobal exch % bGlobal /InstName
+ //true setglobal
+ dup //.MakeInstance exec % bGlobal /InstName <Inst>
+ DefineResource % bGlobal <Inst>
+ exch setglobal % <Inst>
+ } bind def
+
+currentdict end
+/CIDDecoding exch /Category defineresource pop
+
+%----------------SubstCID category----------------------------
+
+/Generic /Category findresource dup length dict copy
+begin
+ /Category /SubstCID def
+ /InstanceType /dicttype def
+currentdict end
+/SubstCID exch /Category defineresource pop
+
+setglobal
+.setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfm.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,254 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Redefine CIDFont category with cidfmap .
+
+languagelevel 2 .setlanguagelevel
+
+4 dict begin
+/CategoryName /CIDFont def
+
+/MapFileName (cidfmap) def
+
+/IsMyRecord % <raw_record> -> <raw_record> bool
+{ % Only for client's needs.
+ dup type /stringtype eq exch
+ dup type /nametype eq 3 -1 roll or
+} bind def
+
+/RecordVirtualMethods 3 dict begin
+
+ /MakeInstance % <Name> <record> MakeInstance <Name> <Instance> <size>
+ { % We know that currentdict is the category.
+ /Substitute get dup type /stringtype eq
+ {
+ (r) file dup cvx exec closefile
+ dup
+ } if
+
+ FindResource % /Name <<CIDFont>>
+
+ dup length dict copy % /Name <<CIDFont>>
+ 1 index ResourceStatus pop exch pop % /Name <<CIDFont>> size
+ } bind def
+
+ /GetFilePath % <scratch> <Name> <record> GetFilePath <filepath>
+ { % We know that currentdict is the category.
+ exch pop
+ /Substitute get dup type /stringtype eq not
+ {
+ exch ResourceFileName
+ } if
+ } bind def
+
+ /GetSize % <Name> <record> GetSize <size>
+ { % We know that currentdict is the category.
+ dup /Substitute get dup type /stringtype eq
+ {
+ % The simplest solution is to instantiate the resource
+ pop //MakeInstance exec
+ 3 1 roll pop pop
+ }
+ {
+ exch pop
+ ResourceStatus {
+ exch pop exch pop
+ } {
+ /undefinedresource signalerror
+ } ifelse
+ }ifelse
+ } bind def
+
+ /GetCSI % <record> GetCSI null
+ % <record> GetCSI dict
+ { % We know that currentdict is the category.
+ RESMPDEBUG { (cidfm GetCSI beg ) = } if
+ dup /Substitute get dup type /stringtype eq
+ {
+ pop
+ dup /Name get exch //MakeInstance exec
+ pop exch pop
+ /CIDSystemInfo get
+ }
+ {
+ exch pop % /Name
+ GetCIDSystemInfoFromMap
+ } ifelse
+ RESMPDEBUG { (cidfm GetCSI end ) print dup = } if
+ } bind def
+
+ /IsActive % <record> IsActive <bool>
+ { pop //true
+ } bind def
+
+currentdict end def
+
+% This is the default definition of our fallback CIDFont
+/DefaultCIDFallBack
+<<
+ /Path
+ systemdict /CIDFSubstPath .knownget
+ {
+ (/) concatstrings
+ }
+ {
+ (CIDFSUBSTPATH) getenv
+ {
+ (/) concatstrings
+ }
+ {
+ currentsystemparams /GenericResourceDir get (CIDFSubst/) concatstrings
+ } ifelse
+ } ifelse
+
+ systemdict /CIDFSubstFont .knownget not
+ {
+ (CIDFSUBSTFONT) getenv not
+ {
+ (DroidSansFallback.ttf)
+ } if
+ } if
+ concatstrings
+ % The CSI data just has to be valid, the substition machinery will
+ % generally overwrite it with appropriate values for the missing font.
+ /CSI [(Identity) 0]
+ /RecordVirtualMethods //RecordVirtualMethods
+ /FileType /TrueType
+
+ (CIDFSUBSTFONTID) getenv
+ {
+ /SubfontID exch cvi
+ } if
+>> def
+
+/VerifyMap % <raw_map> VerifyMap -
+{
+ % Remove any mappings for which we cannot find the font file
+ dup
+ {
+ % if we have a name1->name2 mapping, follow the "trail",
+ % so if the name2 mapping is known in the .map dict, retrieve
+ % that map value and loop round until we either reach a map
+ % which references a TTF (i.e. a dictionary record) or we have
+ % a name not known in the .map, in which case we have to resort
+ % to the normal Postscript "resourcestatus".
+ {
+ dup type /nametype eq
+ {
+ dup 3 index exch .knownget
+ { exch pop }
+ {
+ /CIDFont resourcestatus
+ { pop pop pop }
+ { 2 index exch .undef }
+ ifelse
+ exit
+ } ifelse
+ }
+ {
+ dup type /dicttype eq
+ {
+ /Path .knownget
+ {
+ .libfile
+ {closefile pop}
+ {
+ {(r) file} .internalstopped
+ {pop pop 2 index exch .undef}
+ {closefile pop} ifelse
+ } ifelse
+ }
+ {2 index exch .undef}
+ ifelse
+ exit
+ } if
+ } ifelse
+ } loop
+ } forall
+
+ % This is where we insert the default fallback into the map
+ % checking first to see if there is a user specified alternative
+ dup /CIDFallBack known not{
+ //DefaultCIDFallBack dup /Path get status
+ {
+ pop pop pop pop
+ /CIDFallBack exch 2 index 3 1 roll put
+ }
+ {
+ pop
+ }ifelse
+ } if
+
+ % Checks for vicious substitution cycles.
+ dup length dict copy % <<map>>
+ dup length dict % <<map>> <<temp>>
+ { % Choose a random record :
+ //true 2 index { % <<map>> <<temp>> true /Name /Subs
+ 3 2 roll pop //false exit % <<map>> <<temp>> /Name /Subs false
+ } forall
+ { exit % <<map>> <<temp>>
+ } if % <<map>> <<temp>> /Name /Subs
+ % Move the substitution chain to <<temp>>, checking for a cycle :
+ 3 index 2 index undef % <<map>> <<temp>> /Name /Subs
+ exch 2 index exch 0 put % <<map>> <<temp>> /Subs
+ { //IsMyRecord exec not {
+ % Not a substitution, the chain terminates.
+ pop exit % <<map>> <<temp>>
+ } if % <<map>> <<temp>> /Subs
+ 1 index 1 index known {
+ (Vicious substitution cycle in map file with the entry ) print =string cvs print ( .) =
+ /VerifyMap cvx /undefinedresource signalerror
+ } if % <<map>> <<temp>> /Subs
+ 1 index 1 index 0 put
+ dup 3 index exch .knownget not { % <<map>> <<temp>> /Subs
+ % No more substitutions, the chain terminates.
+ pop exit % <<map>> <<temp>>
+ } if % <<map>> <<temp>> /Subs /Subs1
+ exch % <<map>> <<temp>> /Subs1 /Subs
+ 3 index exch undef % <<map>> <<temp>> /Subs1
+ } loop
+ % Not cycled, now purge the <<temp>> :
+ { % Choose a random record :
+ //true 1 index { % <<map>> <<temp>> true /Name /Subs
+ 3 2 roll pop //false exit % <<map>> <<temp>> /Name /Subs false
+ } forall
+ { exit % <<map>> <<temp>>
+ } if % <<map>> <<temp>> /Name /Subs
+ % Remove it :
+ pop 1 index exch undef % <<map>> <<temp>>
+ } loop
+ } loop
+ pop pop
+} bind def
+
+/PreprocessRecord % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
+{
+ //IsMyRecord exec {
+ 1 dict begin
+ /Substitute exch def
+ dup /Name exch def
+ /RecordVirtualMethods //RecordVirtualMethods def
+ currentdict end
+ //true
+ } {
+ //false
+ } ifelse
+} bind def
+
+currentdict end
+
+/MappedCategoryRedefiner /ProcSet findresource /Redefine get exec
+
+.setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidfn.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,413 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% ProcSet for implementing CIDFont and CIDMap resources.
+% When this is run, systemdict is still writable.
+
+% ---------------- Defining CIDFont resources ---------------- %
+
+% Define a CIDFont resource. This is the defineresource implementation for
+% the CIDFont resource category.
+
+/.checkfonttype { % <cidfont> <fonttype> .checkfonttype <cidfont> <new?>
+ 1 index /FID known {
+ 1 index /FontType get ne {
+ /definefont cvx /invalidfont signalerror
+ } if //false
+ } {
+ 1 index /FontType 3 -1 roll put //true
+ } ifelse
+} bind def
+
+/.cidfonttypes where { pop } { /.cidfonttypes 6 dict def } ifelse
+.cidfonttypes
+
+30 dict begin
+
+% The key in .cidfonttypes is the CIDFontType value;
+% the value is a procedure that takes a font name and the CIDFont dictionary
+% and replaces the latter with a real font.
+
+% ------ CIDFontType 0 (FontType 9) ------ %
+
+% We add the following entries to the CIDFont dictionary, in addition to
+% the ones documented by Adobe:
+% SubrCache - dictionary for caching Subr arrays
+% For CIDFonts where we read the data from disk incrementally:
+% GlyphData is 0 (arbitrary)
+% DataSource - a ReusableStreamDecode filter for the data
+% We also add a FID entry, and possibly a Subrs entry, to each element of
+% FDArray.
+
+dup 0 {
+ 9 .checkfonttype {
+ /CIDInit /ProcSet findresource begin
+ .completefont9
+ end
+ } if
+ 1 index exch .buildfont9 exch pop
+} put % Don't bind it here, because gs_fapi.ps redefines .buildfont9
+
+% Add entries to a new CIDFontType 0 font per documentation (FontMatrix)
+% or for .buildfont9 (FDArray.Private.Subrs).
+/.completefont9 { % <cidfont0> .completefont9 <cidfont0>
+ currentglobal 3 1 roll dup gcheck setglobal
+ dup /FontMatrix known {
+ dup /FDArray get {
+ dup /FontMatrix get 0 get 1000000 ge {
+ /FontMatrix matrix put % Bug 688517
+ } {
+ pop
+ } ifelse
+ } forall
+ } {
+ dup /FontMatrix [0.001 0 0 0.001 0 0] put
+ dup /FDArray get {
+ currentglobal exch dup gcheck setglobal
+ dup /FontMatrix get {1000 0 0 1000 0 0} matrix concatmatrix
+ /FontMatrix exch put
+ setglobal
+ } forall
+ } ifelse
+ dup /FDArray get {
+ % Read the Subrs if necessary.
+ dup /Private get dup /Subrs known not {
+ dup /SubrCount .knownget {
+ % Stack: font Private SubrCount
+ currentglobal 3 1 roll 1 index gcheck setglobal
+ array 1 index /Subrs 3 -1 roll put
+ % Stack: font global Private
+ 2 index begin begin .loadsubrs end end
+ setglobal
+ } {
+ pop
+ } ifelse readonly pop
+ } {
+ pop pop
+ } ifelse
+ } forall
+ 3 -1 roll setglobal
+} bind def
+
+% Read some Subrs for the current Type 1 subfont.
+% The subfont's Private dict is currentdict; the CIDFont itself is the
+% next dictionary on the stack.
+/.readsubrs { % <Subrs> <start> .readsubrs <Subrs>
+ 1 SubrCount 1 sub {
+ dup SDBytes mul SubrMapOffset add
+ dup SDBytes .readint exch SDBytes add SDBytes .readint
+ 1 index sub string ReadString 2 index 3 1 roll put
+ } for
+} bind def
+
+% Ensure that all the Subrs for the current Type 1 subfont are loaded.
+% The subfont's Private dict is currentdict; the CIDFont itself is the
+% next dictionary on the stack.
+/.loadsubrs {
+ Subrs length 0 ne {
+ SubrCache SubrMapOffset .knownget {
+ % We've already loaded some Subrs at this offset.
+ % Make sure we've got as many as we need.
+ dup length SubrCount lt {
+ % We need to load more.
+ SubrCount array exch 1 index copy length .readsubrs
+ SubrCache SubrMapOffset 2 index put
+ } if
+ } {
+ % We haven't loaded any Subrs at this offset yet.
+ SubrCount array 0 .readsubrs
+ SubrCache SubrMapOffset 2 index put
+ } ifelse
+ Subrs copy pop
+ } if
+} bind def
+
+% ------ CIDFontType 1 (FontType 10) ------ %
+
+dup 1 {
+ 10 .checkfonttype pop
+ 1 index exch .buildfont10 exch pop
+} put % Don't bind it here because gs_fapi.ps redefines .buildfont10
+
+% ------ CIDFontType 2 (FontType 11) ------ %
+
+dup 2 {
+ 11 .checkfonttype pop
+ 1 index exch .buildfont11 exch pop
+} put % Don't bind it here because gs_fapi.ps redefines .buildfont11
+
+pop % .cidfonttypes
+
+% ---------------- Reading CIDFontType 0 files ---------------- %
+
+/StartData { % <(Binary)|(Hex)> <datalength> StartData -
+ % (currentdict is CID font dict)
+ % If we're loading a resource file and the data format is
+ % binary, we can just save a pointer to the data and load it
+ % incrementally.
+ mark {
+ % Previous versions of this code made provisions for
+ % reading hex-encoded data incrementally. Since hex data
+ % doesn't seem to be used in practice, we no longer bother.
+ 2 index (Binary) ne { stop } if
+ currentfile .currentresourcefile ne { stop } if
+ % Hack: the pdfwrite driver relies on finalization to write
+ % out fonts. However, the font may be finalized after the
+ % resource file, in which case the resource file will be
+ % closed. So if the current output device is pdfwrite,
+ % don't use incremental loading.
+ /AllowIncrementalCFF /GetDeviceParam .special_op {
+ exch pop {stop}if
+ }if
+ currentfile fileposition
+ } .internalstopped {
+ % File is not positionable, or uses hex data.
+ % Load the data now.
+ cleartomark exch
+ currentfile exch
+ (Hex) eq { /ASCIIHexDecode filter } if
+ exch
+ % Stack: file length
+ dup 65400 le {
+ % readstring with a 0-length string causes a rangecheck,
+ % but a data length of 0 is allowed.
+ string dup () ne { 1 index exch readstring pop } if
+ } {
+ mark 3 1 roll {
+ % Stack: mark str ... file length
+ dup 0 eq { pop exit } if
+ dup 65400 .min dup string 3 index exch readstring pop
+ % Stack: mark str ... file length newstrlen newstr
+ 4 1 roll sub
+ } loop
+ counttomark 1 add 1 roll ]
+ } ifelse
+ /GlyphData exch def
+ dup currentfile eq { pop } { closefile } ifelse
+ } {
+ % File is positionable and binary, just save a pointer.
+ % Stack: (Binary) length -mark- pos
+ /GlyphData 0 def
+ exch pop 3 -1 roll pop exch
+ % Stack: pos length
+ /DataSource currentfile 2 index () .subfiledecode //true .reusablestream def
+ currentfile 3 1 roll add setfileposition
+ } ifelse
+ /SubrCache 10 dict def
+ CIDFontName currentdict /CIDFont defineresource pop
+ end % CID font dict
+ end % resource category dict
+} bind def
+
+% Some Adobe fonts include the line
+% /Setup /cid_Setup load def
+% This is apparently included only to prevent proper, conforming PostScript
+% interpreters (as opposed to ATM or a special Adobe font loader) from
+% loading the font, since Setup is not referenced anywhere else in the file.
+/cid_Setup { } def
+
+% ------ Generic ------ %
+
+% Read a string at a given offset in a "file" (binary file or
+% GlyphData in RAM).
+/ReadString { % <pos> <string> ReadString <string>
+ GlyphData 0 eq {
+ % Read from the file.
+ DataSource 3 -1 roll setfileposition
+ DataSource exch readstring pop
+ } {
+ % Read from a string or an array of strings.
+ GlyphData .stringsreadstring
+ } ifelse
+} bind def
+/.stringsreadstring % <pos> <string> <strings> .stringsreadstring
+ % <vmstring>
+{ dup type /stringtype eq
+ { 3 1 roll length getinterval
+ }
+ { { % Stack: pos string glyphdata
+ dup 0 get length dup 4 index gt { exit } if
+ 4 -1 roll exch sub 3 1 roll
+ dup length 1 sub 1 exch getinterval
+ }
+ loop
+ % Stack: pos string glyphdata glyphdata[0]length
+ % We know no request can span more than 2 strings.
+ 3 index 3 index length add 1 index le
+ { % Request fits in a single string: just return a substring.
+ pop 0 get 3 1 roll length getinterval
+ }
+ { % Request spans 2 strings. Copy the first part.
+ 1 index 0 get 4 index 3 -1 roll 1 index sub getinterval
+ 2 index copy
+ % Copy the second part.
+ % Stack: pos str glyphdata str1
+ length exch 1 get 0 3 index length
+ 3 index sub getinterval 2 index 3 1 roll putinterval
+ exch pop
+ }
+ ifelse
+ }
+ ifelse
+} bind def
+
+% Interpret a byte string as a (big-endian) integer.
+/.cvbsi % <bytes> .cvbsi <int>
+{ 0 exch { exch 8 bitshift add } forall
+} bind def
+
+% Read an integer from binary data.
+/.readint % <pos> <nbytes> .readint <int>
+{ string ReadString .cvbsi
+} bind def
+
+currentdict end
+
+% ---------------- Rendering ---------------- %
+
+% ------ CIDFontType 0 ------ %
+
+/.readglyphdata {
+ currentfont exch .type9mapcid
+ FDArray exch get exch
+} bind def
+
+% BuildGlyph procedure for CIDFontType 0.
+% The name %Type9BuildGlyph is known to the interpreter.
+/.cid0buildstring 10 string def
+(%Type9BuildGlyph) cvn { % <cidfont> <cid> %Type9BuildGlyph -
+ .currentglobal 3 1 roll 1 index gcheck .setglobal
+ 1 index begin
+ dup .readglyphdata dup //null eq {
+ % Substitute CID 0. **** WRONG ****
+ pop pop 0 .readglyphdata
+ } if
+ % Stack: cidfont cid subfont charstring
+ dup //null eq { pop pop pop pop } { %**** WRONG ****
+ 4 -1 roll pop
+ 3 1 roll exch dup 4 -1 roll 0 0 moveto
+ 3 index /FontType get 2 eq { .type2execchar } { .type1execchar } ifelse
+ } ifelse %**** WRONG ****
+ end
+ .setglobal
+} bind def
+
+% ------ CIDFontType 2 ------ %
+
+% BuildGlyph procedure for CIDFontType 2.
+% The name %Type11BuildGlyph is known to the interpreter.
+(%Type11BuildGlyph) cvn { % <cidfont> <cid> %Type11BuildGlyph -
+ % We must be prepared for out-of-range CIDs.
+ 2 copy { .type11mapcid } .internalstopped {
+ pop /CharStrings get /.notdef get
+ } if
+ % Stack: cidfont cid glyphindex
+ 1 index exch .type42execchar
+} bind def
+
+% ---------------- Define resources ---------------- %
+
+languagelevel exch 2 .setlanguagelevel
+
+% Define the CIDInit ProcSet resource.
+% The ProcSet dictionary is still on the stack.
+
+% We might have loaded CMap support already. However, Adobe's
+% protected font downloader defines a CIDInit ProcSet that will be
+% loaded from the filesystem later, so we must check specifically
+% for the ProcSet being defined in VM.
+/CIDInit /ProcSet 2 copy resourcestatus { pop 0 eq } { //false } ifelse {
+ pop pop findresource dup length 4 index length add dict .copydict
+ 4 -1 roll exch .copydict
+} {
+ 3 -1 roll
+} ifelse exch defineresource pop
+
+% Define the CIDFont resource category.
+% We break out .buildcidfont because it appears that at least for
+% Type 32 (CIDFontType 4) fonts, the font can be registered in the Font
+% category with only a CIDFontType and no FontType.
+/.buildcidfont { % <name> <fontdict> .buildcidfont
+ % <name> <cidfont>
+ systemdict /ProvideUnicode .knownget not { //false } if {
+ /FontEmulationProcs /ProcSet findresource
+ /ProvideUnicodeDecoding get exec
+ } if
+ dup /CIDFontType get //.cidfonttypes exch get exec
+} odef
+
+/CIDFont /Generic /Category findresource dup length dict .copydict
+dup /InstanceType /dicttype put
+dup /DefineResource {
+ dup /OrigFont known not {
+ dup dup /OrigFont exch .growput % CPSI does it. Adding just for CET 33_all.PS conformity.
+ } if
+ dup /PaintType known not {
+ dup /PaintType 0 .growput % CPSI does it. Adding just for CET 33_all.PS conformity.
+ } if
+ .buildcidfont
+ /Generic /Category findresource /DefineResource get exec
+} put
+% CIDFonts may be defined in CFF OpenType files.
+% Check for this here.
+/.loadcidfontresource {
+ dup .ResourceFile {
+ {.loadfont} .execasresource
+ } {
+ dup /undefinedresource signalerror
+ } ifelse
+} bind def
+dup /.LoadResource {
+ currentglobal {
+ .loadcidfontresource
+ } {
+ //true setglobal {.loadcidfontresource} stopped //false setglobal {stop} if
+ } ifelse
+} bind put
+
+/Category defineresource pop
+
+% Add the new FontType resources.
+
+9 1 11 { dup /FontType defineresource pop } for
+
+% Add the new FMapType resource.
+
+9 dup /FMapType defineresource pop
+
+% Define the CIDMap resource category.
+% These aren't documented, but it's clear what they are for:
+% to give names to CIDMaps for CIDFontType 2 fonts.
+
+/CIDMap /Generic /Category findresource dup length dict .copydict
+dup /.CheckResource {
+ % Allow a string, an array of strings, or (as of Adobe release 3011)
+ % a dictionary.
+ dup type dup dup /stringtype eq exch /dicttype eq or {
+ pop //true
+ } {
+ dup /arraytype eq exch /packedarraytype eq or {
+ //true exch { type /stringtype eq and } forall
+ } {
+ //false
+ } ifelse
+ } ifelse
+} bind put
+/Category defineresource pop
+
+.setlanguagelevel
+
+%% Replace 1 (gs_ciddc.ps)
+(gs_ciddc.ps) runlibfile
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cidtt.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,186 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Redefine CIDFont category with an emulation with True Type fonts.
+
+languagelevel 2 .setlanguagelevel
+
+15 dict begin % a temporary dictionary for local binding.
+
+%------------------Copy the FontEmulationProcs here : -------------------
+
+/FontEmulationProcs /ProcSet findresource {
+ def
+} forall
+
+currentdict /super.complete_instance currentdict /complete_instance get put
+
+%-------Auxiliary procedures for building CIDFontType 2 from TT file -----------
+
+/GenerateCIDMap % <font> GenerateCIDMap <font>
+{ begin
+ % Obtain the maximal CID :
+ % This implementation doesn't check whether glyphs really present.
+ Decoding /CIDCount get /CIDCount exch def
+ % Prepare the CIDMap structure :
+ /CIDMap [
+ CIDCount 22000 le {
+ CIDCount 2 mul string
+ } {
+ 44000 string
+ CIDCount 44000 gt {
+ % need three strings
+ 44000 string % 22000 2 mul string
+ CIDCount 44000 sub 2 mul string
+ } {
+ CIDCount 22000 sub 2 mul string
+ } ifelse
+ } ifelse
+ ] def
+ % Now fill it :
+ Decoding TT_cmap SubstNWP GDBytes CIDMap .fillCIDMap
+ currentdict end
+} bind def
+
+/GenerateIdentityCIDMap % <font> GenerateCIDMap <font>
+{ begin
+ /CIDMap [ 44000 string 44000 string 44000 string] def
+ CIDMap .fillIdentityCIDMap
+ currentdict end
+} bind def
+
+/load_sfnts % <FontDict> load_sfnts <FontDict>
+{ % Read the True Type file from the path /Path, and buld /sfnts,
+ % skipping glyf and loca.
+ dup /Path get % <font> (path)
+ QUIET not {
+ (Loading a TT font from ) print dup print
+ ( to emulate a CID font ) print 1 index /CIDFontName get =only ( ... ) print
+ } if
+ (r) file dup % <font> file file
+ 3 1 roll % file <font> file
+ 1 index /SubfontID .knownget not { 0 } if % file <font> file SubfontID
+ 2 index /FileType .knownget
+ {/WOFF eq}
+ {//false} ifelse
+ % It's not (currently) viable to load WOFF fonts "stripped", so we don't try
+ {.load_woff_for_cid exch copy exch pop}
+ {
+ .load_tt_font_stripped exch
+ copy % file <font>
+ QUIET not {
+ (Done.) =
+ } if
+ dup 3 1 roll % <font> file <font>
+ exch /File exch put % <font>
+ } ifelse
+ dup dup /CIDSystemInfo get /Ordering get (.) % <font> () ()
+ 2 index /Decoding get =string cvs % <font> () () ()
+ concatstrings concatstrings cvn /Decoding exch put % <font>
+ dup dup /CIDSystemInfo get /Ordering get (-WMode) % <font> <font> () ()
+ concatstrings cvn /SubstCID
+ 2 copy resourcestatus {
+ pop pop
+ findresource /subst_CID_on_WMode exch put % <font>
+ } {
+ pop pop pop
+ } ifelse
+ dup /Decoding get /Identity.Unicode eq {
+ //ChooseDecoding exec % <font>
+ //GenerateIdentityCIDMap exec % <font>
+ } {
+ //ChooseDecoding exec % <font>
+ //GenerateCIDMap exec % <font>
+ } ifelse
+} bind def
+
+%-----------TrueType-specific methods for category redefinition : -----------
+
+/RefinePath % <FontDict> RefinePath <FontDict>
+{ dup begin
+ Path .libfile {
+ dup .filename {
+ currentdict exch /Path exch put
+ } if
+ closefile
+ } {
+ (r) { file } .internalstopped
+ {
+ (Can't find the font file ) print =
+ /findfont cvx /undefinedfilename signalerror
+ }
+ {
+ dup .filename {
+ currentdict exch /Path exch put
+ } if
+ closefile
+ } ifelse
+ } ifelse
+ end
+} bind def
+
+/complete_instance % <font_name> <FontDict> <Options> complete_FAPI_Font <font_name> <FontDict>
+{ 1 index /CIDFontType 2 put % Other types are not emulated yet.
+ //super.complete_instance exec
+ //RefinePath exec
+ //load_sfnts exec
+} bind def
+
+/ValidFileTypes
+<<
+ /TrueType 0
+ /WOFF 0
+>> def
+
+/IsMyRecord % <raw_record> -> <raw_record> bool
+{
+ dup type /dicttype eq { dup /FileType .knownget { //ValidFileTypes exch known } { //false } ifelse } { //false } ifelse
+} bind def
+
+currentdict /ValidFileTypes undef
+
+/IsActive % <record> IsActive <bool>
+{ pop //true
+} bind def
+
+/CIDFontRecordVirtualMethods //RecordVirtualMethodsStub dup length 3 add dict copy begin
+ /GetCSI //TranslateCSI def
+ /IsActive //IsActive def
+ /MakeInstance % <Name> <record> MakeInstance <Name> <Instance> <size>
+ { currentglobal 3 1 roll //true setglobal
+ //CIDFontOptions //complete_instance exec
+ 2 copy //GetSize exec
+ 4 3 roll setglobal
+ } bind def
+currentdict end def
+
+% Redefine the /CIDFont category :
+4 dict begin
+ /CategoryName /CIDFont def
+ /IsMapFileOptional //true def
+ /VerifyMap { pop } bind def
+ /PreprocessRecord % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
+ { //IsMyRecord exec dup {
+ pop dup /RecordVirtualMethods //CIDFontRecordVirtualMethods put
+ //true
+ } if
+ } bind def
+currentdict end
+
+/MappedCategoryRedefiner /ProcSet findresource /Redefine get exec
+
+end % the temporary dictionary for local binding.
+
+.setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cmap.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,549 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% ProcSet for implementing CMap resources.
+% When this is run, systemdict is still writable.
+
+% NOTE: Rearranged fonts are not implemented yet.
+
+[
+ /CMERGE_DEBUG
+ /USE_CIDCHAR_AS_RANGE
+] {dup where {pop pop} { currentdict exch //false def pop } ifelse} forall
+
+% ---------------- Public operators ---------------- %
+
+/.rewriteTempMapsNotDef {
+ %
+ % Before building .CodeMapData from .TempMaps,
+ % we need to replace dst type codes in the notdef map with the value 3,
+ % which corresponds to CODE_VALUE_NOTDEF, see gxfcmap.h .
+ %
+ CMAPDEBUG { (rewriting TempMapsNotDef\n) print flush } if
+ .TempMaps 2 get
+ dup length 0 gt {
+ 0 get
+ CMAPDEBUG { (...original...\n) print flush } if
+ 1 5 2 index length 1 sub {
+ { 1 index exch get 2 3 put } stopped
+ { CMAPDEBUG { (cannot rewrite\n) print flush } if }
+ { CMAPDEBUG { (rewrite\n) print flush } if } ifelse
+ } for
+ } if
+ pop
+ CMAPDEBUG { (...FINISHED...\n) print } if
+} bind def
+
+/.composefontdict { % <name> <cmap|cmapname> <fonts> composefont <name> <font_dict>
+ 10 dict begin
+ /CMap 2 index dup type /dicttype ne { /CMap findresource } if def
+ /FDepVector 1 index cvlit def % temporarily
+ /Encoding [ 0 1 FDepVector length 1 sub { } for ] def
+ /FontInfo 1 dict def % for .processToUnicode in pdf_font.ps .
+ /FDepVector [ 0 1 FDepVector length 1 sub {
+ % Stack: name cmap[name] fonts /FDepVector [ fonts... i
+ FDepVector 1 index get
+ dup type /dicttype ne {
+ dup /CIDFont resourcestatus {
+ pop pop /CIDFont
+ } {
+ /Font
+ } ifelse findresource
+ } if
+ exch CMap /FontMatrices get dup length 2 index gt {
+ exch get dup //null eq { pop } { makefont } ifelse
+ } {
+ pop pop
+ } ifelse
+ } for ] readonly def
+ /FMapType 9 def
+ /FontMatrix matrix def
+ /FontName 3 index def
+ CMap /WMode .knownget { /WMode exch def } if
+ /FontType 0 def
+ pop pop currentdict end
+} bind odef
+
+% composefont doesn't appear in CMap files -- it's documented in
+% the "PostScript Language Reference Manual Supplement".
+/composefont { % <name> <cmap|cmapname> <fonts> composefont <font>
+ .composefontdict /Font defineresource
+} bind def
+
+% ---------------- CMap operators ---------------- %
+
+40 dict begin
+
+% Our internal .CodeMapData structure closely mirrors the structures
+% defined in gxfcmap.h (q.v.). () indicate a string, [] indicate an array,
+% ? indicates a Boolean, # indicates an integer, {} for grouping.
+% [[[(first) (last) ...]+] % code space ranges
+% [[(prefix) (key_size,?is_range,value_type,value_size) (keys...)
+% {(values...) | [value ...]} #font_index ]+] % code mappings
+% ...]
+% <<same>> % notdef mappings
+% ]
+% FontMatrices is the array of matrices defined by begin/endusematrix.
+% All of the arrays and strings are read-only after they have been built.
+%
+% Note that the code in zfcmap.c that constructs the C structures from
+% the PostScript structures has intimate knowledge of the above format.
+
+% ****** NOTE: The code currently only handles "well-behaved" CMaps:
+% - CID values only (no bfchars), 16-bit
+% - Entries (both code space and map) must be sorted
+% - Only the last byte must vary in each map range, except for
+% the identity mapping
+
+% ------ Font-level operators ------ %
+
+/begincmap { % - begincmap -
+ /.CodeMapData [[[]] [[]] [[]]] def
+ /FontMatrices [] def
+ /.FontIndex 0 def
+ /.TempMaps [20 dict 50 dict 50 dict] def
+ /CodeMap //null def % for .buildcmap
+} bind def
+
+/endcmap { % - endcmap -
+ .rewriteTempMapsNotDef
+
+ CMAPDEBUG {
+ 2 (*** undefined charmap ***)
+ 1 (*** defined charmap ***)
+ 0 (*** code space ranges ***)
+ 3 { =
+ .TempMaps exch get
+ 0 1 2 index length 1 sub {
+ dup //== exec (\t) print
+ 1 index exch get //== exec
+ } for
+ pop
+ } repeat
+ } if
+
+ /.CodeMapData dup load [ exch
+ .TempMaps aload pop begin begin begin
+ {
+ [ exch aload pop
+ 0 1 currentdict length 1 sub {
+ currentdict exch get
+ } for
+ ]
+ end
+ } forall
+ ] .endmap def
+
+ CMAPDEBUG {
+ (*** Content of .CodeMapData ***) =
+ 0 .CodeMapData { exch dup //== exec 1 add exch (\t) print //== exec } forall
+ pop
+ } if
+
+ currentdict /.TempMaps undef
+ /FontMatrices FontMatrices .endmap def
+} bind def
+
+/.endmap { % <map> .endmap <map>
+ dup type /arraytype eq {
+ % This might be a shared read-only array inherited via usecmap.
+ % Don't try to update its elements if this is the case.
+ dup wcheck {
+ 0 1 2 index length 1 sub {
+ 2 copy 2 copy get .endmap put pop
+ } for readonly
+ } if
+ } {
+ dup type /stringtype eq { readonly } if
+ } ifelse
+} bind def
+
+/.appendmap { % -mark- <elt> ... <array#> .appendmap -
+ .TempMaps exch get counttomark 1 add 1 roll
+ ] 1 index length exch put
+} bind def
+
+/begincodespacerange { % <count> begincodespacerange -
+ pop mark
+} bind def
+
+/endcodespacerange { % <code_lo> <code_hi> ... endcodespacerange -
+ 0 .appendmap
+} bind def
+
+/usecmap { % <CMap_name> usecmap -
+ /CMap findresource dup
+ % Copy the top level of .CodeMapData
+ /.CodeMapData exch /.CodeMapData get copyarray def
+ /FontMatrices exch /FontMatrices get copyarray def
+} bind def
+
+/usefont { % <fontID> usefont -
+ /.FontIndex exch def
+} bind def
+
+/beginusematrix { % <fontID> beginusematrix -
+ FontMatrices wcheck not FontMatrices length 2 index le or {
+ FontMatrices length 1 index 1 add .max array
+ dup 0 FontMatrices putinterval
+ /FontMatrices exch def
+ } if
+} bind def
+
+/endusematrix { % <matrix> endusematrix -
+ FontMatrices 3 1 roll put
+} bind def
+
+% ------ Rearranged font operators ------ %
+
+/beginrearrangedfont { % <font_name> <font*> beginrearrangedfont -
+ 10 dict begin
+ /.FontNames exch def
+ /.FontName exch def
+ begincmap
+} bind def
+/endrearrangedfont { % - endrearrangedfont -
+ (REARRANGED FONTS NOT IMPLEMENTED YET.) = flush
+ .FontName .FontNames 0 get findfont end definefont pop
+} bind def
+
+% ------ Character name/code selector operators ------ %
+
+/beginbfchar { % <count> beginbfchar -
+ pop mark
+} bind def
+/endbfchar { % <code> <to_code|charname> ... endbfchar
+ counttomark 2 idiv {
+ counttomark -2 roll % process in correct order
+ .addbfchar
+ } repeat 1 .appendmap
+} bind def
+
+/beginbfrange { % <count> beginbfrange -
+ pop mark
+} bind def
+/endbfrange { % <code_lo> <code_hi> <to_code|(charname*)> ...
+ % endbfrange -
+ counttomark 3 idiv {
+ counttomark -3 roll % process in correct order
+ dup type dup /arraytype eq exch /packedarraytype eq or {
+ % Array value, split up.
+ exch pop {
+ % Stack: code to_code|charname
+ 1 index exch .addbfchar
+ % Increment the code. As noted above, we require
+ % that only the last byte vary, but we still must
+ % mask it after incrementing, in case the last
+ % value was 0xff.
+ % Stack: code prefix params key value fontindex
+ 6 -1 roll dup length string copy
+ dup dup length 1 sub 2 copy get 1 add 255 and put
+ } forall pop
+ } {
+ % Single value, handle directly.
+ .addbfrange
+ } ifelse
+ } repeat 1 .appendmap
+} bind def
+
+/.addbfchar { % <code> <to_code|charname> .addbfchar
+ % <prefix> <params> <key> <value> <font_index>
+ 1 index exch .addbfrange
+} bind def
+/.addbfrange { % <code_lo> <code_hi> <to_code|charname>
+ % .addbfrange <<same as .addbfchar>>
+ 4 string dup 3
+ 3 index type /nametype eq {
+ 2 index 2 1 put % dst = CODE_VALUE_GLYPH, see gxfcmap.h .
+ 4 -1 roll 1 array astore 4 1 roll 4
+ } {
+ 2 index 2 2 put % dst = CODE_VALUE_CHARS, see gxfcmap.h .
+ 3 index length
+ } ifelse put
+ % Stack: code_lo code_hi value params
+ 3 index 3 index eq {
+ % Single value.
+ 3 -1 roll pop exch () exch
+ } {
+ % Range.
+ dup 0 4 index length put
+ dup 1 1 put
+ 4 2 roll
+ 1 index dup length 1 sub 0 exch getinterval 5 1 roll % prefix
+ % Stack: prefix value params code_lo code_hi
+ concatstrings
+ 3 -1 roll
+ } ifelse
+ .FontIndex
+} bind def
+
+% ------ CID selector operators ------ %
+
+/begincidchar { % <count> begincidchar -
+ pop mark
+} bind def
+/endcidchar { % <code> <cid> ... endcidchar -
+ 1 .endmapchars
+} bind def
+
+/begincidrange { % <count> begincidrange -
+ pop mark
+} bind def
+/endcidrange { % <code_lo> <code_hi> <cid_base> ... endcidrange -
+ 1 .endmapranges
+} bind def
+
+/.endmapchars { % -mark- <code> <cid> ... <map#> .endmapchars -
+ counttomark 1 add 1 roll
+ counttomark 2 idiv {
+ counttomark -2 roll % process in correct order
+ exch % <cid> <code>
+ % Construct prefix, params, key, value, font_index
+ dup length 1 eq { % 1-byte
+ <00 00 00 02> () % <prefix> <param> <null_key>
+ } { % N-byte
+ dup 0 1 getinterval exch % make 1-byte prefix
+ 4 string dup 0
+ USE_CIDCHAR_AS_RANGE {
+ <00 01 00 02> % skelton for param
+ } {
+ <00 00 00 02> % skelton for param
+ } ifelse
+ putinterval
+ exch % <prefix> <param> <code>
+ dup length % <prefix> <param> <code> N
+ 1 sub % <prefix> <param> <code> N-1
+ dup % <prefix> <param> <code> N-1 N-1
+ 3 index % <prefix> <param> <code> N-1 N-1 <param>
+ exch % <prefix> <param> <code> N-1 <param> N-1
+ 0 exch % <prefix> <param> <code> N-1 <param> 0 N-1
+ put % <prefix> <param'> <code> N-1
+ 1 exch % <prefix> <param'> <code> 1 N-1
+ getinterval % <prefix> <param'> <key>
+
+ USE_CIDCHAR_AS_RANGE {
+ dup length 2 mul string % <key> <dkey>
+ dup % <key> <dkey> <dkey>
+ 2 index % <key> <dkey> <dkey> <key>
+ 0 exch putinterval % <key> <dkey'>
+ dup % <key> <dkey'> <dkey'>
+ 3 -1 roll % <dkey'> <dkey'> <key>
+ dup length % <dkey'> <dkey'> <key> N-1
+ exch putinterval % <dkey''>
+ } if
+
+ } ifelse
+
+ 4 -1 roll % <prefix> <param'> <key> <cid>
+ .endmapvalue % <prefix> <param'> <key> <hex_cid> <font_idx>
+ % prefix params keys value fontindex
+ counttomark 5 gt { % 2 (or more) ranges (1 range = 5 item)
+ 4 index 10 index eq % compare prefix
+ 4 index 10 index eq and % compare params
+ 1 index 7 index eq and % compare fontindex
+ {
+ CMAPDEBUG { (merge! char\n) print } if
+ pop 4 2 roll pop pop
+ % prefix params keys value fontindex keys2 value2
+ 5 -1 roll 3 -1 roll concatstrings
+ % prefix params value fontindex value2 keys'
+ 4 -1 roll 3 -1 roll concatstrings
+ % prefix params fontindex keys' values'
+ 3 -1 roll
+ } if
+ } if % end of 2 (or more) ranges
+ CMERGE_DEBUG {
+ ( prefix:) print 4 index =only
+ ( param:) print 3 index =only
+ ( key:) print 2 index =only
+ ( hex_cid:) print 1 index =only
+ ( font_idx:) print 0 index //== exec flush
+ } if
+ } repeat
+ counttomark 2 add -1 roll .appendmap
+} bind def
+
+/.endmapranges { % -mark- <code_lo> <code_hi> <cid_base> ... <map#>
+ % .endmapranges -
+ counttomark 1 add 1 roll
+ counttomark 3 idiv {
+ counttomark -3 roll % process in correct order
+ % Construct prefix, params, key_lo, key_hi, value, font_index
+ 3 1 roll % <cid_base> <code_lo> <code_hi>
+ % prefix key
+ % 1-byte code: () .
+ % 1-byte range: () .
+ % N-byte code: . (*)
+ % N-byte range: (*) (*)
+ dup 2 index eq { % <code_lo> == <code_hi>
+ % 0: prefix_len for 1-byte code
+ % 1: prefix_len for N-byte code
+ dup length 1 eq { 0 } { 1 } ifelse
+ } { % <code_lo> != <code_hi>
+ % calculate prefix_len for *-byte range
+ dup length 1 sub % <cid_base> <code_lo> <code_hi> <code_len-1>
+ 0 % initial value for N
+ { % <cid_base> <code_lo> <code_hi> (code_len-1) N
+ dup 2 index ge { exit } if % if (N >= len - 1) exit
+ 3 index 1 index get % N-th byte of code_lo
+ 3 index 2 index get % N-th byte of code_hi
+ eq { 1 add } { exit } ifelse
+ } loop
+ exch pop % discard <code_len-1>
+ } ifelse
+ % cid_base code_lo code_hi prefix_len
+
+ % Althogh Adobe CPSI with native CID/CMap support accept
+ % multi-dimensional range specification in notdef & cidrange
+ % (and CID is calculated as relative position in multi-dimensional
+ % range), but older CPSI & ATM cannot handle it.
+ %
+ % GS accepts such specification, but it's recommended to keep
+ % from using this feature for notdef & cidrange.
+ % Following is a disabler of this feature.
+ % -------------------------------------------------------------
+ % counttomark 1 add index % get map#
+ % 0 ne { % if not codespacerange
+ % 1 index length % get code length
+ % 1 index % get prefix length
+ % sub % calculate key length
+ % 1 gt { % if (key_len > 1),
+ % (.endmapranges error) = flush
+ % (multi-dimensional range specification is used out of codespacerange)
+ % = flush
+ % (/) =only
+ % CMapName CMapName length string cvs =only
+ % (: <) =only
+ % 2 index (%stdout) (w) file exch writehexstring
+ % (> <) =only
+ % 1 index (%stdout) (w) file exch writehexstring
+ % (>\n) =only flush
+ % quit
+ % } if
+ % } if
+ % -------------------------------------------------------------
+
+ 1 index exch 0 exch getinterval
+ % cid_base code_lo code_hi prefix
+ dup length 3 index length exch sub
+ % cid_base code_lo code_hi prefix range_len
+ dup 255 gt {
+ (too long coderange specification for current GS\n) print
+ /.endmapranges cvx /rangecheck signalerror
+ } if
+ <00 01 00 02> 4 string copy % create initialized param
+ dup 0 4 -1 roll put % put range_len into param
+
+ % get key_hi
+ 3 -1 roll dup length 3 index length dup 3 1 roll sub getinterval
+
+ % get key_lo
+ 4 -1 roll dup length 4 index length dup 3 1 roll sub getinterval
+
+ % make "keys" (concatenated key_lo + key_hi)
+ exch concatstrings
+
+ %
+ 4 -1 roll
+ .endmapvalue
+
+ % See if we can merge with the previous value.
+ % The prefix, params, and font index must match.
+ % prefix params keys value fontindex
+ counttomark 5 gt { % 2 (or more) ranges (1 range = 5 item)
+ 4 index 10 index eq % compare prefix
+ 4 index 10 index eq and % compare params
+ 1 index 7 index eq and % compare fontindex
+ {
+ CMAPDEBUG { (merge!\n) print } if
+ pop 4 2 roll pop pop
+ % prefix params keys value fontindex keys2 value2
+ 5 -1 roll 3 -1 roll concatstrings
+ % prefix params value fontindex value2 keys'
+ 4 -1 roll 3 -1 roll concatstrings
+ % prefix params fontindex keys' values'
+ 3 -1 roll
+ } if
+ } if % end of 2 (or more) ranges
+ } repeat
+ counttomark 2 add -1 roll .appendmap
+} bind def
+
+/.endmapvalue { % <cid> .endmapvalue (hi,lo) .FontIndex
+ 2 string dup 0 3 index -8 bitshift put % value
+ dup 1 4 -1 roll 255 and put
+ .FontIndex % font_index
+} bind def
+
+% ------ notdef operators ------ %
+
+/beginnotdefchar { % <count> beginnotdefchar -
+ pop mark
+} bind def
+/endnotdefchar { % <code> <cid> ... endnotdefchar -
+ 2 .endmapchars
+} bind def
+
+/beginnotdefrange { % <count> beginnotdefrange -
+ pop mark
+} bind def
+/endnotdefrange { % <code_lo> <code_hi> <cid> ... endnotdefrange -
+ 2 .endmapranges
+} bind def
+
+% ---------------- Resource category definition ---------------- %
+
+currentdict end
+
+languagelevel exch 2 .setlanguagelevel
+
+/CMap /Generic /Category findresource dup length dict .copydict
+dup /InstanceType /dicttype put
+dup /DefineResource {
+ % The AdobePS5 Windows driver emits code that attempts to
+ % create CMaps without the required CMapName entry.
+ % Work around this here.
+ dup /CMapName known not {
+ dup wcheck not {
+ .currentglobal exch dup wcheck .setglobal
+ dup length dict .copydict exch .setglobal
+ } if
+ dup gcheck 2 index gcheck not and {
+ exch .currentglobal exch //true .setglobal
+ dup length string copy exch .setglobal exch
+ } if dup /CMapName 3 index put
+ } if
+ % Adobe PS CET 23-25 and others define an almost empty CMap. Tolerate this.
+ % With the above, we can actually tolerate: /name << >> defineresource
+ dup /CIDSystemInfo known not {
+ dup wcheck not {
+ .currentglobal exch dup wcheck .setglobal
+ dup length dict .copydict exch .setglobal
+ } if
+ dup /CIDSystemInfo [ //null ] put
+ } if
+ dup /CodeMap .knownget { //null eq { .buildcmap } if } if
+ /Generic /Category findresource /DefineResource get exec
+} bind put
+/Category defineresource pop
+ % We might have loaded CID font support already.
+/CIDInit /ProcSet 2 copy { findresource } .internalstopped
+ % An interior `stopped' might have reset VM allocation to local.
+//true .setglobal
+ { pop pop 3 -1 roll }
+ { dup length 4 index length add dict .copydict 4 -1 roll exch .copydict }
+ifelse exch defineresource pop
+
+.setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_cspace.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,187 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% basic colorspace mechanism
+
+%
+% There have been some major changes to the PostScript colour handling.
+% In particular, the vast majority of the colour space code has been
+% converted from PostScript to C. This file has been extensively
+% modified, as has gs_icc.ps. The remaining PostScript files which
+% previously implemented colour space handling; gs_ciecs2.ps, gs_ciecs3.ps
+% gs_devcs.ps, gs_devn.ps, gs_devpxl.ps, gs_indxd.ps, gs_patrn.ps and
+% gs_sepr.ps have been superceded by the C code and removed.
+%
+% gs_lev2.ps and gs_ll3.ps have also been modified so that they no longer
+% attempt to execute these PostScript files.
+%
+.currentglobal //true .setglobal
+systemdict begin
+
+%
+% gs_res.ps, and possibly other files, use this dictionary. Formerly
+% in cspace_util, moved to systemdict.
+%
+20 dict dup /colorspacedict exch def
+
+begin % colorspacedict
+
+%
+% gs_res.ps uses these entries in colorspacedict
+% to populate the ColorSpaceFamily resource, so we need
+% to add the supported spaces.
+%
+/DeviceGray [] def
+/DeviceRGB [] def
+/DeviceCMYK [] def
+end % colorspacedict
+
+%
+% Global, read-only, unpacked, array-form device color spaces
+% We need to return an array argument in response to currentcolorspace
+% even if the argument presented to setcolorspace was a simple device
+% space name. Not only that, but in order to satisfy some Adobe
+% applications, it must be the *same* array every time. The only way
+% to do that is to define an appropriate set initial arrays and always return
+% one of those. These arrays are defined here.
+%
+/DeviceGray_array /DeviceGray 1 array astore readonly def
+/DeviceRGB_array /DeviceRGB 1 array astore readonly def
+/DeviceCMYK_array /DeviceCMYK 1 array astore readonly def
+
+%
+% - initgraphics -
+%
+% The internal routine gs_initgraphics doesn't (re)set the color space,
+% so we must redefine the operation to do it here.
+%
+%
+/initgraphics
+ { initgraphics systemdict /DeviceGray_array get setcolorspace }
+.bind odef
+
+%
+% These routines used for the NOSUBSTDEVICECOLORS switch. This prevents
+% substitution of DeviceGray, DeviceRGB and DeviceCMYK with a Default*
+% colour space when /UseCIEColors is true. If the job includes a
+% definition of /DefaltGray, DefaultRGB or DefaultCMYK then it also executes
+% .includecolorspace to allow the device to record the substitute space.
+%
+/..page_default_spaces 3 dict def
+
+%
+% Used internally to retrieve any relevant default colour space.
+%
+% <Default space name> ..nosubstdevicetest false
+% <Default space name> [space] true
+%
+% If the boolean is true then the C code must set the additional colour space
+% and execute .includecolorspace before finally setting a DeviceGray space.
+%
+/..nosubstdevicetest
+{
+ //false mark 3 -1 roll
+ % If we have already recorded this space, don't repeat it.
+ systemdict /..page_default_spaces get 1 index known {
+ cleartomark
+ } {
+ {
+ % Check to see if this space was defined by defineresource, if so then
+ % the job defined it, otherwise its the usual default, so ignore it.
+ dup /ColorSpace resourcestatus {
+ pop 0 eq {
+ % Default* defined by defineresource
+ systemdict /..page_default_spaces get 1 index //true put
+ dup /ColorSpace findresource 4 2 roll pop pop //true
+ }{
+ cleartomark
+ } ifelse
+ }{
+ cleartomark
+ } ifelse
+ } stopped
+ {cleartomark}if
+ } ifelse
+}bind def
+
+%
+% <color_space_name> ..includecolorspace -
+%
+/..includecolorspace
+{
+ % If we have already recorded this space, don't repeat it.
+ systemdict /..page_default_spaces get 1 index known {
+ pop
+ } {
+ mark exch
+ {
+ % Check to see if this space was defined by defineresource, if so then
+ % the job defined it, otherwise its the usual default, so ignore it.
+ dup /ColorSpace resourcestatus {
+ pop 0 eq {
+ % Job defined /Default*, so record it and allow the device access to it
+ systemdict /..page_default_spaces get 1 index //true put
+ gsave
+ { dup /ColorSpace findresource //setcolorspace exec .includecolorspace
+ } stopped pop
+ grestore
+ } if
+ } if
+ } stopped pop
+ cleartomark
+ } ifelse
+} bind def
+
+%
+% <color_space> <color_space_name> cs_substitute_generic <color_space1> <color_space2>
+%
+/cs_substitute_generic
+{ .getuseciecolor
+ {NOSUBSTDEVICECOLORS
+ { //..includecolorspace exec dup }
+ { /ColorSpace findresource }
+ ifelse
+ }
+ { pop dup }
+ ifelse
+}
+bind def
+
+%
+% <color_space> <color_space_name> cs_substitute_DeviceRGB_for_PDFX_or_PDFA <color_space1> <color_space2>
+%
+/cs_substitute_DeviceRGB_for_PDFX_or_PDFA
+{ systemdict /PDFX .knownget not { //false } if
+ systemdict /PDFA .knownget not { //false } {0 eq {//false}{//true} ifelse} ifelse
+ or {
+ dup /ColorSpace resourcestatus {
+ pop pop
+ } {
+ (Error: Need a /DefaultRGB /ColorSpace resource for generating a PDF/X or PDF/A document.) =
+ /cs_substitute_DeviceRGB_for_PDFX_or_PDFA cvx /undefined signalerror
+ } ifelse
+ /ColorSpace findresource
+ } {
+ //cs_substitute_generic exec
+ } ifelse
+} bind def
+end
+
+%
+% Set the initial device space
+%
+systemdict /DeviceGray_array get setcolorspace
+
+.setglobal
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dbt_e.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,58 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the Dingbats encoding vector.
+/currentglobal where
+ { pop currentglobal { setglobal } //true setglobal }
+ { { } }
+ifelse
+/DingbatsEncoding
+% \000
+ StandardEncoding 0 32 getinterval aload pop % /.notdef
+% \040
+ /space /a1 /a2 /a202 /a3 /a4 /a5 /a119
+ /a118 /a117 /a11 /a12 /a13 /a14 /a15 /a16
+ /a105 /a17 /a18 /a19 /a20 /a21 /a22 /a23
+ /a24 /a25 /a26 /a27 /a28 /a6 /a7 /a8
+% \100
+ /a9 /a10 /a29 /a30 /a31 /a32 /a33 /a34
+ /a35 /a36 /a37 /a38 /a39 /a40 /a41 /a42
+ /a43 /a44 /a45 /a46 /a47 /a48 /a49 /a50
+ /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58
+% \140
+ /a59 /a60 /a61 /a62 /a63 /a64 /a65 /a66
+ /a67 /a68 /a69 /a70 /a71 /a72 /a73 /a74
+ /a203 /a75 /a204 /a76 /a77 /a78 /a79 /a81
+ /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
+% \200
+ StandardEncoding 0 32 getinterval aload pop % /.notdef
+% \240
+ /.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
+ /a112 /a111 /a110 /a109 /a120 /a121 /a122 /a123
+ /a124 /a125 /a126 /a127 /a128 /a129 /a130 /a131
+ /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
+% \300
+ /a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147
+ /a148 /a149 /a150 /a151 /a152 /a153 /a154 /a155
+ /a156 /a157 /a158 /a159 /a160 /a161 /a163 /a164
+ /a196 /a165 /a192 /a166 /a167 /a168 /a169 /a170
+% \340
+ /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
+ /a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182
+ /.notdef /a201 /a183 /a184 /a197 /a185 /a194 /a198
+ /a186 /a195 /a187 /a188 /a189 /a190 /a191 /.notdef
+256 packedarray .defineencoding
+3 DingbatsEncoding .registerencoding
+exec
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskf.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,223 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Support for converting Type 1 fonts without eexec encryption to
+% Type 4 fonts that load individual character outlines on demand.
+
+% If DISKFONTS is true, we load individual CharStrings as they are needed.
+% (This is intended primarily for machines with very small memories.)
+% Initially, the character definition is the file position of the definition;
+% this gets replaced with the actual CharString.
+% Note that if we are loading characters lazily, CharStrings is writable.
+
+% _Cstring must be long enough to hold the longest CharString for
+% a character defined using seac. This is lenIV + 4 * 5 (for the operands
+% of sbw, assuming div is not used) + 2 (for sbw) + 3 * 5 (for the operands
+% of seac other than the character codes) + 2 * 2 (for the character codes)
+% + 2 (for seac), i.e., lenIV + 43.
+
+/_Cstring 60 string def
+
+% When we initially load the font, we call
+% <index|charname> <length> <readproc> cskip_C
+% to skip over each character definition and return the file position instead.
+% This substitutes for the procedure
+% <index|charname> <length> string currentfile exch read[hex]string pop
+% [encrypt]
+% What we actually store in the CharString is fileposition * 1000 + length,
+% negated if the string is stored in binary form.
+
+/cskip_C
+ { exch dup 1000 ge 3 index type /nametype ne or
+ { % This is a Subrs string, or the string is so long we can't represent
+ % its length. Load it now.
+ exch exec
+ }
+ { % Record the position and length, and skip the string.
+ dup currentfile fileposition 1000 mul add
+ 2 index 3 get /readstring cvx eq { neg } if
+ 3 1 roll
+ dup _Cstring length idiv
+ { currentfile _Cstring 3 index 3 get exec pop pop
+ } repeat
+ _Cstring length mod _Cstring exch 0 exch getinterval
+ currentfile exch 3 -1 roll 3 get exec pop pop
+ }
+ ifelse
+ } bind def
+
+% Load a CharString from the file. The font is the top entry
+% on the dictionary stack.
+/load_C % <charname> <fileposandlength> load_C -
+ { dup abs 1000 idiv FontFile exch setfileposition
+ CharStrings 3 1 roll
+ .currentglobal CharStrings .gcheck .setglobal exch
+ dup 0 lt
+ { neg 1000 mod string FontFile exch readstring }
+ { 1000 mod string FontFile exch readhexstring }
+ ifelse pop
+ exch .setglobal
+% If the CharStrings aren't encrypted on the file, encrypt now.
+ Private /-| get 0 get
+ dup type /nametype ne
+ { dup length 5 sub 5 exch getinterval exec }
+ { pop }
+ ifelse dup 4 1 roll put
+% If the character is defined with seac, load its components now.
+ mark exch seac_C
+ counttomark
+ { StandardEncoding exch get dup CharStrings exch get
+ dup type /integertype eq { load_C } { pop pop } ifelse
+ } repeat
+ pop % the mark
+ } bind def
+
+/seac_C % <charstring> seac_C <achar> <bchar> ..or nothing..
+ { dup length _Cstring length le
+ { 4330 exch _Cstring .type1decrypt exch pop
+ dup dup length 2 sub 2 getinterval <0c06> eq % seac
+ { dup length
+ Private /lenIV known { Private /lenIV get } { 4 } ifelse
+ exch 1 index sub getinterval
+% Parse the string just enough to extract the seac information.
+% We assume that the only possible operators are hsbw, sbw, and seac,
+% and that there are no 5-byte numbers.
+ mark 0 3 -1 roll
+ { exch
+ { { dup 32 lt
+ { pop 0 }
+ { dup 247 lt
+ { 139 sub 0 }
+ { dup 251 lt
+ { 247 sub 256 mul 108 add 1 1 }
+ { 251 sub -256 mul -108 add -1 1 }
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ } % 0
+ { mul add 0 } % 1
+ }
+ exch get exec
+ }
+ forall pop
+ counttomark 1 add 2 roll cleartomark % pop all but achar bchar
+ }
+ { pop % not seac
+ }
+ ifelse
+ }
+ { pop % punt
+ }
+ ifelse
+ } bind def
+
+% Define replacement procedures for loading fonts.
+% If DISKFONTS is true and the body of the font is not encrypted with eexec:
+% - Prevent the CharStrings from being made read-only.
+% - Substitute a different CharString-reading procedure.
+% (eexec disables this because the implicit 'systemdict begin' hides
+% the redefinitions that make the scheme work.)
+% We assume that:
+% - The magic procedures (-|, -!, |-, and |) are defined with
+% executeonly or readonly;
+% - The contents of the reading procedures are as defined in bdftops.ps;
+% - The font includes the code
+% <font> /CharStrings <CharStrings> readonly put
+/.loadfontdict 6 dict def mark
+ /begin % push this dict after systemdict
+ { dup begin
+ //systemdict eq { //.loadfontdict begin } if
+ } bind
+ /end % match begin
+ { currentdict end
+ //.loadfontdict eq currentdict //systemdict eq and { end } if
+ } bind
+ /dict % leave room for FontFile, BuildChar, BuildGlyph
+ { 3 add dict
+ } bind
+ /executeonly % for reading procedures
+ { readonly
+ }
+ /noaccess % for Subrs strings and Private dictionary
+ { readonly
+ }
+ /readonly % for procedures and CharStrings dictionary
+ { % We want to take the following non-standard actions here:
+ % - If the operand is the CharStrings dictionary, do nothing;
+ % - If the operand is a number (a file position replacing the
+ % actual CharString), do nothing;
+ % - If the operand is either of the reading procedures (-| or -!),
+ % substitute a different one.
+ dup type /dicttype eq % CharStrings or Private
+ count 2 gt and
+ { 1 index /CharStrings ne { readonly } if }
+ { dup type /arraytype eq % procedure or data array
+ { dup length 5 ge 1 index xcheck and
+ { dup 0 get /string eq
+ 1 index 1 get /currentfile eq and
+ 1 index 2 get /exch eq and
+ 1 index 3 get dup /readstring eq exch /readhexstring eq or and
+ 1 index 4 get /pop eq and
+ { /cskip_C cvx 2 packedarray cvx
+ }
+ { readonly
+ }
+ ifelse
+ }
+ { readonly
+ }
+ ifelse
+ }
+ { dup type /stringtype eq % must be a Subr string
+ { readonly }
+ if
+ }
+ ifelse
+ }
+ ifelse
+ } bind
+ /definefont % to insert BuildChar/Glyph and change FontType
+ { dup /FontType get 1 eq
+ { dup /FontType 4 put
+ dup /BuildChar /build_C load put
+ dup /BuildGlyph /build_C load put
+ }
+ if definefont
+ } bind
+counttomark 2 idiv { .loadfontdict 3 1 roll put } repeat pop
+.loadfontdict readonly pop
+
+% Define the BuildChar and BuildGlyph procedures for modified fonts.
+% A single procedure serves for both.
+/build_C % <font> <code|name> build_C -
+ { 1 index begin
+ dup dup type /integertype eq { Encoding exch get } if
+ % Stack: font code|name name
+ dup CharStrings exch .knownget not
+ { 2 copy eq { exch pop /.notdef exch } if
+ QUIET not
+ { (Substituting .notdef for ) print = flush }
+ { pop }
+ ifelse
+ /.notdef CharStrings /.notdef get
+ } if
+ % Stack: font code|name name charstring
+ dup type /integertype eq
+ { load_C end build_C }
+ { end .type1execchar }
+ ifelse
+ } bind def
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_diskn.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,213 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for %disk device modifications
+% When this is run, systemdict is still writable,
+
+systemdict begin
+
+% Collect the list of searchable IODevices in SearchOrder
+% Efficiency here doesn't matter since we run this at the end
+% of gs_init and convert it to a static array.
+/.getsearchabledevs { % - .getsearchabledevs [ list_of_strings ]
+ //systemdict /.searchabledevs .knownget not {
+ .currentglobal //true .setglobal
+ mark (*) {
+ dup length string copy dup currentdevparams /Searchable
+ .knownget { not { pop } if } { pop } ifelse
+ } 8192 string /IODevice resourceforall
+ ]
+ % now process the array into correct SearchOrder
+ 0 1 2 {
+ mark exch 2 index {
+ dup currentdevparams /SearchOrder get 2 index eq
+ { exch } { pop } ifelse
+ } forall % devices on the old list
+ pop
+ % make the array and sort it by name
+ ] { lt } bind .sort
+ exch
+ } for
+ % collect all devices with SearchOrder > 2
+ mark 2 index {
+ dup currentdevparams /SearchOrder get 2 gt
+ { exch } { pop } ifelse
+ } forall
+ ] exch pop
+ % We now have 4 arrays on the stack, SO=0 SO=1 SO=2 SO>2
+ % make them into a single array
+ mark 5 1 roll ] mark exch { { } forall } forall ]
+ //systemdict /.searchabledevs 2 index .forceput
+ exch .setglobal
+ }
+ if
+} .bind executeonly def % must be bound and hidden for .forceput
+
+% Modify .putdevparams to force regeneration of .searchabledevs list
+/.putdevparams {
+ % We could be smarter and check for %disk* device, but this
+ % doesn't get run enough to justify the complication
+ //.putdevparams
+ //systemdict /.searchabledevs .forceundef
+} .bind odef % must be bound and hidden for .forceundef
+
+% ------ extend filenameforall to handle wildcards in %dev% part of pattern -------%
+/filenameforall {
+ count 3 ge {
+ 2 index (%) search {
+ pop pop
+ } {
+ % no device specified, so search them all
+ pop (*%) 3 index concatstrings
+ % we need to suppress the device when we return the string
+ % in order to match Adobe's behaviour with %disk devices.
+ 4 -2 roll % the callers procedure
+ [ { (%) search { pop pop (%) search { pop pop } if } if } /exec load
+ 4 -1 roll % the callers procedure
+ /exec load
+ ] cvx
+ 4 2 roll % put the modified procedure where it belongs
+ } ifelse
+ % extract device portion (up to end of string or next %)
+ (%) search { exch pop } if % stack: opat proc scratch npat device
+ dup (*) search { pop pop pop //true } { pop //false } ifelse
+ 1 index (?) search { pop pop pop //true } { pop //false } ifelse
+ or not {
+ pop pop //filenameforall % device with no wildcard
+ } {
+ (%) concatstrings (%) exch concatstrings
+ .getsearchabledevs
+ % find all matching devices and add the rest of the search string
+ mark exch {
+ dup counttomark 1 add index .stringmatch {
+ counttomark 2 add index concatstrings
+ } {
+ pop
+ } ifelse
+ } forall
+ ]
+ 3 1 roll pop pop
+ 4 -1 roll pop
+ % now we need to invoke filenameforall for each of the strings
+ % in the array. We do this by building a procedure that is like
+ % an unrolled 'forall' loop. We do this to get the parameters
+ % for each filenameforall, since each execution will pop its
+ % parameters, but we can't use the operand stack for storage
+ % since each invocation must have the same operand stack.
+ mark exch {
+ counttomark dup 3 add index exch
+ 2 add index
+ /filenameforall load
+ } forall
+ ] cvx
+ 3 1 roll pop pop
+ exec % run our unrolled loop
+ }
+ ifelse
+ } {
+ //filenameforall % not enough parameters -- just let it fail
+ }
+ ifelse
+} odef
+
+% redefine file to search all devices in order
+/file {
+ dup 0 get (r) 0 get eq dup {
+ pop //false % success code
+ 2 index 0 get 37 eq { [ () ] } { .getsearchabledevs } ifelse
+ { 3 index concatstrings % prepend the device
+ {
+ 2 index //file } .internalstopped not {
+ 4 1 roll pop pop pop //true
+ exit % exit with success
+ } {
+ pop pop
+ }
+ ifelse
+ }
+ forall
+ }
+ if
+ not { % just let standard file operator handle things
+ //file
+ }
+ if
+} bind odef
+
+% redefine deletefile to search all devices in order
+/deletefile {
+ //false % success code
+ 1 index 0 get 37 eq { [ () ] } { .getsearchabledevs } ifelse
+ { 2 index concatstrings % prepend the device
+ { //deletefile } .internalstopped exch pop not {
+ pop //true exit % exit with success
+ }
+ if
+ }
+ forall
+ not { $error /errorname get /deletefile .systemvar exch signalerror } if
+} bind odef
+
+% redefine status to search all devices in order
+/status {
+ dup type /stringtype eq {
+ //false % success code
+ 1 index 0 get 37 eq { [ () ] } { .getsearchabledevs } ifelse
+ { 2 index concatstrings % prepend the device
+ { //status } .internalstopped not {
+ { //true 7 -2 roll pop pop //true exit } % exit with success
+ if
+ }
+ if
+ }
+ forall
+ % If we made it this far, no devices were found to status the file
+ % clean up to return 'false'
+ exch pop
+ } {
+ //status
+ }
+ ifelse
+} bind odef
+
+% Also redefine renamefile to search all devices in order
+/renamefile {
+ //false % success code
+ 2 index 0 get 37 eq { [ () ] } { .getsearchabledevs } ifelse
+ { dup 4 index concatstrings % prepend the device
+ { (r) //file } .internalstopped
+ not {
+ closefile exch pop //true exit % exit with success
+ } {
+ pop pop
+ } ifelse
+ }
+ forall
+ not { $error /errorname get /renamefile .systemvar exch signalerror } if
+ 3 -1 roll concatstrings exch
+ //renamefile
+} bind odef
+
+% redefine devforall to process devices in numeric order
+% Spec's for 'devforall' are unclear, but font downloaders may expect this
+/devforall { % <proc> <scratch> devforall -
+ [ { dup length string copy } 2 index //devforall ]
+ % stack: proc scratch array_of_device_names
+ { lt } .sort
+ % We don't really invoke the procedure with the scratch string
+ % but rather with the strings from our array
+ exch pop exch forall
+} odef
+end % systemdict
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dpnxt.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,133 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% gs_dpnxt.ps
+% NeXT Display PostScript extensions
+
+% Define the operation values for compositing. These must match the values
+% in gsdpnext.h, which also are the ones from the NeXT documentation.
+% We put them in systemdict, which seems like as good a place as any.
+mark
+ /Clear /Copy /Sover /Sin /Sout /Satop /Dover /Din /Dout /Datop /Xor
+ /PlusD /PlusL /Highlight % not sure about Highlight
+counttomark { counttomark 1 sub def } repeat pop
+
+% We implement readimage and sizeimage using the following 3 otherwise
+% undocumented lower-level operators:
+%
+% <x> <y> <width> <height> <matrix> .sizeimagebox
+% <dev_x> <dev_y> <dev_width> <dev_height> <matrix>
+%
+% - .sizeimageparams <bits/sample> <multiproc> <ncolors>
+%
+% <device> <x> <y> <width> <max_height> <alpha?> <std_depth|null>
+% <string> .getbitsrect <height> <substring>
+%
+% NOTE: These operators are subject to change without notice!
+
+% Implement readimage using .getbitsrect. Experimentation on a NeXT system
+% shows that the data is always returned in order of increasing device Y,
+% regardless of the CTM.
+%
+% Note that we can't make stack protection work for this operator,
+% because it must remove its operands from the stack before calling
+% the supplied procedure(s).
+
+/readimage { % <x> <y> <width> <height> <proc> [... <procN-1>]
+ % <string> <alpha?> readimage -
+ .sizeimageparams exch {
+ % multiproc = true. If N > 1, store the procedures in an array.
+ exch pop 1 index { 1 add } if
+ % Stack: ... string alpha? nprocs
+ dup 1 eq {
+ pop //false % only 1 procedure, multiproc is irrelevant
+ } {
+ dup array 4 1 roll 3 add 2 roll astore 3 1 roll //true
+ } ifelse
+ } {
+ % multiproc = false.
+ pop pop //false
+ } ifelse
+ % Map the rectangle to device coordinates.
+ % Stack: x y w h proc(s) str alpha? multi?
+ 8 -4 roll matrix .sizeimagebox pop 8 4 roll
+ % Make sure we allocate the operand array in local VM
+ % to avoid a possible invalidaccess.
+ .currentglobal //false .setglobal 9 1 roll
+ exch { 1 } { 0 } ifelse exch % alpha is last, if present
+ exch 4 1 roll 8 array astore exch .setglobal
+ { % Read out a block of scan lines and pass them to the procedure.
+ % Stack: [x y w h alpha? proc(s) str multi?] -- we must consume this.
+ dup 3 get 0 eq { pop exit } if
+ aload 9 1 roll pop exch pop currentdevice 7 1 roll
+ % Always read out the data as standard (not native) pixels.
+ .sizeimageparams pop pop exch .getbitsrect
+ % Stack: [x y w h alpha? proc(s) str multi?] hread substr
+ 3 -1 roll
+ % Stack: hread substr [x y w h alpha? proc(s) str multi?]
+ dup 1 2 copy get 5 index add put
+ % Stack: hread substr [x y' w h alpha? proc(s) str multi?]
+ dup 3 2 copy get 6 -1 roll sub put
+ % Stack: substr [x y' w h' alpha? proc(s) str multi?]
+ dup 5 get exch 7 get {
+ % multiproc = true, pass each plane to a different procedure.
+ % Stack: substr procs
+ 0 1 2 index length 1 sub {
+ % Push 1 plane and its procedure under the top 2 elements.
+ % Stack: ... substr procs plane#
+ 2 index length 2 index length idiv % bytes per plane
+ dup 2 index mul exch
+ % Stack: ... substr procs plane# start length
+ 4 index 3 1 roll getinterval 4 1 roll
+ 2 copy get 4 1 roll pop
+ } for
+ exch pop length 2 mul .execn
+ } {
+ % multiproc = false, just call the procedure.
+ exec
+ } ifelse
+ } //systemdict /exec get 3 packedarray cvx loop
+} bind odef
+
+%
+% <w> <h> <bpc> <mtx> <dsrc0> ... <multi> <ncomp> alphaimage -
+%
+img_utils_dict begin
+/.alphaimage where
+ {
+ pop
+ .currentglobal //true .setglobal
+ /alphaimage
+ {
+ //true
+ //.colorimage
+ stopped
+ { /alphaimage .systemvar $error /errorname get signalerror }
+ if
+ }
+ .bind systemdict begin odef end
+ .setglobal
+ }
+if
+end
+
+% Implement sizeimage using lower-level operators.
+
+/sizeimage { % <x> <y> <width> <height> <matrix> sizeimage
+ % <devwidth> <devheight> <bits/sample> <matrix>
+ % <multiproc> <ncolors>
+ .sizeimagebox 5 -2 roll pop pop
+ .sizeimageparams 3 -1 roll 4 1 roll
+} bind odef
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,222 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for Display PostScript functions.
+
+% ------ Errors ------ %
+
+% These errors are only defined in DPS.
+{ /invalidcontext /invalidid } { .registererror } forall
+
+% ------ Contexts ------ %
+
+% To create a context with private local VM, we use the .localfork
+% operator to actually create the context, the new VM, and an empty
+% userdict, and then we call the .initlocaldicts procedure to make
+% local copies of the initial contents of the dictionaries in local VM.
+% savedlocaldicts in systemdict is a global read-only dictionary whose
+% elements are global read-only copies of these initial contents;
+% we just copy its elements into local VM and install them in systemdict.
+% userdict and internaldict require special handling.
+
+% Switching between contexts with different local VMs requires
+% changing the bindings in systemdict that reference local objects.
+% For this purpose, each userdict has an entry called localdicts
+% which holds the local copies of the elements of savedlocaldicts,
+% plus internaldict. The context switching code in the interpreter
+% effectively copies this dictionary into systemdict.
+% NOTE: the name localdicts is known to the interpreter.
+
+% Switching between contexts also requires resetting the user parameters.
+% The interpreter records the value of userparams (a local dictionary
+% referenced from systemdict) for each context, and uses it for this.
+% See gs_lev2.ps for more details.
+% NOTE: the name userparams is known to the interpreter.
+
+% Save copies of local dictionaries at the end of system initialization.
+% Also save the initial gstate.
+/.savelocalstate {
+ .currentglobal //true .setglobal
+ //systemdict /savedlocaldicts mark //systemdict {
+ dup gcheck {
+ pop pop
+ } {
+ dup type /dicttype eq {
+ % Save a copy of this dictionary in global VM.
+ dup maxlength dict .copydict readonly
+ } {
+ pop pop
+ } ifelse
+ } ifelse
+ } forall .dicttomark readonly put
+ % Create localdicts for the current context.
+ //false .setglobal
+ userdict /localdicts mark savedlocaldicts {
+ pop dup load
+ } forall /internaldict dup load
+ .dicttomark readonly put
+ % Save a copy of the initial gstate.
+ //systemdict /savedinitialgstate gstate readonly .forceput
+ .setglobal
+} .bind def
+
+% Initialize local dictionaries and gstate when creating a new context.
+% Note that until this completes, we are in the anomalous situation of
+% having systemdict point to dictionaries that are in a non-current
+% local VM. Because of this, we turn off garbage collection temporarily.
+/.copylocal { % <name> <dict> .copylocal <name> <dict'>
+ % Copy a dictionary to the current (local) VM,
+ % and make it read-only if its current definition is.
+ dup maxlength dict .copydict
+ 1 index load wcheck not { readonly } if
+} .bind def
+% When this is called, the dictionary stack is in its initial state,
+% and there is (anomalously) only one gstate on the gstate stack.
+/.initlocaldicts { % - .initlocaldicts -
+ -2 vmreclaim
+ .currentglobal //systemdict begin
+ //false .setglobal
+ % Since localdicts doesn't exist yet, references from
+ % systemdict to local objects won't get restored if
+ % a context switch happens in this code. Therefore,
+ % until localdicts is defined, we have to keep all our
+ % state on the operand stack.
+
+ % Acquire userdict.
+ %****** WRONG IF NON-STANDARD INITIAL DSTACK ******
+ countdictstack array dictstack
+ { dup gcheck not { exit } if pop } forall
+ % Create localdicts with a local copy of each dictionary,
+ % except for userdict and userparams, which just need
+ % to be filled in.
+ mark savedlocaldicts {
+ 1 index /userdict eq {
+ % Stack: userdict mark ... /userdict inituserdict
+ counttomark 1 add index .copydict
+ } {
+ 1 index /userparams eq {
+ % Stack: userdict mark ... /userparams inituserparams
+ userparams .copydict
+ } {
+ .copylocal
+ } ifelse
+ } ifelse
+ } forall /internaldict dup .makeinternaldict .makeoperator
+ .dicttomark readonly /localdicts exch put
+ % localdicts is now defined in userdict.
+ % Copy the definitions into systemdict.
+ localdicts { .forcedef } forall
+ % Set the user parameters.
+ userparams readonly .setuserparams
+ % Establish the initial gstate(s).
+ /savedinitialgstate .systemvar setgstate gsave
+ % Wrap up.
+ end .setglobal
+} odef
+
+% Check whether an object is a procedure.
+/.proccheck { % <obj> .proccheck <bool>
+ dup xcheck
+ exch type dup /arraytype eq exch /packedarraytype eq or and
+} bind def
+
+% Create a context with private local VM.
+% The .localfork operator does all the work, but we must ensure that
+% .initlocaldicts gets called when the new context starts up.
+/localfork { % <mark> <obj1> ... <objN> <proc>
+ % <stdin|null> <stdout|null>
+ % localfork <context>
+ .currentglobal //true .setglobal 3 index
+ dup .proccheck not {
+ pop .setglobal /localfork .systemvar /typecheck signalerror
+ } if
+ {exec .initlocaldicts} aload pop
+ 3 1 roll 3 packedarray cvx
+ 4 1 roll 5 -1 roll pop .setglobal .localfork
+} odef
+
+% Fork a context that shares VM. The .fork operator creates an empty
+% userparams dictionary for the context, but we still need to initialize
+% this dictionary when the new context starts up.
+/.postfork { % - .postfork -
+ % Initialize the user parameters.
+ savedlocaldicts /userparams get userparams .copydict readonly pop
+} odef
+/fork { % <mark> <obj1> ... <objN> <proc> fork <context>
+ .currentglobal //false .setglobal 1 index
+ dup .proccheck not {
+ pop .setglobal /fork .systemvar /typecheck signalerror
+ } if
+ {exec .postfork} aload pop
+ 3 1 roll 3 packedarray cvx
+ 3 1 roll exch pop .setglobal .fork
+} odef
+
+% ------ Halftone phase ------ %
+
+/sethalftonephase { % <x> <y> sethalftonephase -
+ -1 2 index 2 index .setscreenphase pop pop
+} odef
+/currenthalftonephase { % - currenthalftonephase <x> <y>
+ 0 .currentscreenphase
+} odef
+
+% ------ Device-source images ------ */
+
+.imagetypes 2 /.image2 load put
+
+% ------ Device information ------ %
+
+/.deviceinfodict mark
+ /Colors //null /GrayValues //null /RedValues //null /GreenValues //null
+ /BlueValues //null /ColorValues //null
+.dicttomark readonly def
+/deviceinfo { % - deviceinfo <dict>
+ currentdevice //.deviceinfodict .getdeviceparams .dicttomark
+ dup begin
+ /ColorValues .knownget {
+ 0 le
+ { currentdict /ColorValues undef }
+ {
+ % hack around devices that incorrect set GrayValues
+ Colors 3 eq { 1 } { GrayValues } ifelse
+ RedValues mul GreenValues mul BlueValues mul ColorValues ne
+ { currentdict /GrayValues undef
+ currentdict /RedValues undef
+ currentdict /GreenValues undef
+ currentdict /BlueValues undef
+ } if
+ }
+ ifelse
+ } if
+ currentdict end readonly
+} odef
+
+% The current implementation allocates a 2-element array each time.
+% Perhaps we should change this to 2 separate parameters for X and Y?
+/.wtdict mark
+ /wtranslation //null
+.dicttomark readonly def
+/wtranslation { % - wtranslation <x> <y>
+ currentdevice //.wtdict .getdeviceparams exch pop exch pop aload pop
+} odef
+currentdict /.wtdict .undef
+
+% ------ View clipping ------ %
+
+/rectviewclip { % <x> <y> <width> <height> rectviewclip -
+ % <numarray|numstring> rectviewclip -
+ newpath .rectappend viewclip
+} odef
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps1.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,138 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for most of the Display PostScript functions
+% that are also included in Level 2.
+
+level2dict begin
+
+% ------ Virtual memory ------ %
+
+/currentshared /.currentglobal load def
+/scheck /.gcheck load def
+%****** FOLLOWING IS WRONG ******
+/shareddict currentdict /globaldict .knownget not { 20 dict } if def
+
+% Global and LocalFontDirectory must remain in systemdict
+% even if we temporarily exit Level 2 mode.
+
+end % level2dict
+systemdict begin
+
+/SharedFontDirectory .FontDirectory .gcheck
+ { .currentglobal //false .setglobal
+ /LocalFontDirectory .FontDirectory dup maxlength dict copy
+ .forcedef % LocalFontDirectory is local, systemdict is global
+ .setglobal .FontDirectory
+ }
+ { /LocalFontDirectory .FontDirectory
+ .forcedef % LocalFontDirectory is local, systemdict is global
+ 50 dict
+ }
+ifelse def
+
+end % systemdict
+level2dict begin
+
+% setshared must rebind FontDirectory to the appropriate one of
+% Local or SharedFontDirectory.
+
+/.setglobal % <bool> .setglobal -
+ { dup .setglobal
+ //systemdict /FontDirectory .currentglobal
+ { //SharedFontDirectory }
+ { /LocalFontDirectory .systemvar } % can't embed ref to local VM
+ ifelse .forceput pop % LocalFontDirectory is local, systemdict is global
+ } .bind odef % must bind .forceput and .setglobal
+ % even if NOBIND in effect
+% Don't just copy (load) the definition of .setglobal:
+% it gets redefined for LL3.
+/setshared { /.setglobal .systemvar exec } odef
+.currentglobal setshared
+
+% See below for changes in save and restore.
+
+% ------ Fonts ------ %
+
+/selectfont % <fontname> <size> selectfont -
+ {
+ { 1 .argindex findfont
+ 1 index dup type /arraytype eq { makefont } { scalefont } ifelse
+ setfont pop pop
+ } stopped { /selectfont .systemvar $error /errorname get signalerror } if
+ } odef
+% undefinefont has to take local/global VM into account.
+/undefinefont % <fontname> undefinefont -
+ { .FontDirectory 1 .argindex .forceundef % FontDirectory is readonly
+ .currentglobal
+ { % Current mode is global; delete from local directory too.
+ //systemdict /LocalFontDirectory .knownget
+ { 1 index .forceundef } % LocalFontDirectory is readonly
+ if
+ }
+ { % Current mode is local; if there was a shadowed global
+ % definition, copy it into the local directory.
+ //systemdict /SharedFontDirectory .knownget
+ { 1 index .knownget
+ { .FontDirectory 2 index 3 -1 roll { put } //superexec } % readonly
+ if
+ }
+ if
+ }
+ ifelse pop
+ } odef
+
+% If we load a font into global VM within an inner save, the restore
+% will delete it from FontDirectory but not from SharedFontDirectory.
+% We have to handle this by making restore copy missing entries from
+% SharedFontDirectory to FontDirectory. Since this could slow down restore
+% considerably, we define a new operator .forcecopynew for this purpose.
+% Furthermore, if FAKEFONTS is in effect, we want global real fonts to
+% override fake local ones. We handle this by brute force.
+/restore % <save> restore -
+ { dup //restore % bind even if NOBIND
+ /LocalFontDirectory .systemvar
+ FAKEFONTS
+ { mark
+ % We want to delete a fake font from the local directory
+ % iff the global directory now has no definition for it,
+ % or a non-fake definition.
+ 1 index dup
+ { % Stack: lfd mark lfd key ... lfd key value
+ length 1 gt
+ { % This is a real local definition; don't do anything.
+ pop
+ }
+ { % This is a fake local definition, check for global.
+ //SharedFontDirectory 1 index .knownget
+ { % A global definition exists, check for fake.
+ length 1 eq { pop } { 1 index } ifelse
+ }
+ { % No global definition, delete the local one.
+ 1 index
+ }
+ ifelse
+ }
+ ifelse
+ } forall
+ pop counttomark 2 idiv { .forceundef } repeat pop % readonly
+ }
+ if
+ //SharedFontDirectory exch .forcecopynew pop
+ .currentglobal .setglobal % Rebind FontDirectory according to current VM.
+ pop
+ } .bind odef
+
+end % level2dict
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dps2.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,246 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for basic Display PostScript functions
+% that are also included in Level 2.
+
+level2dict begin
+
+% ------ Errors ------ %
+
+% These errors are only defined in Level 2 and DPS.
+{ /configurationerror /undefinedresource /unregistered }
+{ .registererror } forall
+
+% ------ Halftones ------ %
+
+/.makestackdict
+ { { counttomark -1 roll } forall .dicttomark
+ } bind def
+/currenthalftone % - currenthalftone <dict>
+ { mark .currenthalftone
+ { { exch pop } % halftone
+ { /HalftoneType 1 % screen
+ { /Frequency /Angle /SpotFunction }
+ .makestackdict readonly
+ }
+ { /HalftoneType 2 % colorscreen
+ { /RedFrequency /RedAngle /RedSpotFunction
+ /GreenFrequency /GreenAngle /GreenSpotFunction
+ /BlueFrequency /BlueAngle /BlueSpotFunction
+ /GrayFrequency /GrayAngle /GraySpotFunction
+ }
+ .makestackdict readonly
+ }
+ }
+ exch get exec
+ } odef
+% Define sethalftone so it converts types 1-4 to type 5.
+/.makehalftoneRGBV { % <dict> <type> <keys> <keysRGBV>
+ 4 -1 roll exch { 1 index exch get exch } forall 15 1 roll
+ 14 -2 roll mark 15 1 roll { /Gray /Blue /Green /Red } {
+ % stack: v0 v1 v2 type keys comp
+ mark
+ 2 index 0 get 8 -1 roll
+ 4 index 1 get 9 -1 roll
+ 6 index 2 get 10 -1 roll
+ % stack: type keys comp mark k0 v0 k1 v1 k2 v2
+ /HalftoneType 10 index .dicttomark
+ counttomark 2 roll
+ } forall pop pop
+ /Default 1 index .dicttomark exch pop { .sethalftone5 }
+} bind def
+
+% The value of each entry in .halftonetypes is a procedure:
+% <setdict> <htdict> <<proc>> <setdict'> <htdict'> <sethalftoneproc>
+% This allows us to use these procedures both for actually implementing
+% sethalftone and for converting subsidiary dictionaries of HalftoneType 5
+% halftones.
+systemdict begin
+15 dict /.halftonetypes 1 index def begin
+ 1 {
+ mark exch /Default exch .dicttomark { .sethalftone5 }
+ } bind def
+ 2 {
+ 1 { /Frequency /Angle /SpotFunction } {
+ /RedFrequency /RedAngle /RedSpotFunction
+ /GreenFrequency /GreenAngle /GreenSpotFunction
+ /BlueFrequency /BlueAngle /BlueSpotFunction
+ /GrayFrequency /GrayAngle /GraySpotFunction
+ } .makehalftoneRGBV
+ } bind def
+ 3 {
+ mark exch /Default exch .dicttomark { .sethalftone5 }
+ } bind def
+ 4 {
+ 3 { /Width /Height /Thresholds } {
+ /RedWidth /RedHeight /RedThresholds
+ /GreenWidth /GreenHeight /GreenThresholds
+ /BlueWidth /BlueHeight /BlueThresholds
+ /GrayWidth /GrayHeight /GrayThresholds
+ } .makehalftoneRGBV
+ } bind def
+ 5 {
+ pop dup length dict copy
+ mark 1 index {
+ % Even HalftoneType 5 dictionaries have entries other than
+ % subsidiary halftone dictionaries.
+ dup type /dicttype ne {
+ 0
+ } {
+ dup /HalftoneType .knownget not { 0 } if
+ } ifelse dup 5 gt {
+ % Stack: dict mark ... keyN dictN httypeN
+ % Assume that all HalftoneTypes > 5 convert to 5.
+ 1 index 3 1 roll
+ //.halftonetypes exch get exec pop /Default get
+ % Stack: dict mark ... keyN setdict'N htdict'N
+ counttomark 1 add index 3 index 4 -1 roll put
+ } {
+ pop
+ } ifelse
+ } forall .dicttomark { .sethalftone5 }
+ } bind def
+end
+end
+/sethalftone { % <dict> sethalftone -
+ % We must create the new dictionary in the same VM as the
+ % operand; otherwise, invalidaccess errors may occur.
+ .currentglobal 1 .argindex dup gcheck .setglobal
+ dup //.halftonetypes 1 index /HalftoneType get
+ dup type /integertype ne {
+ /sethalftone .systemvar /typecheck signalerror
+ } if
+ .knownget not {
+ /sethalftone .systemvar /rangecheck signalerror
+ } if
+ exec exec
+ .setglobal pop
+} .bind odef
+% Redefine setscreen and setcolorscreen to recognize halftone dictionaries,
+% and to insert the Frequency and Angle into Type 1 halftones, per
+% Adobe TN 5085.
+/.fixsethalftonescreen % <freq> <angle> <dict> .fix...screen
+ % <freq> <angle> <dict> <dict'>
+ { dup dup /HalftoneType get 1 eq
+ { dup wcheck not { dup length dict .copydict } if
+ dup /Frequency 5 index put
+ dup /Angle 4 index put
+ languagelevel 3 ge { dup /AccurateScreens dup getuserparam put } if
+ }
+ if
+ } bind def
+/setscreen % <ignore*2> <dict> setscreen -
+ { dup type /dicttype eq
+ { .fixsethalftonescreen sethalftone pop pop pop }
+ { //setscreen }
+ ifelse
+ } .bind odef
+/setcolorscreen % <ignore*11> <dict> setcolorscreen -
+ { dup type /dicttype eq
+ { .fixsethalftonescreen sethalftone 12 { pop } repeat }
+ { //setcolorscreen }
+ ifelse
+ } .bind odef
+% Redefine currentscreen and currentcolorscreen to extract the Frequency
+% and Angle from Type 1 halftones, per Adobe TN 5085.
+/.fixcurrenthalftonescreen % <dict> .fix... <freq> <angle> <proc>
+ { dup /HalftoneType get 1 eq
+ { dup /Frequency get 1 index /Angle get }
+ { 60.0 0.0 } % Adobe returns these as reals
+ ifelse 3 2 roll
+ } bind def
+/currentscreen % - currentscreen 60 0 <dict>
+ { .currenthalftone
+ { { .fixcurrenthalftonescreen } % halftone
+ { } % screen
+ { 12 3 roll 9 { pop } repeat % colorscreen
+ dup type /dicttype eq { .fixcurrenthalftonescreen } if
+ }
+ }
+ exch get exec
+ } odef
+/currentcolorscreen % - currentcolorscreen (60 0 <dict>)*4
+{ .currenthalftone
+ { { .fixcurrenthalftonescreen 3 copy 6 copy } % halftone
+ { % screen
+ % The procedure might not be readable....
+ dup rcheck { dup length array copy cvx } if
+ 3 copy 6 copy
+ }
+ { } % colorscreen
+ }
+ exch get exec
+} odef
+
+% ------ User objects ------ %
+
+/.UserObjects {
+ .userdict /UserObjects
+} odef
+% In order to get proper error recovery behavior, we need to be careful
+% not to pop any operands from the stack until we're done.
+% The code below faithfully duplicates the apparent array-growing
+% behavior of Adobe interpreters.
+/defineuserobject { % <index> <value> defineuserobject -
+ 1 index 65535 gt {
+ % .localvmarray throws limitcheck but CET 31-02 wants rangecheck
+ /defineuserobject .systemvar /rangecheck signalerror
+ } if
+ .UserObjects .knownget {
+ length dup 3 .argindex le {
+ % Stack: index value len
+ 2 index eq { 1 index 2 mul } { 1 index 1 add } ifelse
+ .localvmarray .UserObjects get
+ 1 index copy pop
+ .UserObjects 3 -1 roll put
+ } {
+ pop
+ } ifelse
+ } {
+ .UserObjects 3 .argindex 1 add 10 .max .localvmarray put
+ } ifelse
+ .UserObjects get 2 .argindex 2 index put pop pop
+} odef
+/execuserobject { % <index> execuserobject -
+ dup type /integertype ne {
+ % Adobe validates the argument before accessing UserObjects - CET 31-03
+ /execuserobject .systemvar /typecheck signalerror
+ } if
+ .UserObjects get 1 .argindex get exch pop exec
+} odef
+/undefineuserobject { % <index> undefineuserobject -
+ dup type /integertype ne {
+ % Adobe validates the argument before accessing UserObjects - CET 31-11
+ /undefineuserobject .systemvar /typecheck signalerror
+ } if
+ .UserObjects get 1 .argindex //null put pop
+} odef
+
+% ------ Cache control ------ %
+
+% Dummy definitions for cache control operators
+
+/ucachestatus { % - ucachestatus -mark- ? ? ? ? <size>
+ mark 0 0 0 0 /MaxUPathItem getuserparam
+} odef
+/setucacheparams { % -mark- ... <size> setucacheparams -
+ % Provoke an appropriate error if needed.
+ counttomark 1 lt { () 0 get } if
+ dup 0 or /MaxUPathItem getuserparam .max
+ 1 dict dup /MaxUPathItem 4 -1 roll put setuserparams cleartomark
+} odef
+
+end % level2dict
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_dscp.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,115 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Postscript interface routines to DSC parser
+
+/send_orientation { % <orientation> send_orientation -
+ % .parse_dsc_comments returns -1 for an Orientation key with an
+ % unrecognized value.
+ dup 0 ge {
+ << /Orientation 2 index >> setpagedevice
+ } if pop
+} bind def
+
+% This dictionary contains local handlers for DSC comments.
+% See header in zdscpars.c for more information.
+% <dsc_dict> handler <dsc_dict>
+/DSCparseprocs mark
+ /Orientation { dup /Orientation get send_orientation } bind
+ /PageOrientation { dup /PageOrientation .knownget { send_orientation }
+ { dup /Orientation .knownget { send_orientation } if }
+ ifelse } bind
+ /Page { dup /Orientation .knownget { send_orientation } if } bind
+ /NOP { } bind
+.dicttomark readonly def
+
+% This procedure is called whenever a DSC comment is found by the interpreter
+/do_parse_dsc //false def
+/parse_dsc { % <file> <DSC string> [<prev proc>]
+ % parse_dsc -
+ % Run any previously installed parser.
+ 0 get dup //null eq { pop } { 3 copy exec pop } ifelse
+
+ do_parse_dsc { % Check if this parser is enabled
+ currentglobal //true setglobal % Go to global VM, save old state
+ 3 1 roll % Put old VM state under <file> <string>
+ dsc_dict exch % <VM state> <file> <dict> <string>
+ .parse_dsc_comments % <VM state> <file> <dict> <DSC name>
+ 4 -1 roll % Get old VM state from under <file> <dict> <DSC name>
+ setglobal % restore previous VM state
+ //DSCparseprocs exch .knownget { % Check DSC name against local handler list
+ exec % execute any local handler
+ } if
+ } if
+ pop pop % remove file, dict
+} bind def
+
+% Check whether the currently installed parser is the one defined in this file.
+/.using_parse_dsc { % - .using_parse_dsc <proc> <using?>
+ currentuserparams /ProcessDSCComment get
+ dup //null eq { pop {{//null} //parse_dsc exec} } if
+ dup length 3 eq {
+ dup dup length 1 sub get /parse_dsc load eq
+ } {
+ //false
+ } ifelse
+} bind def
+
+% Establish a binding for dsc_dict.
+userdict /dsc_dict //null put
+
+% - dsc_init -
+/dsc_init { % Initialize DSC parser
+ currentglobal //true setglobal
+ /dsc_dict 50 dict store % Size must be large enough for all DSC values
+ dsc_dict .initialize_dsc_parser
+ .using_parse_dsc {
+ % Already using this parser.
+ pop
+ } {
+ % Encapsulate the previous parser. We know it is in global VM:
+ % allocate the new one in global VM as well.
+ 1 array astore
+ /parse_dsc load /exec load 3 array astore cvx readonly
+ << /ProcessDSCComment 3 -1 roll >>
+ setuserparams
+ } ifelse
+ setglobal
+ /do_parse_dsc //true def
+} bind def
+
+% Enable the DSC parser defined in this file.
+% - enable_dsc -
+/enable_dsc {
+ dsc_init
+} bind def
+
+% Disable the DSC parser defined in this file.
+% - disable_dsc -
+/disable_dsc {
+ % There might be another parser installed: if so, restore it.
+ % (If it has encapsulated our parser, we can't.)
+ .using_parse_dsc {
+ % Restore the parser we encapsulated.
+ 0 get 0 get
+ currentglobal //true setglobal exch
+ << /ProcessDSCComment 3 -1 roll >>
+ exch setglobal setuserparams
+ } {
+ pop
+ } ifelse
+ % If we couldn't restore the old parser, at least disable ours.
+ /do_parse_dsc //false def
+} bind def
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_epsf.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,291 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Allow the interpreter to encapsulate EPS files, to recognize MS-DOS
+% EPSF file headers, and skip to the PostScript section of the file.
+
+% Encapsulate EPS files and optionally resize page or rescale image.
+% To display an EPS file cropped to the bounding box:
+% gs -dEPSCrop file.eps
+% To display an EPS file scaled to fit the page:
+% gs -dEPSFitPage file.eps
+% To display a file without EPS encapsulation:
+% gs -dNOEPS file.ps
+
+% When starting to process an EPS file, state is 0.
+% After %%BoundingBox processed, state is 1 if OK or 2 if cropped.
+% After %%HiResBoundingBox processed, state is 3 if OK or 4 if cropped.
+% After %%EndComments processed, state is 5.
+/EPSBoundingBoxState 5 def
+/EPSBoundingBoxSetState {
+ //systemdict /EPSBoundingBoxState 3 -1 roll .forceput
+} .bind odef % .forceput must be bound and hidden
+
+% Parse 4 numbers for a bounding box
+/EPSBoundingBoxParse { % (llx lly urx ury) -- llx lly urx ury true OR false
+ mark exch
+ token {exch token {exch token {exch token {exch pop} if} if} if} if
+ counttomark
+ 4 eq {
+ 5 -1 roll pop % remove mark
+ //true
+ } {
+ cleartomark //false
+ } ifelse
+} bind def
+
+% Crop the page to the BoundingBox
+/EPSBoundingBoxCrop { % llx lly urx ury --
+ EPSDEBUG {
+ (gs_epsf.ps: Setting pagesize from EPS bounding box\n) print flush
+ } if
+ exch 3 index sub exch 2 index sub % stack: llx lly urx-llx ury-lly
+ << /PageSize [ 5 -2 roll ] >> setpagedevice
+ neg exch neg exch translate
+} bind def
+
+% Rescale, translate and rotate to fit the BoundingBox on the page
+/EPSBoundingBoxFitPage { % llx lly urx ury --
+ EPSDEBUG { (gs_epsf.ps: Rescaling EPS to fit page\n) print flush } if
+ clippath pathbbox newpath
+ % translate to new origin at lower left of clippath
+ 3 index 3 index translate
+ % Figure out if rotate is needed.
+
+ 1 index 4 index sub 1 index 4 index sub eq not {
+ 1 index 4 index sub 1 index 4 index sub gt % bbox page-clipbox page-is-landscape
+ 6 index 10 index sub 6 index 10 index sub gt % bbox page-clipbox page-is-landscape bbox-is-landscape
+ xor
+ }{
+ false
+ }ifelse
+ 9 1 roll % compute need-rotate.
+ % stack: rotate-needed bbox page-clipbox
+ % calculate scale to fit smaller of width or height
+ exch 4 -1 roll sub 3 1 roll exch sub
+ 4 2 roll 5 index 5 index 4 2 roll
+ exch 4 -1 roll sub 3 1 roll exch sub
+ 4 2 roll
+ exch 4 -1 roll div 3 1 roll exch div
+ 1 index 1 index lt {pop}{exch pop} ifelse
+ dup scale
+ % translate to EPS -llx,-lly
+ exch neg exch neg translate
+ % Finally perform the rotate if needed.
+ { clippath pathbbox pop 0 exch translate 90 rotate pop pop } if
+} bind def
+
+/EPSBoundingBoxProcess { % (llx lly urx ury) state --
+ //systemdict /EPSBoundingBoxState get 1 index lt {
+ exch EPSBoundingBoxParse
+ {
+ //systemdict /EPSCrop known {
+ EPSBoundingBoxCrop
+ } {
+ //systemdict /EPSFitPage known {
+ EPSBoundingBoxFitPage
+ } {
+ % Warn if some of the EPS file will be clipped
+ clippath pathbbox newpath
+ { % context for exit
+ 5 -1 roll lt { 6 { pop } repeat //true exit } if
+ 4 -1 roll lt { 4 { pop } repeat //true exit } if
+ 3 -1 roll gt { 2 { pop } repeat //true exit } if
+ exch gt { //true exit } if
+ //false exit
+ } loop
+ QUIET not and /EPSBoundingBoxState .systemvar 1 and 1 eq and {
+ (\n **** Warning: Some of the BoundingBox for the EPS file will be clipped.) =
+ ( Use -dEPSCrop or -dEPSFitPage to avoid clipping.\n) =
+ flush
+ 1 add
+ } if
+ } ifelse
+ } ifelse
+ EPSBoundingBoxSetState
+ } {
+ pop % state
+ } ifelse
+ } {
+ pop pop
+ } ifelse
+} bind def
+
+/ProcessEPSComment { % file comment -- file comment
+ /EPSBoundingBoxState .systemvar 3 lt {
+ dup
+ (%%BoundingBox:) anchorsearch {
+ pop
+ EPSDEBUG { (gs_epsf.ps: found %%BoundingBox\n) print flush } if
+ 1 EPSBoundingBoxProcess
+ } {
+ (%%HiResBoundingBox:) anchorsearch {
+ pop
+ EPSDEBUG { (gs_epsf.ps: found %%HiResBoundingBox\n) print flush } if
+ 3 EPSBoundingBoxProcess
+ } {
+ pop % Not interested in this DSC comment
+ } ifelse
+ } ifelse
+ } if
+ /EPSBoundingBoxState .systemvar 5 lt {
+ dup (%%DocumentCustomColors:) anchorsearch {
+ pop
+ [ exch
+ { {
+ token not { exit } if
+ dup type /stringtype ne { stop } if
+ dup (atend) eq { stop } if
+ exch
+ } loop
+ {
+ counttomark 2 add index
+ dup (123) .peekstring not { stop } if
+ (%%+) eq {
+ dup (123) readstring pop pop
+ 256 string readline pop
+ cvx exec
+ } {
+ pop exit
+ } ifelse
+ } loop
+ } stopped {
+ cleartomark
+ } {
+ counttomark 0 gt {
+ currentpagedevice /MaxSeparations get 4 gt {
+ ] << /SeparationColorNames 3 -1 roll >> setpagedevice
+ } {
+ cleartomark
+ } ifelse
+ } {
+ cleartomark
+ } ifelse
+ } ifelse
+ } {
+ (%%EndComments) anchorsearch {
+ pop pop
+ % Ignore any following comments
+ 5 EPSBoundingBoxSetState
+ } {
+ pop
+ } ifelse
+ } ifelse
+ } if
+} bind def
+
+% Install EPS handler for DSC comments, which we do later
+/EPSBoundingBoxInit {
+ systemdict /NOEPS known not {
+ % Merge ProcessEPSComment with existing handler
+ /ProcessEPSComment load /exec load
+ currentuserparams /ProcessDSCComment get
+ dup //null eq {pop {pop pop}} if /exec load
+ 4 array astore cvx readonly
+ << /ProcessDSCComment 3 -1 roll >> setuserparams
+ } if
+} bind def
+
+/.runNoEPS /run load def
+
+/.runEPS { % file OR string --
+ /runEPS_save save def
+ /runEPS_dict_count countdictstack def
+ /runEPS_op_count count 2 sub def
+ /runEPS_page_count currentpagedevice /PageCount get def
+ 0 EPSBoundingBoxSetState
+ .runNoEPS
+ currentpagedevice /PageCount get runEPS_page_count sub 0 eq
+ { /showpage load exec } if
+ count runEPS_op_count sub {pop} repeat
+ countdictstack runEPS_dict_count sub {end} repeat
+ runEPS_save restore
+} bind def
+
+/run { % file OR string --
+ dup type /filetype ne { (r) file } if
+ dup (%!PS-Adobe-) .peekstring {
+ (%!PS-Adobe-) eq {
+ dup (%!PS-Adobe-X.X EPSF-X.X) .peekstring {
+ (EPSF) search {
+ pop pop pop
+ EPSDEBUG {(runEPS: Found EPS\n) print flush} if
+ systemdict /NOEPS known {
+ cvx .runNoEPS
+ } {
+ cvx .runEPS
+ } ifelse
+ } {
+ EPSDEBUG {(runEPS: Normal DSC\n) print flush} if
+ pop
+ cvx .runNoEPS
+
+ } ifelse
+ } {
+ EPSDEBUG {(runEPS: Short DSC\n) print flush} if
+ pop
+ cvx .runNoEPS
+ } ifelse
+ } {
+ EPSDEBUG {(runEPS: Not DSC\n) print flush} if
+ cvx .runNoEPS
+ } ifelse
+ } {
+ EPSDEBUG {(runEPS: Short non-DSC\n) print flush} if
+ pop
+ cvx .runNoEPS
+ } ifelse
+} bind odef
+
+% Handle DOS EPS files.
+
+/.runnoepsf /run load def
+/.epsfheader <C5D0D3C6> def
+/run
+ { dup type /filetype ne { (r) file } if
+ % Check for MS-DOS EPSF file (see Red Book p. 729).
+ dup ( ) .peekstring
+ { .epsfheader eq { dup ( ) readstring exch pop } { //false } ifelse }
+ { pop //false }
+ ifelse
+ % Stack: file true/false
+ { % This block is executed if the file is MS-DOS EPSF.
+ % Build up the little-endian byte offset and length.
+ 2
+ { 1 0 4
+ { 2 index read not { pop exit } if % if EOF, let error happen
+ 2 index mul add exch 256 mul exch
+ }
+ repeat exch pop exch
+ }
+ repeat
+ % Stack: offset length file
+ % Use flushfile to skip quickly to the start of the
+ % PostScript section.
+ dup 4 -1 roll 12 sub () /SubFileDecode filter flushfile
+ % Now interpret the PostScript.
+ exch () /SubFileDecode filter cvx run
+ }
+ { .runnoepsf
+ }
+ ifelse
+ } odef
+
+% rebind .runstdin to use redefined run
+userdict begin
+/.runstdin {
+ { (%stdin) run } execute0
+} bind def
+end
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_fapi.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,460 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Redefine Font and CIDFont categories with FAPI-handeled fonts.
+
+systemdict /.FAPIavailable known { //null .FAPIavailable } { //false } ifelse not {
+ (%END FAPI) .skipeof
+} if
+
+languagelevel 2 .setlanguagelevel
+
+%====================================================================
+% Redefine Font category with FAPIfontmap and CIDFont with FAPIfontmap :
+15 dict begin % a temporary dictionary for local binding.
+
+/EmbedFontObjectsQuery mark
+ /.EmbedFontObjects 0
+.dicttomark def
+
+/is_device_compatible_to_FAPI % - is_device_compatible_to_FAPI <bool>
+{
+ //true % removed a bogus check against EmbedFontObjectsQuery
+ %
+ % Temporary switch to allow override of FAPI and fallback to GS font rendering
+ % to be removed at some date after FT integration is completed and released.
+ %
+ /DisableFAPI where {
+ /DisableFAPI get not and
+ }if
+ % The code above assumes that only the requested parameter is rendered.
+ % The commented-out code below may be useful for general case.
+ % Keeping it for a while.
+ % counttomark 2 idiv {
+ % exch /.EmbedFontObjects eq {
+ % counttomark 1 add 1 roll cleartomark
+ % 0 eq exit
+ % } if
+ % } repeat
+ % dup mark eq {
+ % pop //true
+ % } if
+} bind def
+
+%----------------------------- Process FAPIconfig -----------------------
+
+% The HookDiskFonts and HookEmbeddedFonts take a simple array setting normally.
+% but if two or more FAPI plugins are built in, they can take a dictionary,
+% whose contents are the FAPI subtype string of a given plugin as the key,
+% and an array containing the (sub)set of font types the plugin should handle.
+% Any repetition of font types is ill advised since the resulting bevhaviour
+% will depend on the order entries are stored in the dictionary, which is
+% indeterminate. An attempt to use request a font scaler/renderer which cannot
+% deal with a given font type will result in the FAPI resorting to it's default
+% search for a viable plugin.
+%
+% As an example, you might want UFST to handle Truetype/Type 42 fonts, and
+% Freetype to handle others, thus:
+% /HookDiskFonts << /UFST [11 42] /FreeType [1 2 9] >>
+% /HookEmbeddedFonts << /UFST [11 42] /FreeType [1 2 9] >>
+
+/Config
+<<
+ % If we've got a FAPIConfig, run it now.
+ systemdict /FAPIconfig known
+ {
+ /FAPIconfig .systemvar .runlibfile
+ } if
+
+ % Now setup defaults for any entries not set above - these defaults are correct
+ % for FAPI/Freeetype
+ currentdict /FontPath known not { /FontPath (/Fonts)} if % A default directory for FAPI-handled font files
+ % path in FAPIfontmap.
+ currentdict /CIDFontPath known not { /CIDFontPath (/CIDFonts)} if % A default directory for FAPI-handled CIDfont % files path in FAPIcidfmap.
+ currentdict /HookDiskFonts known not { /HookDiskFonts [1 2 9 11 42] } if % FontType values for disk PS fonts to be
+ % redirected to FAPI.
+ currentdict /HookEmbeddedFonts known not { /HookEmbeddedFonts [1 2 9 11 42] } if % FontType values for embedded PS fonts to be
+ % redirected to FAPI.
+ /ServerOptions 2 dict
+>> def
+systemdict /.FAPIconfig //Config put
+
+/UFST .FAPIavailable
+{
+ systemdict /UFST_SSdir known
+ {
+ /UFSTFONTDIR UFST_SSdir def
+ systemdict /UFST_SSdir undef
+ }
+ {
+ /UFSTROMFONTDIR (%rom%fontdata/) def
+
+ UFSTROMFONTDIR (mtfonts/pcl45/mt3/plug__xi.fco)
+ concatstrings status
+ {
+ pop pop pop pop
+ /UFSTFONTDIR UFSTROMFONTDIR def
+ }
+ {
+ /UFSTFONTDIR () def
+ } ifelse
+ } ifelse
+
+ systemdict /UFST_PlugIn known not
+ {
+ systemdict /UFST_PlugIn UFSTFONTDIR (mtfonts/pcl45/mt3/plug__xi.fco) concatstrings put
+ } if
+
+ systemdict /FCOfontfile known not
+ {
+ systemdict /FCOfontfile UFSTFONTDIR (mtfonts/pclps2/mt3/pclp2_xj.fco) concatstrings put
+ } if
+
+ systemdict /FCOfontfile2 known not
+ {
+ systemdict /FCOfontfile2 UFSTFONTDIR (mtfonts/pcl45/mt3/wd____xh.fco) concatstrings put
+ } if
+
+ systemdict /FAPIfontmap known not
+ {
+ systemdict /FAPIfontmap (FCOfontmap-PCLPS2) put
+ } if
+} if
+
+()
+systemdict /UFST_SSdir .knownget {
+ (UFST_SSdir=) exch concatstrings concatstrings
+} if
+systemdict /UFST_PlugIn .knownget {
+ 1 index length 0 ne {
+ exch .filenamelistseparator concatstrings exch
+ } if
+ (UFST_PlugIn=) exch concatstrings concatstrings
+} if
+dup length 0 ne {
+ //Config /ServerOptions get exch /UFST exch put
+} {
+ pop
+} ifelse
+
+%------------------Copy the FontEmulationProcs here : -------------------
+
+/FontEmulationProcs /ProcSet findresource {
+ def
+} forall
+
+currentdict /super.complete_instance currentdict /complete_instance get put
+
+%-----------FAPI-specific methods for category redefinition : -----------
+
+/RefinePath % <FontDict> /key RefinePath <FontDict>
+{ exch begin
+ //Config exch get
+ /Path exch
+ Path //false .file_name_combine not {
+ exch
+ (Can't combine paths ) print print ( and ) print =
+ /RefinePath cvx /configurationerror signalerror
+ } if
+ def
+ currentdict end
+} bind def
+
+/complete_instance % <font_name> <FontDict> <Options> complete_FAPI_Font <font_name> <FontDict>
+{ //super.complete_instance exec
+ dup /CIDFontName known { /CIDFontPath } { /FontPath } ifelse //RefinePath exec
+} bind def
+
+/IsMyRecord % <raw_record> -> <raw_record> bool
+{ dup type /dicttype eq { dup /FAPI known } { //false } ifelse
+} bind def
+
+/IsActive % <record> IsActive <bool>
+{ pop //is_device_compatible_to_FAPI exec
+} bind def
+
+/FontRecordVirtualMethods //RecordVirtualMethodsStub dup length 2 add dict copy begin
+ /IsActive //IsActive def
+ /MakeInstance % <Name> <record> MakeInstance <Name> <Instance> <size>
+ { currentglobal 3 1 roll //true setglobal
+ //FontOptions //complete_instance exec
+ 2 copy //GetSize exec
+ 4 3 roll setglobal
+ } bind def
+currentdict end def
+
+/CIDFontRecordVirtualMethods //RecordVirtualMethodsStub dup length 3 add dict copy begin
+ /GetCSI //TranslateCSI def
+ /IsActive //IsActive def
+ /MakeInstance % <Name> <record> MakeInstance <Name> <Instance> <size>
+ { currentglobal 3 1 roll //true setglobal
+ //CIDFontOptions //complete_instance exec
+ 2 copy //GetSize exec
+ 4 3 roll setglobal
+ } bind def
+currentdict end def
+
+/ReadFCOfontmap: % <path> ReadFCOfontmap: name dict ...
+{
+ /fontfile exch def
+ {
+ currentfile =string readline not {
+ pop exit
+ } if
+ dup length 0 ne {
+ 0 () /SubFileDecode filter
+ dup token not {
+ % A comment line
+ closefile
+ } {
+ dup /EndFCOfontmap cvx eq {
+ pop closefile exit
+ } if
+ exch dup token not {
+ /ReadFCOfontmap: cvx /rangecheck signalerror
+ } if
+ exch dup token not {
+ /StandardEncoding
+ } {
+ dup type /nametype ne {
+ /ReadFCOfontmap: cvx /rangecheck signalerror
+ } if
+ } ifelse
+ findencoding
+ exch dup token not {
+ //null
+ } {
+ dup type /nametype ne {
+ /ReadFCOfontmap: cvx /rangecheck signalerror
+ } if
+ /Decoding findresource
+ } ifelse
+ exch closefile % index name enc dec|null
+ 4 3 roll % name enc dec|null index
+ << /Path fontfile
+ /FontType 1
+ /FAPI /UFST
+ /SubfontId counttomark 2 add -1 roll
+ /Decoding counttomark 2 add -1 roll
+ dup //null eq {
+ pop pop
+ } if
+ /Encoding counttomark 2 add -1 roll
+
+ /FontInfo
+ <<
+ /UnderlineThickness 50
+ /Weight (Regular)
+ /version (0.00)
+ /ItalicAngle 0
+ /UnderlinePosition -100
+ /FamilyName ()
+ /Notice ()
+ /FullName ()
+ >>
+ % although we pretend this is a Type 1, the FAPI interface currently
+ % needs an identity FontMatrix
+ /FontMatrix [0.001 0.0 0.0 0.001 0.0 0.0]
+ % we need a fake CharStrings dictionary to placate certain jobs
+ % which try to look inside it
+ /CharStrings
+ <<
+ /.notdef ( )
+ StandardEncoding { ( ) } forall
+ >>
+ % FontBBox will get replaced with valid numbers pulled from the rendering engine
+ /FontBBox [-128 -128 1024 1024] cvx
+ >> % dup { exch == = } forall
+ } ifelse
+ } {
+ pop
+ } ifelse
+ } loop
+ currentdict /fontfile undef
+} bind def
+
+%----------------------------------The Redefintion---------------------
+
+/MappedCategoryRedefiner /ProcSet findresource /Redefine get /Redefine exch def
+
+% Redefine the /Font category :
+4 dict begin
+ /CategoryName /Font def
+ /MapFileName systemdict /FAPIfontmap known {/FAPIfontmap .systemvar} {(FAPIfontmap)} ifelse def
+ /VerifyMap { pop } bind def
+ /PreprocessRecord % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
+ { //IsMyRecord exec dup {
+ pop dup /RecordVirtualMethods //FontRecordVirtualMethods put
+ //true
+ } if
+ } bind def
+currentdict end Redefine
+
+% Redefine the /CIDFont category :
+4 dict begin
+ /CategoryName /CIDFont def
+ /MapFileName systemdict /FAPIcidfmap known {/FAPIcidfmap .systemvar} {(FAPIcidfmap)} ifelse def
+ /VerifyMap { pop } bind def
+ /PreprocessRecord % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
+ { //IsMyRecord exec dup {
+ pop dup /RecordVirtualMethods //CIDFontRecordVirtualMethods put
+ //true
+ } if
+ } bind def
+currentdict end Redefine
+
+%==================== A hook for buildfont* operators ====================
+
+% The procedure .FAPIhook redirects PS fonts to FAPI on necessity.
+% This depends on the following conditions :
+%
+% 1. If font dictionary has /FAPI entry, it is a font listed in FAPIconfig.FontPath,
+% and must be build with .FAPIrebuildfont, or a copy of a font, which was
+% built with .FAPIrebuildfont .
+%
+% 2. If the font dictionary has /PathLoad entry, and has no /FAPI entry,
+% it is an installed PS font, which is described in lib/fontmap or
+% in GS_FONTPATH. .loadfont inserts /PathLoad entry for this case
+% (see gs_fonts.ps).
+%
+% Installed fonts are being loaded with GS font loader,
+% the they are passed to FAPI is same way as embedded fonts are.
+% We do so because UFST cannot read fonts, which don't
+% follow Type 1/42 file format strongly.
+%
+% 3. Executing .loadfont, we place /FAPI_hook_disable in the 0th
+% element of some procedure on the execution stack - see gs_fonts.ps .
+% If FAPI_hook finds /FAPI_hook_disable in there,
+% it knows that it is called for a disk font during
+% its internal definefont.
+%
+% 4. If font dictionary has no /FAPI entry, and has no /Path entry,
+% and if we are not in .loadfont context, it is an embedded font.
+%
+% 5. Two entries to be defined in lib/FAPIconfig to control the hooking of PS fonts :
+% HookDiskFonts and HookEmbeddedFonts .
+% They specify arrays of font types (integers) to be redirected with FAPI.
+% HookDiskFonts controls disk PS fonts (which fall into (2) and (3) ).
+% HookEmbeddedFonts controls fonts being embedded into documents.
+%
+% 7. We apply the operator .passtoFAPI for checking whether FAPI can handle a font.
+% If so, we insert /FAPI entry into the font dictionary and convert it
+% with .FAPIrebuildfont . Otherwise the font is handled with the native GS font renderer.
+
+/FAPI_hook_debug % <proc> FAPI_hook_debug -
+FAPIDEBUG { {exec} } { {pop} } ifelse
+bind def
+
+/FAPI_hook_warn % <proc> FAPI_hook_debug -
+QUIET { {pop} } { {exec} } ifelse
+bind def
+
+/FAPI_is_hook_disabled % - FAPI_is_hook_disabled <bool>
+{ % checks whether execution stack contains packedarray started with /FAPI_hook_disable .
+ /FAPI_hook_disable /MappedCategoryRedefiner /ProcSet findresource /execstack_lookup get exec
+ //null ne
+} bind def
+
+/FAPIhook_aux % <string|name> <font_dict> .FAPIhook <string|name> <font>
+{ % name <<font>>
+ { (\nFAPIhook ) print 1 index = flush } //FAPI_hook_debug exec
+ dup /FAPI known {
+ { //PrintFontRef exec ( is mapped to FAPI=) print dup /FAPI get = flush } //FAPI_hook_debug exec
+ //true //.FAPIrebuildfont //ChooseDecoding exec
+ } {
+ dup /PathLoad known dup {
+ { (PathLoad known for the font ) print //PrintFontRef exec (.\n) print flush} //FAPI_hook_debug exec
+ } {
+ pop //FAPI_is_hook_disabled exec dup
+ { pop
+ { (FAPIhook is in .loadfont context for the font ) print //PrintFontRef exec (.\n) print flush } //FAPI_hook_debug exec
+ //true
+ } if
+ } ifelse
+ { /HookDiskFonts } { /HookEmbeddedFonts } ifelse
+ //Config exch get % name <<font>> [types]
+
+ dup type /dicttype eq
+ {
+ //false exch
+ {
+ 3 index //GetFontType exec //FindInArray exec
+ {
+ 2 index exch /FAPIPlugInReq exch put
+ pop //true exit
+ }
+ { pop } ifelse
+ } forall
+ }
+ {
+ 1 index //GetFontType exec //FindInArray exec % name <<font>> bHook
+ } ifelse
+
+ { { (Trying to render the font ) print //PrintFontRef exec ( with FAPI...\n) print flush } //FAPI_hook_debug exec
+ //.FAPIpassfont {
+ { //PrintFontRef exec ( is being rendered with FAPI=) print dup /FAPI get = flush } //FAPI_hook_debug exec
+ //false //.FAPIrebuildfont //ChooseDecoding exec
+ } {
+ { (Can't render ) print //PrintFontRef exec ( with FAPI, will do with native GS renderer.\n) print flush } //FAPI_hook_warn exec
+ } ifelse
+ } {
+ { (The font ) print //PrintFontRef exec ( doesn't need to render with FAPI.\n) print flush } //FAPI_hook_debug exec
+ } ifelse
+
+ % Remove the plugin request from the font dictionary
+ dup /FAPIPlugInReq undef
+ } ifelse
+} bind def
+
+/FAPIhook % <string|name> <font_dict> .FAPIhook <string|name> <font>
+{ //is_device_compatible_to_FAPI exec
+ { //FAPIhook_aux exec
+ } {
+ { (FAPIhook is disabled for the current device.\n) print flush } //FAPI_hook_debug exec
+ } ifelse
+} bind def
+
+% ------------------ Redefine .buildfont* with FAPI : -----------------------
+
+/.buildfont1
+{ //.buildfont1 exec exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont2
+{ //.buildfont2 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont42
+{ //.buildfont42 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont9
+{ //.buildfont9 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont10
+{ //.buildfont10 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+/.buildfont11
+{ //.buildfont11 exec //FAPIhook exec
+} bind % 'odef' is below.
+
+end % the temporary dictionary for local binding.
+odef odef odef odef odef odef
+
+.setlanguagelevel
+
+%END FAPI
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_fntem.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,415 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% A procset for Postscript font emulation
+
+% The procedures must not depend on the presence of the
+% procset dictionary on the dictionary stack.
+
+languagelevel 2 .setlanguagelevel
+
+%========================= Process xlatmap ====================
+mark
+%% Replace 1 (xlatmap)
+(xlatmap) .runlibfile
+.dicttomark dup systemdict exch /.xlatmap_dict exch put
+
+% Convert it into a plain text to simplify the processing in C :
+% *(fontkind\0\0\ *(charmap\0decoding\0) ) \0
+
+() exch {
+ 3 1 roll =string cvs concatstrings (\0\0) concatstrings
+ exch
+ { =string cvs concatstrings (\0) concatstrings
+ } forall
+} forall
+(\0) concatstrings
+systemdict exch /.xlatmap exch put
+
+/FontEmulationProcs 10 dict begin
+
+%-------------------------------Font--------------------------------
+
+/FontCommon % - font_common -
+{ currentdict /PaintType known not {
+ /PaintType 0 def
+ } if
+ currentdict /Encoding .knownget not {
+ //StandardEncoding
+ } if
+ dup type /nametype eq {
+ /Encoding findresource
+ } if
+ /Encoding exch def
+} bind def
+
+/FontOptions 5 dict begin
+ /make_procs currentdict def
+ /NameKey /FontName def
+ /TypeKey /FontType def
+
+ 1
+ {
+ currentdict /FontMatrix known not { /FontMatrix [0.001 0 0 0.001 0 0] def } if
+ currentdict /FontBBox known not { /FontBBox [-128 -128 1024 1024] cvx def } if % zfapi.ps refines it.
+ /Private 0 dict def
+ % if we're using the FAPI/UFST code for Microtype fonts,
+ % then we've already created a "fake" CharStrings, so don't replace it.
+ % See gs_fapi.ps
+ currentdict /CharStrings known not {/CharStrings << /.notdef () >> def} if
+ //FontCommon exec
+ } bind def
+
+ 42
+ { /FontMatrix [1 0 0 1 0 0] def
+ /FontBBox [0 0 1 1] def % zfapi.ps refines it.
+ /CharStrings <<>> def
+ /sfnts [<00010000 0000 0000 0000 0000 0000>] def
+ /GlyphDirectory [] def
+ //FontCommon exec
+ } bind def
+
+ %fixme : more font types.
+
+currentdict end def
+
+%---------------------------CIDFont---------------------------
+
+/TranslateCSI % <record> TranslateCSI <CSI>
+{ RESMPDEBUG { (fntem TranslateCSI beg ) = } if
+ begin
+ CSI length 2 eq {
+ << /Registry (Adobe)
+ /Ordering CSI aload pop
+ /Supplement exch
+ >>
+ } {
+ << /Registry CSI 0 get
+ /Ordering CSI 1 get
+ /Supplement CSI 2 get
+ >>
+ } ifelse
+ end
+ RESMPDEBUG { (fntem TranslateCSI end ) = } if
+} bind def
+
+/CIDFontCommon
+{ /CIDSystemInfo currentdict //TranslateCSI exec def
+ currentdict /CSI undef
+ /FontBBox [-128 -128 1024 1024] def % zfapi.ps refines it.
+ /CIDCount 1 def % ChooseDecoding will set a reasonable value.
+} bind def
+
+% GFlyph substitution table for narrow, wide, proportional glyphs -
+% used with TrueTypes.
+
+currentpacking //false setpacking
+/SubstNWP <<
+
+ % Array format : orig_type, beg_CID, end_CID, subst_beg_CID, subst_type
+ % type = (n==narrow, w==wide, p==proportional).
+
+ /Japan1
+ { p 1 94 231 n
+
+ p 17 26 780 w
+ p 34 59 790 w
+ p 66 91 816 w
+ w 842 842 7918 w % fixme: These substitutions require to shift the glyph origin.
+ w 844 844 7919 w
+ w 846 846 7920 w
+ w 848 848 7921 w
+ w 850 850 7922 w
+ w 876 876 7923 w
+ w 908 908 7924 w
+ w 910 910 7925 w
+ w 912 912 7926 w
+ w 914 914 7927 w
+ w 925 925 7928 w
+ w 927 927 7929 w
+ w 929 929 7930 w
+ w 931 931 7931 w
+ w 933 933 7932 w
+ w 959 959 7933 w
+ w 991 991 7934 w
+ w 993 993 7935 w
+ w 995 995 7936 w
+ w 1002 1002 7937 w
+ w 1009 1009 7938 w
+ w 1010 1010 7939 w
+ } cvlit
+
+ /Japan2 1 index
+
+ /CNS1
+ { p 1 94 13648 n
+
+ p 17 26 333 w
+ p 34 59 365 w
+ p 66 91 391 w
+ } cvlit
+
+ /GB1
+ { p 2 94 814 n
+
+ p 2 94 262 w
+
+ p 1 1 7716 n
+ } cvlit
+
+ /Korea1
+ { p 1 60 8094 n
+ p 62 94 8155 n
+
+ p 2 59 264 w
+ p 63 94 325 w
+ } cvlit
+
+ /Identity []
+
+ /Unicode []
+
+>> def
+setpacking
+
+/CIDFontOptions 5 dict begin
+ /make_procs currentdict def
+ /NameKey /CIDFontName def
+ /TypeKey /CIDFontType def
+
+ 0
+ { //CIDFontCommon exec
+ /FDArray [
+ 14 dict begin
+ /FontName CIDFontName =string cvs (%) concatstrings cvn def
+ /FontType 1 def
+ /FontMatrix [0.001 0 0 0.001 0 0 ] def
+ /PaintType 0 def
+ /Private 0 dict def
+ currentdict
+ end
+ ] def
+ /GlyphDirectory [] def
+ /GDBytes 1 def
+ /FDBytes 0 def
+ } bind def
+
+ 1
+ { //CIDFontCommon exec
+ /FontMatrix [1 0 0 1 0 0] def
+ /BuildGlyph {} def
+ } bind def
+
+ 2
+ { //CIDFontCommon exec
+ /FontMatrix [1 0 0 1 0 0] def
+ /GDBytes 2 def
+ /CIDMap <0000> def
+ /sfnts [<00010000 0000 0000 0000 0000 0000>] def
+ /Encoding [] def
+ /CharStrings << /.notdef 0 >> def
+ } bind def
+
+currentdict end def
+
+/complete_instance % <font_name> <FontDict> <Options> complete_FAPI_Font <font_name> <FontDict>
+{ begin
+ dup length dict copy
+ begin
+ dup type /nametype ne { cvn } if
+ dup NameKey exch def
+ currentglobal //true setglobal
+ make_procs TypeKey load .knownget {
+ exec
+ } { setglobal
+ /complete_instance cvx /invalidfont signalerror
+ } ifelse
+ setglobal
+ currentdict end
+ end
+} bind def
+
+/GetFilePath % <scratch> <Name> <record> GetFilePath <filepath>
+{ exch pop % (scratch) <record>
+ /Path get % (scratch) (path)
+ exch copy
+ % What we make here it is not a complete PS resource.
+ % Unable to provide full conformity :
+ % the attempt to run this file may fail.
+} bind def
+
+/GetSize % <Name> <record> GetSize <size>
+{ pop pop -1 % Unknown size.
+ % fixme: probably we could provide an estimation size for some fonts.
+} bind def
+
+/RecordVirtualMethodsStub 3 dict begin
+ /GetFilePath //GetFilePath def
+ /GetSize //GetSize def
+currentdict end def
+
+% ---------------------- Decoding helpers ----------------------------
+
+/encodingnames mark
+ StandardEncoding /StandardEncoding
+ ISOLatin1Encoding /ISOLatin1Encoding
+ SymbolEncoding /SymbolEncoding
+ DingbatsEncoding /DingbatsEncoding
+.dicttomark def
+
+/ChooseDecoding % <font> ChooseDecoding <font>
+{ { % A loop for 'exit' context.
+ dup /Decoding .knownget {
+ dup type /nametype eq {
+ 1 index /CIDFontType known { /CIDDecoding } { /Decoding } ifelse
+ findresource 1 index exch /Decoding exch put
+ } {
+ pop
+ } ifelse
+ dup /CIDFontType known {
+ dup dup /Decoding get /CIDCount get /CIDCount exch put
+ } if
+ exit
+ } if
+ dup /CIDFontType known {
+ % This is a hooked CID font, no need for Decoding.
+ exit
+ } if
+ % This works when the renderer can't choose character by name,
+ % and we cannot determine the charset.
+ % Probably this branch is to be removed after UFST problem is fixed.
+ dup /Encoding get % <<font>> encoding
+ dup type /nametype eq {
+ /Decoding findresource 1 index exch /Decoding exch put
+ } {
+ dup //encodingnames
+ exch .knownget {
+ { /Decoding findresource } stopped {pop pop //true}{ exch pop 1 index exch /Decoding exch put //false } ifelse
+ }
+ {
+ //true
+ } ifelse
+
+ {
+ % unknown encoding, or an encoding for which we don't have a
+ % predefined decoding, convert it to decoding :
+ dup length dict begin
+ /.notdef 0 def
+ 0 1 currentdict length 1 sub
+ { dup 2 index exch get
+ dup dup /.notdef ne exch type /nulltype ne and {
+ exch def
+ } {
+ pop pop
+ } ifelse
+ } for
+ pop
+ currentdict end
+ 1 index exch /Decoding exch put
+ } if
+ } ifelse
+ exit
+ } loop
+ dup /CIDFontType known {
+ dup /SubstNWP .knownget not {
+ dup /CIDSystemInfo get /Ordering get cvn
+ } if
+ dup type /nametype eq {
+ //SubstNWP exch .knownget not {
+ []
+ } if % <<font>> [SubstNWP]
+ } if
+ 1 index exch /SubstNWP exch put
+ } if
+} bind def
+
+/PrintFontRef % <string|name> <font> PrintFontRef <string|name> <font>
+{ dup /FontName known { (Font ) } { (CIDFont ) } ifelse print
+ 1 index =string cvs print
+ dup /FontName .knownget not {
+ dup /CIDFontName get
+ } if % <string|name> <font> <fontname>
+ dup 3 index ne {
+ ( \( aliased from ) print
+ =string cvs print ( \)) print
+ } {
+ pop
+ } ifelse
+} bind def
+
+/GetFontType % <font> GetFontType int
+{ dup /CIDFontType .knownget {
+ exch pop 9 add
+ } {
+ /FontType get
+ } ifelse
+} bind def
+
+/FindInArray % <array> <elem> .array_find <bool>
+{ //false 3 1 roll
+ exch { % false elem elem_i
+ 1 index eq { % false elem
+ pop //true exch
+ } if
+ } forall
+ pop
+} bind def
+
+/ProvideUnicodeDecoding % <font> ProvideUnicodeDecoding <font>
+{
+ % If the font is maintained by FAPI, or if it is TT-emulated CID font,
+ % it already has /Decoding. But its value isn't guaranteeed to
+ % be an Unicode decoding. Since we can't determine whether
+ % it is an Unicode decoding, we unconditionally load an appropriate Unicode decoding
+ % and attach it with /GlyphNames2Unicode entry.
+ %
+ % Another interesting case is when the font already has /GlyphNames2Unicode.
+ % The latter to be used instead. Note that /GlyphNames2Unicode
+ % appears only when type 32 fonts are disable (see .pdf_hook_DSC_Creator),
+ % but an automatic disabling is not implemented yet.
+
+ currentglobal //true setglobal exch
+ dup /FontInfo known not {
+ dup /FontInfo 1 dict put
+ } if
+ { % A loop just for 'exit' context.
+ dup /FontInfo get /GlyphNames2Unicode known {
+ exit
+ } if
+ dup /CIDFontType known {
+ dup mark exch % bool <font> [ <font>
+ dup /CIDSystemInfo get /Ordering get (.Unicode) % bool <font> [ <font> () ()
+ concatstrings cvn % bool <font> [ <font> /Name
+ /CIDDecoding { findresource } stopped {
+ % Can't provide a decoding, giving up without creating /GlyphNames2Unicode.
+ cleartomark exit
+ } if % bool <font> [ <font> <D>
+ exch /FontInfo get exch % bool <font> [ <FI> <D>
+ /GlyphNames2Unicode exch
+ .forceput % FontInfo can be read-only.
+ pop % bool <font>
+ exit
+ } if
+ dup /FontInfo get % bool <font> <FI>
+ /GlyphNames2Unicode /Unicode /Decoding findresource
+ .forceput % FontInfo can be read-only.
+ exit
+ } loop
+ exch setglobal
+} bind def
+
+currentdict end /ProcSet defineresource pop
+
+.setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_fonts.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1288 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Font initialization and management code.
+
+% Define the default font.
+/defaultfontname /Courier def
+
+% Define the name of the font map file.
+% Note that the "%%Replace " comment below provides the font map file name
+% for compiling initialization files into executable. Most likely it should be
+% consistent with the one specified here.
+/defaultfontmap (Fontmap) def
+
+/defaultfontmap_content 50 dict
+1 dict begin
+/; { 2 index 3 1 roll .growput } bind def
+%% Replace 0 (Fontmap)
+end def
+
+% ------ End of editable parameters ------ %
+
+% Define the UniqueIDs and organization XUID assigned to Artifex.
+% UniqueIDs 5,066,501 - 5,066,580 are assigned as follows:
+% 01 and 02 for shareware Cyrillic
+% 33 through 67 for Type 1 versions of the Hershey fonts
+% UniqueIDs 5,115,501 - 5,115,600 are currently unassigned.
+/AladdinEnterprisesXUID 107 def
+
+% If SUBSTFONT is defined, make it the default font.
+/SUBSTFONT where { pop /defaultfontname /SUBSTFONT load def } if
+
+% Define a reliable way of accessing FontDirectory in systemdict.
+/.FontDirectory
+{ /FontDirectory .systemvar
+} .bind odef
+
+% If DISKFONTS is true, we load individual CharStrings as they are needed.
+% (This is intended primarily for machines with very small memories.)
+% In this case, we define another dictionary, parallel to FontDirectory,
+% that retains an open file for every font loaded.
+/FontFileDirectory 10 dict def
+
+% Define a temporary string for local use, since using =string
+% interferes with some PostScript programs.
+/.fonttempstring 8192 string def
+
+% Split up a search path into individual directories or files.
+/.pathlist % <path> .pathlist <dir1|file1> ...
+ { { dup length 0 eq { pop exit } if
+ .filenamelistseparator search not { exit } if
+ exch pop exch
+ }
+ loop
+ } bind def
+
+% Load a font name -> font file name map.
+userdict /Fontmap .FontDirectory maxlength dict put
+userdict /.nativeFontmap .FontDirectory maxlength dict put
+/.loadFontmap { % <file> .loadFontmap -
+ % We would like to simply execute .definefontmap as we read,
+ % but we have to maintain backward compatibility with an older
+ % specification that makes later entries override earlier
+ % ones within the same file.
+ 50 dict exch .readFontmap
+ { .definefontmap } forall
+} bind def
+/.readFontmap { % <dict> <file> .readFontmap <dict>
+ { dup token not { closefile exit } if
+ % stack: dict file fontname
+ % This is a hack to get around the absurd habit of MS-DOS editors
+ % of adding an EOF character at the end of the file.
+ dup (\032) eq { pop closefile exit } if
+ 1 index token not
+ { (Fontmap entry for ) print dup =only
+ ( has no associated file or alias name! Giving up.) = flush
+ {.readFontmap} 0 get 1 .quit
+ } if
+ dup type dup /stringtype eq exch /nametype eq or not
+ { (Fontmap entry for ) print 1 index =only
+ ( has an invalid file or alias name! Giving up.) = flush
+ {.readFontmap} 0 get 1 .quit
+ } if
+ % stack: dict file fontname filename|aliasname
+ 1 index type /stringtype eq
+ 1 index type /nametype eq and 1 index xcheck and
+ 1 index /run eq 2 index /.runlibfile eq or and {
+ % This is an inclusion entry.
+ pop findlibfile { exch pop } { file } ifelse
+ 2 index exch .readFontmap pop
+ } {
+ % This is a real entry.
+ % Read and pop tokens until a semicolon.
+ { 2 index token not
+ { (Fontmap entry for ) print 1 index =only
+ ( ends prematurely! Giving up.) = flush
+ {.loadFontmap} 0 get 1 .quit
+ } if
+ dup /; eq { pop 3 index 3 1 roll .growput exit } if
+ pop
+ } loop
+ } ifelse
+ } loop
+} bind def
+% Add an entry in Fontmap. We redefine this if the Level 2
+% resource machinery is loaded.
+/.definefontmapaux % <bool> <fontname> <file|alias> .definefontmapaux -
+ { % Since Fontmap is global, make sure the values are storable.
+ % If the fontname contains Unicode (first byte == \000) and
+ % this is not an alias definition, define an alias using ASCII
+ % (stripping out the high \000 bytes). Observed with some TT fonts.
+ 1 index 100 string cvs
+ dup length 0 gt {
+ 0 get 0 eq 1 index type /nametype ne and {
+ 1 index 100 string cvs dup length 2 div cvi string //true exch
+ 0 1 2 index length 1 sub {
+ % stack: fontname filename fontnamestring addflag newstring index
+ dup 4 index exch 2 mul get 0 ne {
+ % High byte of pair is not \000
+ pop pop //false exch
+ exit
+ } if
+ dup 4 index exch 2 mul 1 add get 2 index 3 1 roll put
+ } for
+ exch {
+ DEBUG { (\nAdding alias for: ) print 1 index ==only ( as: ) print dup //== exec flush } if
+ cvn exch cvn .definefontmapaux % recurse with an alias
+ } {
+ pop pop % discard the name
+ } ifelse
+ } if
+ } {
+ pop
+ } ifelse
+ .currentglobal 3 1 roll //true .setglobal
+ dup type /stringtype eq
+ { dup .gcheck not { dup length string copy } if
+ }
+ if
+
+ 4 -1 roll {.nativeFontmap}{Fontmap} ifelse
+ 3 -1 roll 2 copy .knownget
+ { % Add an element to the end of the existing value,
+ % unless it's the same as the current last element.
+ mark exch aload pop counttomark 4 add -1 roll
+ 2 copy eq { cleartomark pop pop } { ] readonly .growput } ifelse
+ }
+ { % Make a new entry.
+ mark 4 -1 roll ] readonly .growput
+ }
+ ifelse .setglobal
+ } bind def
+
+/.definefontmap % <fontname> <file|alias> .definefontmap -
+{
+ //false 3 1 roll //.definefontmapaux exec
+} bind def
+
+/.definenativefontmap % <fontname> <file|alias> .definenativefontmap -
+{
+ //true 3 1 roll //.definefontmapaux exec
+} bind def
+
+% Parse a font file just enough to find the FontName or FontType.
+/.findfontvalue { % <file> <key> .findfontvalue <value> true
+ % <file> <key> .findfontvalue false
+ % Closes the file in either case.
+ exch dup read {
+ 2 copy unread 16#80 eq {
+ dup (xxxxxx) readstring pop pop % skip .PFB header
+ } if
+ { % Stack: key file
+ % Protect ourselves against syntax errors here.
+ dup { token } stopped { //false exit } if
+ not { //false exit } if % end of file
+ dup /eexec eq { pop //false exit } if % reached eexec section
+ dup /Subrs eq { pop //false exit } if % Subrs without eexec
+ dup /CharStrings eq { pop //false exit } if % CharStrings without eexec
+ dup 3 index eq
+ { xcheck not { dup token exit } if } % found key
+ { pop }
+ ifelse
+ } loop
+ % Stack: key file value true (or)
+ % Stack: key file false
+ dup { 4 } { 3 } ifelse -2 roll closefile pop
+ } { closefile pop //false } ifelse
+} bind def
+/.findfontname
+ { /FontName .findfontvalue
+ } bind def
+
+% If there is no FONTPATH, try to get one from the environment.
+NOFONTPATH { /FONTPATH () def } if
+/FONTPATH where
+ { pop }
+ { /FONTPATH (GS_FONTPATH) getenv not { () } if def }
+ifelse
+FONTPATH length 0 eq { (%END FONTPATH) .skipeof } if
+/FONTPATH [ FONTPATH .pathlist ] def
+
+% Scan directories looking for plausible fonts. "Plausible" means that
+% the file begins with %!PS-AdobeFont or %!FontType1, or with \200\001
+% followed by four arbitrary bytes and then either of these strings.
+% To speed up the search, we skip any file whose name appears in
+% the Fontmap (with any extension and upper/lower case variation) already,
+% and any file whose extension definitely indicates it is not a font.
+%
+% NOTE: The current implementation of this procedure is somewhat Unix/DOS-
+% specific. It assumes that '/' and '\' are directory separators, and that
+% the part of a file name following the last '.' is the extension.
+%
+/.lowerstring % <string> .lowerstring <lowerstring>
+ { 0 1 2 index length 1 sub
+ { 2 copy get dup 65 ge exch 90 le and
+ { 2 copy 2 copy get 32 add put }
+ if pop
+ }
+ for
+ } bind def
+/.splitfilename { % <dir.../base.extn> .basename <base> <extn>
+ % Make the file name read-only to detect aliasing bugs.
+ % We really don't like doing this, but we've had one
+ % such bug already.
+ readonly {
+ (/) search { //true } { (\\) search } ifelse { pop pop } { exit } ifelse
+ } loop
+ dup { (.) search { pop pop } { exit } ifelse } loop
+ 2 copy eq {
+ pop ()
+ } {
+ exch dup length 2 index length 1 add sub 0 exch getinterval exch
+ } ifelse
+} bind def
+/.scanfontdict 1 dict def % establish a binding
+/.scanfontbegin
+ { % Construct the table of all file names already in Fontmap.
+ currentglobal //true setglobal
+ .scanfontdict dup maxlength Fontmap length 2 add .max .setmaxlength
+ Fontmap
+ { exch pop
+ { dup type /stringtype eq
+ { .splitfilename pop .fonttempstring copy .lowerstring cvn
+ .scanfontdict exch //true put
+ }
+ { pop
+ }
+ ifelse
+ }
+ forall
+ }
+ forall
+ setglobal
+ } bind def
+/.scanfontskip mark
+ % Strings are converted to names anyway, so....
+ /afm //true
+ /bat //true
+ /c //true
+ /cmd //true
+ /com //true
+ /dir //true
+ /dll //true
+ /doc //true
+ /drv //true
+ /exe //true
+ /fon //true
+ /fot //true
+ /h //true
+ /o //true
+ /obj //true
+ /pfm //true
+ /pss //true % Adobe Multiple Master font instances
+ /txt //true
+.dicttomark def
+/.scan1fontstring 8192 string def
+% %%BeginFont: is not per Adobe documentation, but a few fonts have it.
+/.scanfontheaders [(%!PS-Adobe*) (%!FontType*) (%%BeginFont:*)] def
+0 .scanfontheaders { length .max } forall 6 add % extra for PFB header
+/.scan1fontfirst exch string def
+/.scanfontdir % <dirname> .scanfontdir -
+ { currentglobal exch //true setglobal
+ QUIET not { (Scanning ) print dup print ( for fonts...) print flush } if
+ [ 1 index ] (*) .generate_dir_list_templates
+ 0 0 0 4 -1 roll % found scanned files
+ { % stack: <fontcount> <scancount> <filecount> <filename>
+ exch 1 add exch % increment filecount
+ dup .splitfilename .fonttempstring copy .lowerstring
+ % stack: <fontcount> <scancount> <filecount+1> <filename>
+ % <BASE> <ext>
+ .scanfontskip exch known exch .scanfontdict exch known or
+ { pop
+ % stack: <fontcount> <scancount> <filecount+1>
+ }
+ { 3 -1 roll 1 add 3 1 roll
+ % stack: <fontcount> <scancount+1> <filecount+1> <filename>
+ dup (r) { file } .internalstopped
+ { pop pop //null ()
+ % stack: <fontcount> <scancount+1> <filecount+1> <filename>
+ % null ()
+ }
+ {
+ % On some platforms, the file operator will open directories,
+ % but an error will occur if we try to read from one.
+ % Handle this possibility here.
+ dup .scan1fontfirst { readstring } .internalstopped
+ { pop pop () }
+ { pop }
+ ifelse
+ % stack: <fontcount> <scancount+1> <filecount+1>
+ % <filename> <file> <header>
+ }
+ ifelse
+ % Check for PFB file header.
+ dup (\200\001????*) .stringmatch
+ { dup length 6 sub 6 exch getinterval }
+ if
+ % Check for font file headers.
+ //false .scanfontheaders
+ { 2 index exch .stringmatch or
+ }
+ forall exch pop
+ { % stack: <fontcount> <scancount+1> <filecount+1> <filename>
+ % <file>
+ dup 0 setfileposition .findfontname
+ { dup .nativeFontmap exch known
+ { pop pop
+ }
+ { exch copystring exch
+ DEBUG { ( ) print dup =only flush } if
+ 1 index .definenativefontmap
+ .splitfilename pop //true .scanfontdict 3 1 roll .growput
+ % Increment fontcount.
+ 3 -1 roll 1 add 3 1 roll
+ }
+ ifelse
+ }
+ { pop
+ }
+ ifelse
+ }
+ % .findfontname will have done a closefile in the above case.
+ { dup //null eq { pop } { closefile } ifelse pop
+ }
+ ifelse
+ }
+ ifelse
+ }
+ .scan1fontstring filenameforall
+ QUIET
+ { pop pop pop }
+ { ( ) print =only ( files, ) print =only ( scanned, ) print
+ =only ( new fonts.) = flush
+ }
+ ifelse
+ pop
+ setglobal
+ } bind def
+
+%END FONTPATH
+
+% Try to enumerate native fonts registered with the os
+% and add them to the fontmap. This relies on a custom
+% operator which calls platform-specific C code. It
+% returns an array of arrays, each containing a pair
+% of strings: what the system thinks is the ps name,
+% and the access path.
+/.setnativefontmapbuilt { % set whether we've been run
+ systemdict exch /.nativefontmapbuilt exch .forceput
+} .bind executeonly def
+systemdict /NONATIVEFONTMAP known .setnativefontmapbuilt
+/.buildnativefontmap { % - .buildnativefontmap <bool>
+ systemdict /.nativefontmapbuilt .knownget not
+ { //false} if
+
+ {//false}
+ {
+ QUIET not {
+ (Querying operating system for font files...\n)
+ print flush
+ } if
+ .getnativefonts dup
+ {
+ exch
+ {
+ % stack: [ (name) (path) ]
+ % verify the font name ourselves
+ dup 1 get (r) { file } .internalstopped
+ {
+ % skip the entry if we can't open the returned path
+ pop pop pop
+ }{
+ % we could open the font file
+ mark 2 1 roll
+ {.findfontname} .internalstopped
+ {
+ cleartomark
+ pop
+ }
+ {
+ counttomark 1 add -1 roll pop
+ not { dup 0 get } if % stack: (newname) [ (name) (path) ]
+ % DEBUG { ( found ) print dup print (\n) print flush } if
+ % add entry to the fontmap
+ 1 index exch 0 exch dup type /nametype ne {cvn} if put
+ aload pop .definenativefontmap
+ } ifelse
+ } ifelse
+ } forall
+ } if
+ % record that we've been run
+ //true .setnativefontmapbuilt
+ } ifelse
+} bind def
+
+% Create the dictionary that registers the .buildfont procedure
+% (called by definefont) for each FontType.
+/buildfontdict 20 dict def
+
+% Register Type 3 fonts, which are always supported, for definefont.
+buildfontdict 3 /.buildfont3 cvx put
+
+% Register Type 0 fonts if they are supported. Strictly speaking,
+% we should do this in its own file (gs_type0.ps), but since this is
+% the only thing that would be in that file, it's simpler to put it here.
+/.buildfont0 where { pop buildfontdict 0 /.buildfont0 cvx put } if
+
+% Define definefont. This is a procedure built on a set of operators
+% that do all the error checking and key insertion.
+/.growfontdict
+ { % Grow the font dictionary, if necessary, to ensure room for an
+ % added entry, making sure there is at least one slot left for FID.
+ dup maxlength 1 index length sub 2 lt
+ { dup dup wcheck
+ { .growdict }
+ { .growdictlength dict .copydict }
+ ifelse
+ }
+ { dup wcheck not { dup maxlength dict .copydict } if
+ }
+ ifelse
+ } bind def
+/.completefont {
+ { % Check for disabled platform fonts.
+ NOPLATFONTS
+ { % Make sure we leave room for FID.
+ .growfontdict dup /ExactSize 0 put
+ }
+ { % Hack: if the Encoding looks like it might be the
+ % Symbol or Dingbats encoding, load those now (for the
+ % benefit of platform font matching) just in case
+ % the font didn't actually reference them.
+ % Note that some types of font don't have an Encoding.
+ dup /Encoding .knownget {
+ dup length 65 ge {
+ 64 get
+ dup /congruent eq { SymbolEncoding pop } if
+ /a9 eq { DingbatsEncoding pop } if
+ } {
+ pop
+ } ifelse
+ } if
+ }
+ ifelse
+ dup /OrigFont known not {
+ dup dup /OrigFont exch .growput
+ } if
+ //true exch
+ % If this is a CIDFont, CIDFontType takes precedence
+ % over FontType.
+ dup /CIDFontType known {
+ /.buildcidfont where {
+ pop exch not exch % true => false
+ } if
+ } if
+ exch {
+ dup /FontType get //buildfontdict exch get
+ } {
+ {.buildcidfont} % so it gets bound
+ } ifelse
+ } stopped { $error /command get /invalidfont signalerror } if
+
+ % Execute the .buildxxxfontx outside the 'stopped', because we don't
+ % want its errors converted to invalidfont.
+ exec
+
+ {
+
+ DISKFONTS {
+ FontFileDirectory 2 index known {
+ dup /FontFile FontFileDirectory 4 index get .growput
+ } if
+ } if
+ systemdict /ProvideUnicode .knownget not { //false } if {
+ /FontEmulationProcs /ProcSet findresource
+ /ProvideUnicodeDecoding get exec
+ } if
+ readonly % stack: name fontdict
+ } stopped { $error /command get /invalidfont signalerror } if
+} bind def
+/definefont
+ { dup rcheck not {
+ /definefont cvx /invalidaccess signalerror
+ } if
+ /definefont cvx {.completefont} .errorexec
+ % If the current allocation mode is global, also enter
+ % the font in LocalFontDirectory.
+ .currentglobal
+ { //systemdict /LocalFontDirectory .knownget
+ { 2 index 2 index { .growput } //superexec } % readonly
+ if
+ }
+ if
+ dup .FontDirectory 4 -2 roll { .growput } //superexec % readonly
+ % If the font originated as a resource, register it.
+ currentfile .currentresourcefile eq { dup .registerfont } if
+ readonly
+ } odef
+
+% Define a procedure for defining aliased fonts.
+% We use this only for explicitly aliased fonts, not substituted fonts:
+% we think this matches the observed behavior of Adobe interpreters.
+/.aliasfont % <name> <font> .aliasfont <newFont>
+ { .currentglobal 3 1 roll dup .gcheck .setglobal
+ % <bool> <name> <font>
+ dup length 2 add dict % <bool> <name> <font> <dict>
+ dup 3 -1 roll % <bool> <name> <dict> <dict> <font>
+ { 1 index /FID eq { pop pop } { put dup } ifelse } forall
+ % <bool> <name> <dict> <dict>
+ % Stack: global fontname newfont newfont.
+ % We might be defining a global font whose FontName
+ % is a local string. This is weird, but legal,
+ % and doesn't cause problems anywhere else:
+ % to avoid any possible problems in this case, do a cvn.
+ % We might also be defining (as an alias) a global font
+ % whose FontName is a local non-string, if someone passed a
+ % garbage value to findfont. In this case, just don't
+ % call definefont at all.
+ 2 index dup type /stringtype eq exch .gcheck or 1 index .gcheck not or
+ { pop % <bool> <name> <dict>
+ 1 index dup type /stringtype eq { cvn } if
+ % <bool> <name> <dict> <name1>
+ % HACK:
+ % We want to know whether we alias a font,
+ % because in this case its FontName to be replaced with the alias.
+ % There is no simple way to know that at this point.
+ % But if the original font has defaultfontname,
+ % we probably substitute it rather than alias.
+ % Using such condition as an approximation to the strong condition.
+ %
+ % Note it works wrongly if Fontmap maps something to defaultfontname like this :
+ % /Courier /NimbusMonL-Regu ;
+ % /Something /Courier ;
+ % The FontName of Something will not be /Something. It will be /Courier .
+ %
+ 1 index /FontName get defaultfontname ne {
+ 2 copy /FontName exch put
+ } if
+ 1 index exch /.Alias exch put % <bool> <name> <dict>
+ dup dup /OrigFont exch .growput
+ % Don't bind in definefont, since Level 2 redefines it.
+ /definefont .systemvar exec
+ }
+ { /findfont cvx {.completefont} .errorexec pop exch pop
+ }
+ ifelse
+ exch .setglobal
+ } odef % so findfont will bind it
+
+% Define .loadfontfile for loading a font. If we recognize Type 1 and/or
+% TrueType fonts, gs_type1.ps and/or gs_ttf.ps will redefine this.
+/.loadfontfile {
+ % According to Ed Taft, Adobe interpreters push userdict
+ % before loading a font, and pop it afterwards.
+ userdict begin
+ cvx exec
+ end
+} bind def
+/.setloadingfont {
+ //systemdict /.loadingfont 3 -1 roll .forceput
+} .bind odef % .forceput must be bound and hidden
+/.loadfont
+ { % Some buggy fonts leave extra junk on the stack,
+ % so we have to make a closure that records the stack depth
+ % in a fail-safe way.
+ //true .setloadingfont
+ { /FAPI_hook_disable pop % gs_fapi accesses this with execstack_lookup - don't remove !
+ {{.loadfontfile} .execasresource} count 1 sub 2 .execn
+ count exch sub { pop } repeat
+ exit
+ } loop % this loop is a pattern for execstack_lookup, don't remove !
+ //false .setloadingfont
+ } bind def
+
+% Find an alternate font to substitute for an unknown one.
+% We go to some trouble to parse the font name and extract
+% properties from it. Later entries take priority over earlier.
+/.substitutefaces [
+ % Define substitutes for the fonts we define in Fontmap.GS
+ [(Charter) /Times 0]
+ [(Utopia) /Times 0]
+ [(Antiqua) /Times 0]
+ [(Calligraphic) /Helvetica 0]
+ [(Hershey) /Times 0]
+ % Guess at suitable substitutions for random unknown fonts.
+ [(Book) /NewCenturySchlbk 0]
+ [(Grot) /Helvetica 0]
+ [(Roman) /Times 0]
+ [(Chancery) /ZapfChancery-MediumItalic 0]
+ % If the family name appears in the font name,
+ % use a font from that family.
+ [(Arial) /Helvetica 0]
+ [(Avant) /AvantGarde 0]
+ [(Bookman) /Bookman 0]
+ [(Century) /NewCenturySchlbk 0]
+ [(Cour) /Courier 0]
+ [(Frut) /Helvetica 0]
+ [(Garamond) /Palatino 0]
+ [(Geneva) /Helvetica 0]
+ [(Helv) /Helvetica 0]
+ [(NewYork) /Bookman 0]
+ [(Pala) /Palatino 0]
+ [(Schlbk) /NewCenturySchlbk 0]
+ [(Swiss) /Helvetica 0]
+ [(Symbol) /Symbol 0]
+ [(Times) /Times 0]
+ % Substitute for Adobe Multiple Master fonts.
+ [(Minion) /Times 0]
+ [(Myriad) /Helvetica 0]
+ % If the font wants to be monospace, use Courier.
+ [(Monospace) /Courier 0]
+ [(Typewriter) /Courier 0]
+ % Define substitutes for the other Adobe PostScript 3 fonts.
+ % For some of them, the substitution is pretty bad!
+ [(Albertus) /Palatino 0]
+ [(AntiqueOlive) /Helvetica 0]
+ [(Bodoni) /NewCenturySchlbk 0]
+ [(Chicago) /Helvetica 2]
+ [(Clarendon) /Bookman 0]
+ [(Cooper) /NewCenturySchlbk 0]
+ [(Copperplate) /AvantGarde 0] % inappropriate, small-cap font
+ [(Coronet) /ZapfChancery-MediumItalic 0]
+ [(Eurostile) /Helvetica 0]
+ [(Geneva) /Courier 2] % should be fixed-pitch sans demi
+ [(GillSans) /Helvetica 2]
+ [(GillSans-Light) /Helvetica 0]
+ [(Goudy) /Palatino 0]
+ [(Hoefler) /NewCenturySchlbk 0]
+ [(Joanna) /Times 0]
+ [(LetterGothic) /Courier 0] % should be fixed-pitch sans
+ [(LubalinGraph-Book) /Bookman 2]
+ [(LubalinGraph-Demi) /Bookman 0]
+ [(Marigold) /ZapfChancery-MediumItalic 0]
+ [(MonaLisa-Recut) /Palatino 0] % inappropriate
+ [(Monaco) /Courier 2] % should be fixed-pitch sans demi
+ [(Optima) /Helvetica 0]
+ [(Oxford) /ZapfChancery-MediumItalic 0]
+ [(Tekton) /Helvetica 0]
+ [(Univers) /Helvetica 0]
+] readonly def
+/.substituteproperties [
+ [(It) 1] [(Oblique) 1]
+ [(Black) 2] [(Bd) 2] [(Bold) 2] [(bold) 2] [(Demi) 2] [(Heavy) 2] [(Sb) 2]
+ [(Cn) 4] [(Cond) 4] [(Narrow) 4] [(Pkg) 4] [(Compr) 4]
+ [(Serif) 8] [(Sans) -8]
+] readonly def
+/.fontnameproperties { % <int> <string|name> .fontnameproperties
+ % <int'>
+ .fontnamestring
+ .substituteproperties {
+ 2 copy 0 get search {
+ pop pop pop dup length 1 sub 1 exch getinterval 3 -1 roll exch {
+ dup 0 ge { or } { neg not and } ifelse
+ } forall exch
+ } {
+ pop pop
+ } ifelse
+ } forall pop
+} bind def
+/.substitutefamilies mark
+ /AvantGarde
+ {/AvantGarde-Book /AvantGarde-BookOblique
+ /AvantGarde-Demi /AvantGarde-DemiOblique}
+ /Bookman
+ {/Bookman-Demi /Bookman-DemiItalic /Bookman-Light /Bookman-LightItalic}
+ /Courier
+ {/Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique}
+ /Helvetica
+ {/Helvetica /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique
+ /Helvetica-Narrow /Helvetica-Narrow-Oblique
+ /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique}
+ /NewCenturySchlbk
+ {/NewCenturySchlbk-Roman /NewCenturySchlbk-Italic
+ /NewCenturySchlbk-Bold /NewCenturySchlbk-BoldItalic}
+ /Palatino
+ {/Palatino-Roman /Palatino-Italic /Palatino-Bold /Palatino-BoldItalic}
+ /Symbol
+ {/Symbol /Symbol /Symbol /Symbol}
+ /Times
+ {/Times-Roman /Times-Italic /Times-Bold /Times-BoldItalic}
+ /ZapfChancery-MediumItalic
+ {/ZapfChancery-MediumItalic}
+.dicttomark readonly def
+/.nametostring { % <name> .nametostring <string>
+ % <other> .nametostring <other>
+ dup type /nametype eq { .namestring } if
+} bind def
+/.fontnamestring { % <fontname> .fontnamestring <string|name>
+ dup type dup /nametype eq {
+ pop .namestring
+ } {
+ /stringtype ne { pop () } if
+ } ifelse
+} bind def
+/.substitutefontname { % <fontname> <properties> .substitutefontname
+ % <altname|null>
+ % Look for properties and/or a face name in the font name.
+ % If we find any, use Times (serif) or Helvetica (sans) as the
+ % base font; otherwise, use the default font.
+ % Note that the "substituted" font name may be the same as
+ % the requested one; the caller must check this.
+ exch .fontnamestring {
+ defaultfontname /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique
+ /Helvetica-Narrow /Helvetica-Narrow-Oblique
+ /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique
+ /Times-Roman /Times-Italic /Times-Bold /Times-BoldItalic
+ /Helvetica-Narrow /Helvetica-Narrow-Oblique
+ /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique
+ } 3 1 roll
+ % Stack: facelist properties fontname
+ % Look for a face name.
+ .substitutefaces {
+ 2 copy 0 get search {
+ pop pop pop
+ % Stack: facelist properties fontname [(pattern) family properties]
+ dup 2 get 4 -1 roll or 3 1 roll
+ 1 get .substitutefamilies exch get
+ 4 -1 roll pop 3 1 roll
+ } {
+ pop pop
+ } ifelse
+ } forall pop
+ 1 index length mod get exec
+} bind def
+/.substitutefont { % <fontname> .substitutefont <altname>
+ dup 0 exch .fontnameproperties .substitutefontname
+ % Only accept fonts known in the Fontmap.
+ Fontmap 1 index known not
+ {
+ .nativeFontmap 1 index known not
+ {pop defaultfontname } if
+ } if
+} bind def
+
+% If requested, make (and recognize) fake entries in FontDirectory for fonts
+% present in Fontmap but not actually loaded. Thanks to Ray Johnston for
+% the idea behind this code.
+FAKEFONTS not { (%END FAKEFONTS) .skipeof } if
+
+% We use the presence or absence of the FontMatrix key to indicate whether
+% a font is real or fake. We must pop the arguments at the very end,
+% so that stack protection will be effective.
+
+/definefont { % <name> <font> definefont <font>
+ dup /FontMatrix known {
+ //definefont
+ } {
+ 2 copy /FontName get findfont //definefont exch pop exch pop
+ } ifelse
+} bind odef
+
+/scalefont { % <font> <scale> scalefont <font>
+ 1 index /FontMatrix known {
+ //scalefont
+ } {
+ 1 index /FontName get findfont 1 index //scalefont
+ exch pop exch pop
+ } ifelse
+} bind odef
+
+/makefont { % <font> <matrix> makefont <font>
+ 1 index /FontMatrix known {
+ //makefont
+ } {
+ 1 index /FontName get findfont 1 index //makefont
+ exch pop exch pop
+ } ifelse
+} bind odef
+
+/setfont { % <font> setfont -
+ dup /FontMatrix known {
+ //setfont
+ } {
+ dup /FontName get findfont //setfont pop
+ } ifelse
+} bind odef
+
+%END FAKEFONTS
+
+% Define findfont so it tries to load a font if it's not found.
+% The Red Book requires that findfont be a procedure, not an operator,
+% but it still needs to restore the stacks reliably if it fails,
+% so we do all the work in an operator.
+/.findfont { % <fontname> .findfont <font>
+ mark 1 index % <fontname> mark <fontname>
+ //systemdict begin .dofindfont
+ % <fontname> mark <alias> ... <font>
+ % Define any needed aliases.
+ counttomark 1 sub { .aliasfont } repeat end
+ % <fontname> mark <font>
+ exch pop exch pop
+} odef
+/findfont {
+ .findfont
+} bind def
+% Check whether the font name we are about to look for is already on the list
+% of aliases we're accumulating; if so, cause an error.
+/.checkalias % -mark- <alias1> ... <name> .checkalias <<same>>
+ { counttomark 1 sub -1 1
+ { index 1 index eq
+ { pop QUIET not
+ { (Unable to substitute for font.) = flush
+ } if
+ /findfont cvx /invalidfont signalerror
+ }
+ if
+ }
+ for
+ } bind def
+% Get a (non-fake) font if present in a FontDirectory.
+/.fontknownget % <fontdir> <fontname> .fontknownget <font> true
+ % <fontdir> <fontname> .fontknownget false
+ { .knownget
+ { FAKEFONTS
+ { dup /FontMatrix known { //true } { pop //false } ifelse }
+ { //true }
+ ifelse
+ }
+ { //false
+ }
+ ifelse
+ } bind def
+% This is the standard procedure for handling font substitution.
+% Its location is per an Adobe newsgroup posting.
+% It is called with the font name on the stack, standing in for findfont.
+/.stdsubstfont { % mark <alias1> ... <fontname> .stdsubstfont mark <alias1> ... <aliasN> <font>
+ /SUBSTFONT where {
+ pop QUIET not {
+ (Substituting for font ) print dup =only
+ (.) = flush
+ } if
+ % No aliasing.
+ % This mode is incompatible with high level devices.
+ cleartomark mark defaultfontname
+ } {
+ dup .substitutefont
+ 2 copy eq { pop defaultfontname } if
+ .checkalias
+ QUIET not {
+ SHORTERRORS {
+ (%%[) print 1 index =only
+ ( not found, substituting ) print dup =only (]%%)
+ } {
+ (Substituting font ) print dup =only
+ ( for ) print 1 index =only (.)
+ } ifelse = flush
+ } if
+ } ifelse
+ /Font findresource
+} bind def
+
+% Default font substitution does {pop /Courier} om many implementations.
+% GS post-process font substitution in .stdsubstfont and uses {} for
+% backward compatibility
+$error /SubstituteFont { } put
+
+% Scan the next directory on FONTPATH.
+/.scannextfontdir { % - .scannextfontdir <bool>
+ % If we haven't scanned all the directories in
+ % FONTPATH, scan the next one.
+ //null 0 1 FONTPATH length 1 sub {
+ FONTPATH 1 index get //null ne { exch pop exit } if pop
+ } for dup //null ne {
+ dup 0 eq { .scanfontbegin } if
+ FONTPATH 1 index get .scanfontdir
+ FONTPATH exch //null put //true
+ } {
+ pop //false
+ } ifelse
+} bind def
+% Do the work of findfont, including substitution, defaulting, and
+% scanning of FONTPATH.
+/.dofindfont { % mark <fontname> .dofindfont % mark <alias> ... <font>
+ .tryfindfont not {
+
+ % We didn't find the font. If we haven't scanned
+ % all the directories in FONTPATH, scan the next one
+ % now and look for the font again.
+ .scannextfontdir {
+ % Start over with an empty alias list.
+ counttomark 1 sub { pop } repeat % mark <fontname>
+ .dofindfont
+ } {
+ % No more directories to scan. Try building the native
+ % font map entries if we haven't already done so.
+ .buildnativefontmap {
+ % Same stack as at the beginning of .dofindfont.
+ .dofindfont % start over
+ } {
+ % No luck. Make sure we're not already
+ % looking for the default font.
+ QUIET not {
+ (Didn't find this font on the system!\n)
+ print
+ } if
+ dup defaultfontname eq {
+ QUIET not {
+ (Unable to load default font ) print
+ dup =only (! Giving up.) = flush
+ } if
+ /findfont cvx /invalidfont signalerror
+ } if
+ % Substitute for the font. Don't alias.
+ % Same stack as at the beginning of .dofindfont.
+ $error /SubstituteFont get exec
+ %
+ % igorm: I guess the surrounding code assumes that .stdsubstfont
+ % must ADD an alias to allow .checkalias and .findfont to work properly.
+ % Also I guess that a trailing recursion is
+ % used in .dofindfont and through .stdsubstfont
+ % just to represent a simple iteration,
+ % which accumulates the aliases after the mark.
+ .stdsubstfont
+ } ifelse
+ } ifelse
+ } if
+} bind def
+% Try to find a font using only the present contents of Fontmap.
+/.tryfindfont { % <fontname> .tryfindfont <font> true
+ % <fontname> .tryfindfont false
+ .FontDirectory 1 index .fontknownget
+ { % Already loaded
+ exch pop //true
+ }
+ {
+ dup Fontmap exch .knownget
+ { //true //true }
+ { % Unknown font name. Look for a file with the
+ % same name as the requested font.
+ dup .tryloadfont
+ { exch pop //true //false }
+ {
+ % if we can't load by name check the native font map
+ dup .nativeFontmap exch .knownget
+ { //true //true }
+ { //false //false } ifelse
+ } ifelse
+ } ifelse
+
+ { % Try each element of the Fontmap in turn.
+ pop
+ //false exch % (in case we exhaust the list)
+ % Stack: fontname false fontmaplist
+ { exch pop
+ dup type /nametype eq
+ { % Font alias
+ .checkalias .tryfindfont exit
+ }
+ { dup dup type dup /arraytype eq exch /packedarraytype eq or exch xcheck and
+ { % Font with a procedural definition
+ exec % The procedure will load the font.
+ % Check to make sure this really happened.
+ .FontDirectory 1 index .knownget
+ { exch pop //true exit }
+ if
+ }
+ { % Font file name
+ //true .loadfontloop { //true exit } if
+ }
+ ifelse
+ }
+ ifelse //false
+ }
+ forall
+ % Stack: font true -or- fontname false
+ { //true
+ }
+ { % None of the Fontmap entries worked.
+ % Try loading a file with the same name
+ % as the requested font.
+ .tryloadfont
+ }
+ ifelse
+ }
+ if
+ }
+ ifelse
+ } bind def
+
+% any user of .putgstringcopy must use bind and executeonly
+/.putgstringcopy % <dict> <name> <string> .putgstringcopy -
+{ 2 index gcheck currentglobal
+ 2 copy eq {
+ pop pop .forceput
+ } {
+ 5 1 roll setglobal
+ dup length string copy
+ .forceput setglobal
+ } ifelse
+} .bind odef % must be bound and hidden for .forceput
+
+% Attempt to load a font from a file.
+/.tryloadfont { % <fontname> .tryloadfont <font> true
+ % <fontname> .tryloadfont false
+ dup .nametostring
+ % Hack: check for the presence of the resource machinery.
+ /.genericrfn where {
+ pop
+ pop dup .fonttempstring /FontResourceDir getsystemparam .genericrfn
+ {//false .loadfontloop} .internalstopped {//false} if {
+ //true
+ } {
+ dup .nametostring
+ {//true .loadfontloop} .internalstopped {//false} if
+ } ifelse
+ } {
+ {//true .loadfontloop} .internalstopped {//false} if
+ } ifelse
+} bind def
+
+/.loadfontloop { % <fontname> <filename> <libflag> .loadfontloop
+ % <font> true
+ % -or-
+ % <fontname> false
+ % See above regarding the use of 'loop'.
+ { % Is the font name a string?
+ 1 index type /stringtype ne
+ { pop
+ QUIET not
+ { (Can't find font with non-string name: ) print dup =only (.) = flush
+ }
+ if pop //false exit
+ } if
+
+ % check <libflag>
+ {
+ findlibfile not
+ } {
+ dup (r) { file } stopped {
+ pop pop //true
+ } {
+ //false
+ } ifelse
+ } ifelse {
+ QUIET not
+ { (Can't find \(or can't open\) font file ) print dup print
+ (.) = flush
+ }
+ if pop //false exit
+ } if
+ % Stack: fontname fontfilename fontfile
+ DISKFONTS
+ { .currentglobal //true .setglobal
+ 2 index (r) file
+ FontFileDirectory exch 5 index exch .growput
+ .setglobal
+ }
+ if
+ QUIET not
+ { (Loading ) print 2 index =only
+ ( font from ) print 1 index print (... ) print flush
+ }
+ if
+ % If LOCALFONTS isn't set, load the font into local or global
+ % VM according to FontType; if LOCALFONTS is set, load the font
+ % into the current VM, which is what Adobe printers (but not
+ % DPS or CPSI) do.
+ LOCALFONTS { //false } { /setglobal where } ifelse
+ { pop /FontType .findfontvalue { 1 eq } { //false } ifelse
+ % .setglobal, like setglobal, aliases FontDirectory to
+ % GlobalFontDirectory if appropriate. However, we mustn't
+ % allow the current version of .setglobal to be bound in,
+ % because it's different depending on language level.
+ .currentglobal exch /.setglobal .systemvar exec
+ % Remove the fake definition, if any.
+ .FontDirectory 3 index .forceundef % readonly
+ 1 index (r) file .loadfont .FontDirectory exch
+ /.setglobal .systemvar exec
+ }
+ { .loadfont .FontDirectory
+ }
+ ifelse
+ % Stack: fontname fontfilename fontdirectory
+ QUIET not
+ { //systemdict /level2dict known
+ { .currentglobal //false .setglobal vmstatus
+ //true .setglobal vmstatus 3 -1 roll pop
+ 6 -1 roll .setglobal 5
+ }
+ { vmstatus 3
+ }
+ ifelse { =only ( ) print } repeat
+ (done.) = flush
+ } if
+
+ % Check to make sure the font was actually loaded.
+ dup 3 index .fontknownget
+ { dup /PathLoad 4 index //.putgstringcopy exec
+ 4 1 roll pop pop pop //true exit
+ } if
+
+ % Maybe the file had a different FontName.
+ % See if we can get a FontName from the file, and if so,
+ % whether a font by that name exists now.
+ exch dup % Stack: origfontname fontdirectory path path
+ (r) file .findfontname
+ { % Stack: origfontname fontdirectory path filefontname
+ 2 index 1 index .fontknownget
+ { % Yes. Stack: origfontname fontdirectory path filefontname fontdict
+ dup 4 -1 roll /PathLoad exch //.putgstringcopy exec
+ % Stack: origfontname fontdirectory filefontname fontdict
+ 3 -1 roll pop
+ % Stack: origfontname filefontname fontdict
+ dup /FontName get dup FontDirectory exch .forceundef
+ GlobalFontDirectory exch .forceundef
+ dup length dict .copydict dup 3 index /FontName exch put
+ 2 index exch definefont
+ exch
+ QUIET
+ { pop
+ }
+ { (Using ) print =only
+ ( font for ) print 1 index =only
+ (.) = flush
+ }
+ ifelse % Stack: origfontname fontdict
+ exch pop //true exit
+ % Stack: fontdict
+ }
+ if pop % Stack: origfontname fontdirectory path
+ }
+ if pop pop % Stack: origfontname
+
+ % The font definitely did not load correctly.
+ QUIET not
+ { (Loading ) print dup =only
+ ( font failed.) = flush
+ } if
+ //false exit
+
+ } loop % end of loop
+
+ } bind executeonly def % must be bound and hidden for .putgstringcopy
+
+currentdict /.putgstringcopy .undef
+
+% Define a procedure to load all known fonts.
+% This isn't likely to be very useful.
+/loadallfonts
+{
+ [Fontmap .nativeFontmap] { { pop findfont pop } forall } forall
+} bind def
+
+% If requested, load all the fonts defined in the Fontmap into FontDirectory
+% as "fake" fonts i.e., font dicts with only FontName and FontType defined.
+% (We define FontType only for the sake of some questionable code in the
+% Apple Printer Utility 2.0 font inquiry code.)
+%
+% Note that this procedure only creates fake fonts in the FontDirectory
+% associated with the current VM. This is because in multi-context systems,
+% creating the fake fonts in local VM leads to undesirable complications.
+/.definefakefonts
+ {
+ }
+ {
+ (gs_fonts FAKEFONTS) VMDEBUG
+ [Fontmap .nativeFontmap ]
+ {
+ {
+ pop dup type /stringtype eq { cvn } if
+ .FontDirectory 1 index known not {
+ 2 dict dup /FontName 3 index put
+ dup /FontType 1 put
+ .FontDirectory 3 1 roll { put } //superexec % readonly
+ } {
+ pop
+ } ifelse
+ } forall
+ } forall
+ }
+FAKEFONTS { exch } if pop def % don't bind, .current/setglobal get redefined
+
+% Install initial fonts from Fontmap.
+/.loadinitialfonts
+ { NOFONTMAP not
+ { /FONTMAP where
+ { pop [ FONTMAP .pathlist ]
+ { dup VMDEBUG findlibfile
+ { exch pop .loadFontmap }
+ { /undefinedfilename signalerror }
+ ifelse
+ }
+ }
+ { LIBPATH
+ { defaultfontmap
+ //false .file_name_combine
+ {
+ dup VMDEBUG
+ (r) { file } .internalstopped {
+ pop pop
+ defaultfontmap_content { .definefontmap } forall
+ } {
+ .loadFontmap
+ } ifelse
+ } {
+ pop pop
+ } ifelse
+ }
+ }
+ ifelse forall
+ }
+ if
+ userdict /defaultfontmap_content .undef
+ .definefakefonts % current VM is global
+ } def % don't bind, .current/setglobal get redefined
+
+% ---------------- Synthetic font support ---------------- %
+
+% Create a new font by modifying an existing one. paramdict contains
+% entries with the same keys as the ones found in a Type 1 font;
+% it should also contain enough empty entries to allow adding the
+% corresponding non-overridden entries from the original font dictionary,
+% including FID. If paramdict includes a FontInfo entry, this will
+% also override the original font's FontInfo, entry by entry;
+% again, it must contain enough empty entries.
+
+% Note that this procedure does not perform a definefont.
+
+/.makemodifiedfont % <fontdict> <paramdict> .makemodifiedfont <fontdict'>
+ { exch
+ { % Stack: destdict key value
+ 1 index /FID ne
+ { 2 index 2 index known
+ { % Skip fontdict entry supplied in paramdict, but
+ % handle FontInfo specially.
+ 1 index /FontInfo eq
+ { 2 index 2 index get % new FontInfo
+ 1 index % old FontInfo
+ { % Stack: destdict key value destinfo key value
+ 2 index 2 index known
+ { pop pop }
+ { 2 index 3 1 roll put }
+ ifelse
+ }
+ forall pop
+ }
+ if
+ }
+ { % No override, copy the fontdict entry.
+ 2 index 3 1 roll put
+ dup dup % to match pop pop below
+ }
+ ifelse
+ }
+ if
+ pop pop
+ } forall
+ } bind def
+
+% Make a modified font and define it. Note that unlike definefont,
+% this does not leave the font on the operand stack.
+
+/.definemodifiedfont % <fontdict> <paramdict> .definemodifiedfont -
+ { .makemodifiedfont
+ dup /FontName get exch definefont pop
+ } bind def
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_frsd.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,80 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Implementation of ReusableStreamDecode filter.
+% This file must be loaded after gs_lev2.ps and gs_res.ps.
+
+level2dict begin
+
+% ------ ReusableStreamDecode filter ------ %
+
+/.reusablestreamdecode { % <source> <dict> .reusablestreamdecode <file>
+ % <source> .reusablestreamdecode <file>
+ % Collect the filter parameters.
+ dup type /dicttype eq { 2 copy } { dup 0 dict } ifelse
+ dup .rsdparams
+ % Construct the filter pipeline.
+ % The very first filter should use the value of CloseSource
+ % from the RSD dictionary; all the others should have
+ % CloseSource = true.
+ % Stack: source dict filters parms
+ 2 index /CloseSource .knownget not { //false } if 5 -1 roll
+ % Stack: dict filters parms CloseSource source
+ 0 1 5 index length 1 sub {
+ 4 index 1 index get
+ % Stack: dict filters parms CloseSource source index filtname
+ 4 index //null eq {
+ 0 dict
+ } {
+ 4 index 2 index get dup //null eq { pop 0 dict} if
+ } ifelse
+ 3 -1 roll pop exch filter
+ exch pop //true exch % set CloseSource for further filters
+ } for
+ % If AsyncRead is true, try to create the filter directly.
+ % Stack: dict filters parms CloseSource source
+ 4 index /AsyncRead .knownget not { //false } if {
+ 1 index { .reusablestream } .internalstopped
+ } {
+ //null //true
+ } ifelse {
+ pop
+ % No luck. Read the entire contents of the stream now.
+ dup type /filetype ne {
+ % Make a stream from a procedure or string data source.
+ 0 () .subfiledecode
+ } if
+ % We must allocate the string in the same VM space as its
+ % source, since the reusable stream must be allocated there.
+
+ .currentglobal 1 index gcheck .setglobal exch
+ currentpacking //false setpacking exch
+ % Stack: dict filters parms CloseSource oldglobal oldpacking file
+ [ exch { dup 40000 string readstring not { exit } if exch } loop
+ exch pop
+ ]
+ % Stack: dict filters parms CloseSource oldglobal oldpacking [()...]
+ 3 1 roll setpacking setglobal
+ % Stack: dict filters parms CloseSource [()...]
+ 1 index .reusablestream
+ } if
+ % We created the stream successfully: clean up.
+ 4 { exch pop } repeat
+ 1 index type /dicttype eq { exch pop } if exch pop
+} odef
+
+filterdict /ReusableStreamDecode /.reusablestreamdecode load put
+
+end % level2dict
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_icc.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,109 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% We need LanguageLevel 2 or higher in order to have setuserparams and
+% << >> dictionaries
+languagelevel dup 2 .max .setlanguagelevel
+
+% ICCBased color space method dictionaries.
+% This assumes gs_ciecs2.ps has already been processed.
+
+.currentglobal //true .setglobal
+
+% gs_res.ps uses these entries in colorspacedict
+% to populate the ColorSpaceFamily resource, so we need
+% to add the supported spaces.
+%
+systemdict /colorspacedict get begin
+/ICCBased [] def
+end
+
+NOPSICC { (%END PSICC) .skipeof } if
+% Now set up ICC profile loading for PostScript %%BeginICCProfile sections.
+
+/cs-sig-dict <<
+ (XYZ ) 3
+ (Lab ) 3
+ (Luv ) 3
+ (YCbr) 3
+ (Yxy ) 3
+ (RGB ) 3
+ (GRAY) 1
+ (HSV ) 3
+ (HLS ) 3
+ (CMYK) 4
+ (CMY ) 3
+>> readonly def
+
+systemdict begin
+/.ProcessICCcomment { % file comment -- file comment
+ dup
+ (%%BeginICCProfile) anchorsearch {
+ pop pop
+ DEBUG { (.ProcessICCcomment found %%BeginICCProfile) print flush } if
+
+ % load an ICC profile defined as comments (hex encoded).
+ % Ends with %%End at the start of a line. Read the data into
+ % an array of strings. This string can be used directly as a
+ % source for ReusableStreamDecode filter.
+ %
+ % stack: --file-- (%%BeginICCProfile: ...)
+ 1 index 0 (%%EndICCProfile) /SubFileDecode filter
+ [ { counttomark 1 add index
+ 64000 string readhexstring
+ not { exit } if
+ } loop
+ ] exch closefile
+
+ % make a seekable -file- out of the string array
+ mark /AsyncRead //true .dicttomark /ReusableStreamDecode filter
+ % stack: --file-- (%%BeginICCProfile: ...) --icc_subfile--
+
+ dup 16 setfileposition
+ dup (1234) readstring pop
+ 1 index 0 setfileposition
+
+ //cs-sig-dict exch .knownget {
+ 3 dict begin
+ /Alternate {0 /DeviceGray 0 /DeviceRGB /DeviceCMYK } 2 index get def
+ /N exch def
+ /DataSource exch def
+ [/ICCBased currentdict]
+ end
+ { setcolorspace } stopped {
+ pop
+ QUIET not { ( *** Unable to load ICC profile from PostScript DSC comments ***) = flush } if
+ } if
+ } {
+ pop
+ } ifelse
+ } {
+ pop % Not interested in this DSC comment
+ } ifelse
+} bind def
+
+currentdict /cs-sig-dict undef
+
+% Merge ProcessICCcomment with existing handler
+/.ProcessICCcomment load /exec load
+currentuserparams /ProcessDSCComment get
+dup //null eq {pop {pop pop}} if /exec load
+4 array astore cvx readonly
+<< /ProcessDSCComment 3 -1 roll >> setuserparams
+
+end % systemdict
+%END PSICC
+.setglobal
+.setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_il1_e.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,65 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the ISO Latin-1 encoding vector.
+% The first half is the same as the standard encoding,
+% except for minus instead of hyphen at code 055.
+/ISOLatin1Encoding
+StandardEncoding 0 45 getinterval aload pop
+ /minus
+StandardEncoding 46 82 getinterval aload pop
+% NOTE: the following are missing in the Adobe documentation,
+% but appear in the displayed table:
+% macron at 0225, dieresis at 0230, cedilla at 0233, space at 0240.
+% This is an error in the Red Book, corrected in Adobe TN 5085.
+% \20x
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
+ /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
+% \24x
+ /space /exclamdown /cent /sterling
+ /currency /yen /brokenbar /section
+ /dieresis /copyright /ordfeminine /guillemotleft
+ /logicalnot /hyphen /registered /macron
+ /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered
+ /cedilla /onesuperior /ordmasculine /guillemotright
+ /onequarter /onehalf /threequarters /questiondown
+% \30x
+ /Agrave /Aacute /Acircumflex /Atilde
+ /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls
+% \34x
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /ae /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+ /eth /ntilde /ograve /oacute
+ /ocircumflex /otilde /odieresis /divide
+ /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis
+% Make an array on large systems, a packed array on small ones.
+256
+vmstatus exch pop exch pop
+100000 ge { array astore readonly } { packedarray } ifelse
+def
+1 ISOLatin1Encoding .registerencoding
+/ISOLatin1Encoding ISOLatin1Encoding .defineencoding
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_img.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_img.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_img.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,864 @@
+% (C) 2002 Artifex, Inc. All rights reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% For more information about licensing, please refer to
+% http://www.ghostscript.com/licensing/. For information on
+% commercial licensing, go to http://www.artifex.com/licensing/ or
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+% image, colorimage, and imagemask implementation
+
+%
+% The design of the overprint facility in Ghostscript requires that color
+% specifications include the color space from which they were expressed,
+% even after conversion to the device color model. Directly including this
+% information in color specifications is usually not efficient, and is
+% difficult to integrate into the existing code structure. The alternative
+% approach taken is to extend a state mechanism through the device
+% interface, and make the current color space, or more specifically,
+% certain information about the current color space, a property of this
+% state.
+%
+% For such a mechanism to work, it is necessary to identify all changes
+% to the current color space. This is accomplished in the graphic library
+% by funneling all changes to the current color space through the
+% gs_setcolorspace procedure. At the PostScript interpreter level, this
+% result is achieved by forcing color space changes through the
+% setcolorspace operator.
+%
+% Aside from explicit use of setcolorspace, PostScript provides a few
+% implicit methods of changing the current color space. The setgray,
+% setrgbcolor, and setcmykcolor operators implicitly set the color space
+% while explicitly setting the current color. Similarly, the colorimage
+% operator and the traditional form of the image operator (5 operands)
+% both temporarily modify the current color space while an image is
+% being processed. The current file is concerned with the implementation
+% of these two operators. In addition, the traditional form of the
+% imagemask operator (5 operands), while it does not affect the current
+% color space, is closely related to the image operator and thus is
+% implemented in this file as well.
+%
+% In this implementation, all sampled objects are passed through one of
+% the internal operators .image1, .imagemask1, .image1alpha, .image2,
+% .image3, or .image4, each of which handles a specific ImageType value.
+%
+% The procedures in this file are responsible for constructing
+% image dictionaries from a set of stack entries. This is, in principle,
+% a trivial exercise. In practice it appears to be far more complex,
+% primarily due to the need to reconstruct the original state in the
+% event of an error. This is a particular problem for operators such as
+% image, which include data source objects that may, directly or
+% indirectly, be procedures. When these procedures are executed, the
+% image operator's operands must have been cleared from the operand
+% stack. Hence, the operand stack cannot be used to store state
+% information. Similarly, the dictionary stack also cannot be used to
+% store state information, as the data source procedures may depend on
+% a particular dictionary being on the top of this stack.
+%
+% Adobe's PostScript implementations determine the extent to which the
+% interpreter state is restored in the event of an error by the point at
+% which the error is detected. Errors in the image/colorimage/imagemask
+% operators that are detected before the data source procedures are
+% executed restore the state in effect before the image was processed.
+% Those that are detected as part of running the data source procedures
+% only attempt to restore the state to that in effect at the start of
+% the operator that failed (or at the conclusion of the data source
+% procedure, if this procedure failed to push a string).
+%
+% The implementation given here follows the Adobe convention. The
+% mechanism used is as follows:
+%
+% 1. Check that the stack has a sufficient number of operands, and
+% that enough of them have the proper type to allow construction
+% of the image dictionary. Any errors at this point are handled
+% in the conventional manner.
+%
+% 2. Build the image dictionary, in the process clearing the image/
+% colorimage/imagemask operands from the stack. No errors can
+% occur during this process.
+%
+% (Special precautions could be taken during this step to handle
+% a limitcheck or VMError during the building of the image
+% dictionary, but this essentially never occurs in practice and, if
+% it did, is very unlikely to leave a useable state. Hence, we don't
+% bother with this possibility.)
+%
+% 3. The .image operator is executed in a stopped context. If it
+% returns abnormally, a check is made to see if the uppermost
+% operand on the stack is a color image dictionary. If so, the
+% original stack is created anew using this dictionary. (Because
+% the image operand works via colorimage, some additional special
+% handling is required in this case.)
+%
+
+%
+% Create a dictionary of operators for specific image and image mask types.
+% Each of these will always handle ImageType 1. Additional types are added
+% as they are supported in specific interpreter levels or versions.
+%
+% These dictionaries are in systemdict for historical reasons.
+%
+.currentglobal //true .setglobal
+systemdict begin
+/.imagetypes
+ 5 dict
+ dup 1 /.image1 load put
+def
+/.imagemasktypes
+ 5 dict
+ dup 1 /.imagemask1 load put
+def
+end
+.setglobal
+
+%
+% Build a dictionary of utility procedures and constants for use in
+% impelementing the image operators. This dictionary is in global VM but
+% is maintained (during initialization) in userdict. It should be pushed
+% onto the dictionary stack when constructing image-related procedures
+% and pseudo-operators.
+%
+% This dictionary is removed from userdict when initialization is
+% completed.
+%
+.currentglobal //true .setglobal
+userdict /img_utils_dict 30 dict put
+img_utils_dict begin
+
+%
+% Some useful local data structures:
+%
+% img_csary maps the number of components in an image to the implied
+% color space.
+%
+% img_decary is a prototype Decode array; subintervals of this array
+% may be used for fewer than 4 color components.
+%
+% img_params_ary is a list of the parameters to be built in the image
+% dictionary for a colorimage invocation. ImageType is given a
+% fixed value; the other parameters are in stack order (IMG_NComps
+% is the number of components).
+%
+% img_mask_params_ary is the equivalent of img_params_ary for imagemask
+% invocations. Polarity is a proxy for Decode, and is replaced
+% by the Decode key in the image dictionary.
+%
+% img_mask_check_ary is the set of parameters that must be present in
+% an image dictionary generated by an imagemask invocation. This
+% differs from img_mask_params_ary in that Decode replaces Polarity.
+%
+/img_csary [ //null /DeviceGray //null /DeviceRGB /DeviceCMYK ] def
+/img_decary [ 0 1 0 1 0 1 0 1 ] def
+
+/img_params_ary
+ [
+ /ImageType /IMG_NComps /MultipleDataSources /DataSource
+ /ImageMatrix /BitsPerComponent /Height /Width /Decode
+ ]
+def
+/img_check_ary //img_params_ary def
+/img_unbuild_ary
+ //img_params_ary 1 1 index length 2 sub getinterval
+def
+
+/img_mask_params_ary
+ [ /ImageType /DataSource /ImageMatrix /Polarity /Height /Width ]
+def
+/img_mask_check_ary
+ [
+ /ImageType /BitsPerComponent
+ /DataSource /ImageMatrix /Decode /Height /Width
+ ]
+def
+/img_mask_unbuild_ary
+ //img_mask_check_ary 2 1 index length 2 sub getinterval
+def
+
+%
+% <?any?> <array> img_check_keys <?any?> <bool>
+%
+% Verify that:
+% that there are at least two entries on the stack, and
+% the second (lower) entry is a dictionary, and
+% that dictionary contains all of the keys in the array
+%
+% If any one of these conditions does not hold, pop the array and push
+% false; otherwise pop the array and push true. This utility is used by
+% the colorimage and imagematrix procedures to determine if .image left
+% the image dictionary on the stack after an abnormal return.
+%
+/img_check_keys
+ {
+ count 2 ge
+ {
+ 1 index type /dicttype eq
+ {
+ //true exch
+ {
+ 2 index exch known and
+ dup not
+ { exit }
+ if
+ }
+ forall
+ }
+ { pop //false }
+ ifelse
+ }
+ { pop //false }
+ ifelse
+ }
+.bind def
+
+%
+% Procedures to convert a set of stack entries to a dictionary. There is
+% a procedure associated with each key, though most keys use the same
+% procedure. The dictionary to be built is at the top of the dictionary
+% stack. Stack handling for the procedures is:
+%
+% <?val0?> ... <?val(n - 1)?> <key> proc -
+%
+% Parameters are handle in inverse-stack order, so inter-parameter
+% dependencies that on the stack can generally be used here.
+%
+/img_params_dict
+ mark
+ /ImageType { 1 def } .bind
+
+ /IMG_NComps { exch def } .bind % number of components
+ /MultipleDataSources 1 index
+ /Width 1 index
+ /Height 1 index
+ /ImageMatrix 1 index
+ /BitsPerComponent 1 index
+ /DataSource 1 index
+
+ % Polarity is a proxy for Decode; it never appears in a dictionary
+ /Polarity
+ {
+ pop
+ { { 1 0 } }
+ { { 0 1 } }
+ ifelse
+ /Decode exch cvlit def
+ }
+ .bind
+
+ % the definition of Decode is based on the number of components
+ /Decode { //img_decary 0 IMG_NComps 2 mul getinterval def } .bind
+ .dicttomark
+def
+
+%
+% <oper_0> ... <oper_n> <array> img_build_dict <dict>
+%
+% Build a dictionary. This will always be done in local VM. The array is
+% a list of the keys to be associated with operands on the stack, in
+% inverse stack order (topmost element first). The caller should verify
+% that the dictionary can be built successfully (except for a possible
+% VMerror) before calling this routine.
+%
+/img_build_dict
+ {
+ % build the dictionary in local VM; all for 2 extra entries
+ .currentglobal //false .setglobal
+ 1 index length 2 add dict
+ exch .setglobal
+ begin
+
+ % process all keys in the array
+ { //img_params_dict 1 index get exec }
+ forall
+
+ % if BitsPerComponent is not yet defined, define it to be 1
+ currentdict /BitsPerComponent known not
+ { /BitsPerComponent 1 def }
+ if
+
+ currentdict end
+ }
+.bind def
+
+%
+% <dict> <array> img_unbuild_dict <oper_0> ... <oper_n>
+%
+% "Unbuild" a dictionary: spread the contents the dictionary back onto the
+% stack, in the inverse of the order indicated in the array (inverse is
+% used as this order is more convenient for img_build_dict, which is
+% expected to be invoked far more frequently).
+%
+/img_unbuild_dict
+ {
+ exch begin
+ dup length 1 sub -1 0
+ { 1 index exch get load exch }
+ for
+ pop
+ end
+ }
+.bind def
+
+%
+% Check the image types that can be used as data sources
+% <any> foo <bool>
+%
+/good_image_types mark
+ /filetype { pop //true } .bind
+ /stringtype 1 index
+ /arraytype //xcheck
+ /packedarraytype //xcheck
+.dicttomark readonly def
+
+%
+% <width> <height> <bits/component> <matrix> <dsrc0> ...
+% <multi> <ncomp> <has_alpha>
+% img_build_image_dict
+% <dict> <has_alpha>
+%
+% Build the dictionary corresponding to a colorimage operand stack. This
+% routine will check just enough of the stack to verify that the
+% dictionary can be built, and will generate the appropriate error if this
+% is not the case.
+%
+% The <has_alpha> boolean is used to support the Next alphaimage extension.
+%
+% At the first level, errors in this procedure are reported as colorimage
+% errors. The error actually reported will usually be determined by the
+% pseudo-operator which invokes this routine.
+%
+/img_build_image_dict
+ {
+ % Veify that at least 8 operands are available, and that the top three
+ % operands have the expected types
+ count 8 lt
+ { /.colorimage cvx /stackunderflow signalerror }
+ if
+ 3 copy
+ type /booleantype ne exch
+ type /integertype ne or exch
+ type /booleantype ne or
+ { /.colorimage cvx /typecheck signalerror }
+ if
+
+ % verify that the number of components is 1, 3, or 4
+ 1 index 1 lt 2 index 2 eq or 2 index 4 gt or
+ { /.colorimage cvx /rangecheck signalerror }
+ if
+
+ % Verify that the required number of operands are present if multiple
+ % data sources are being used. If this test is successful, convert
+ % the data sources to an array (in local VM).
+ 2 index
+ {
+ % if an alpha component is present, this adds one more component
+ 2 copy
+ { 1 add }
+ if
+ dup count 9 sub gt
+ {
+ % Adobe interpreters appear to test the arguments sequentially
+ % starting from the top of the stack and report the 1st error found.
+ % To satisfy CET test 12-02.PS we emulate this logic.
+ //true exch -1 1
+ { 3 add index
+ //good_image_types 1 index type .knownget
+ { exec and
+ }
+ { pop pop //false
+ }
+ ifelse
+ }
+ for
+ { /stackunderflow
+ }
+ { /typecheck
+ }
+ ifelse
+ /.colorimage cvx exch signalerror
+ }
+ if
+
+ % build the DataSource array in local VM
+ dup .currentglobal //false .setglobal exch array exch .setglobal
+
+ % stack: <w> <h> <bps> <mtx> <d0> ... <multi> <n> <alpha> <n'> <array>
+ 5 1 roll 4 add 3 roll astore 4 1 roll
+ }
+ if
+
+ % the image dictionary can be built; do so
+ % stack: <w> <h> <bps> <mtx> <dsrc|dsrc_array> <multi> <n> <alpha>
+ 8 1 roll //img_params_ary //img_build_dict exec exch
+ }
+.bind def
+currentdict /good_image_types .undef
+
+%
+% <?dict?>
+% img_unbuild_image_dict
+% <width> <height> <bits/component> <matrix> <dsrc0> ...
+% <multi> <ncomp>
+%
+% If the top entry of the stack is a dictionary that has the keys required
+% by a colorimage dictionary, unpack that dictionary onto the stack.
+% Otherwise just leave things as they are. Note that the <has_alpha>
+% parameter is not pushd onto the stack.
+%
+/img_unbuild_image_dict
+ {
+ //img_check_ary //img_check_keys exec
+ {
+ //img_unbuild_ary //img_unbuild_dict exec
+ 1 index type /booleantype eq
+ {
+ 1 index
+ { 3 -1 roll aload length 2 add -2 roll }
+ if
+ }
+ if
+ }
+ if
+ }
+.bind def
+
+%
+% <width> <height> <polarity> <matrix> <dsrc>
+% img_unbuild_imagemask_dict
+% <dict>
+%
+% Build the dictionary corresponding to an imagemask stack. This routine
+% will verify that the appropriate number of operands are on the stack,
+% and that polarity is a boolean. This is all that is necessary to build
+% the dictionary.
+%
+/img_build_imagemask_dict
+ {
+ % check for proper number of operands
+ count 5 lt
+ { /imagemask .systemvar /stackunderflow signalerror }
+ if
+
+ % verify that polarity is a boolean
+ 2 index type /booleantype ne
+ { /imagemask .systemvar /typecheck signalerror }
+ if
+
+ % the imagemask dictionary can be built; do so
+ //img_mask_params_ary //img_build_dict exec
+ }
+.bind def
+
+%
+% <?dict?>
+% img_unbuild_imagemask_dict
+% <width> <height> <polarity> <matrix> <dsrc>
+%
+% If the top entry of the stack is a dictionary that has the keys rquired
+% by an imagemask dictionary, unpack that dictionary onto the stack.
+% Otherwise just leave things as they are.
+%
+/img_unbuild_imagemask_dict
+ {
+ //img_mask_check_ary //img_check_keys exec
+ {
+ //img_mask_unbuild_ary //img_unbuild_dict exec
+ 3 -1 roll
+ dup type dup /arraytype eq exch /packedarraytype eq or
+ 1 index rcheck and
+ { 0 get 1 eq }
+ if
+ 3 1 roll
+ }
+ if
+ }
+.bind def
+
+%
+% <width> <height> <bits/component> <matrix> <dsrc_0> ...
+% <multi> <ncomp> <has_alpha>
+% .colorimage
+% -
+%
+% Convert the image/colorimage operator from their traditional form to
+% the dictionary form. The <has_alpha> operand is used ot support the
+% Next alphaimage extension.
+%
+% Error handling for these operators is a bit complex, due to the stack
+% handling required of operators that potentially invoke procedures.
+% This problem is discussed in the comment above. The facts relevant to
+% this particular implementation are:
+%
+% 1. The .image1 (or .alphaimage) operator is executed in a stopped
+% context, so that we can undo the gsave context in the event of
+% an error.
+%
+% 2. In the event of an error, the stack is examined to see if the
+% dictionary passed to .image1 (.alphaimage) is still present.
+% If so, this dictionary is "unpacked" onto the stack to re-
+% create the original stack. The <has_alpha> parameter is not
+% pushed onto the stack, as it is not required for any of the
+% pseudo-operators than invoke this procedure.
+%
+% 3. The use of pseudo-operators in this case may yield incorrect
+% results for late-detected errors, as the stack depth will be
+% restored (even though the stack is not). This is, however, no
+% worse than the prior (level >= 2) code, so it should cause no
+% new problems.
+%
+/.colorimage
+ {
+ % build the image dictionary
+ //img_build_image_dict exec
+
+ % execute .image1 in a stopped context
+ {
+ gsave
+ % The CET test file 12-02.ps creates colorimages with a width and
+ % height of 0. Ignore these since that is what the CET expects.
+ 1 index dup /Height get 0 eq exch /Width get 0 eq or
+ { pop pop } % Ignore colorimage. Pop bool and dict
+ {
+ 0 .setoverprintmode % disable overprint mode for images
+ //img_csary 2 index /IMG_NComps get get setcolorspace
+ { .alphaimage }
+ { .image1 }
+ ifelse
+ }
+ ifelse
+ }
+ stopped
+ grestore
+ {
+ //img_unbuild_image_dict exec
+ /.colorimage cvx $error /errorname get
+ signalerror
+ }
+ if
+ }
+.bind def
+
+%
+% <width> <height> <bits/component> <matrix> <dsrc_0> ...
+% <multi> <ncomp>
+% colorimage
+% -
+%
+% Build the colorimage pseudo-operator only if setcolorscreen is visible.
+%
+systemdict /setcolorscreen .knownget
+ {
+ type /operatortype eq
+ {
+ /colorimage
+ {
+ //false
+ //.colorimage
+ stopped
+ { /colorimage .systemvar $error /errorname get signalerror }
+ if
+ }
+ .bind systemdict begin odef end
+ }
+ if
+ }
+if
+
+%
+% width height bits_per_component matrix data_src image -
+%
+% <dict> image -
+%
+% Some special handling is required for ImageType 2 (Display PostScript
+% pixmap images) so as to set the appropriate color space as the current
+% color space.
+%
+/image
+ {
+ dup type /dicttype eq .languagelevel 2 ge and
+ {
+ dup /ImageType get dup 2 eq
+ {
+ % verify the ImageType 2 is supported
+ //.imagetypes exch known
+ {
+ %
+ % Set either DevicePixel or DeviceRGB as the current
+ % color space. DevicePixel is used if the image data is
+ % to be copied directly, with only a geometric
+ % transformation (PixelCopy true). The use of DeviceRGB
+ % in the alternate case is not, in general, correct, and
+ % reflects a current implementation limitation. Ideally,
+ % an intermediate color space should be used only if
+ % the source and destination color models vary; otherwise
+ % the native color space corresponding to the color model
+ % should be used.
+ %
+ % The mechanism to determine depth for the DevicePixel
+ % color space when BitsPerPixel is not available is
+ % somewhat of a hack.
+ %
+ gsave
+ 0 .setoverprintmode % disable overprintmode for images
+ dup /PixelCopy .knownget dup
+ { pop }
+ if
+ {
+ [
+ /DevicePixel
+ currentpagedevice dup /BitsPerPixel .knownget
+ { exch pop }
+ {
+ /GrayValues .knownget not
+ { 2 } % try a guess
+ if
+ ln 2 ln div round cvi
+ }
+ ifelse
+ ]
+ }
+ { /DeviceRGB }
+ ifelse
+ setcolorspace
+ //.imagetypes 2 get
+ stopped
+ grestore
+ { /image .systemvar $error /errorname get signalerror }
+ if
+ }
+ { /image .systemvar /rangecheck signalerror
+ }
+ ifelse
+ }
+ {
+ dup //.imagetypes exch .knownget
+ {
+ exch pop gsave
+ 0 .setoverprintmode % disable overprintmode for images
+ stopped
+ grestore
+ { /image .systemvar $error /errorname get signalerror }
+ if
+ }
+ {
+ /image .systemvar exch type /integertype eq
+ { /rangecheck } { /typecheck }
+ ifelse signalerror
+ }
+ ifelse
+ }
+ ifelse
+ }
+ {
+ //false 1 //false
+ //.colorimage
+ stopped
+ { /image .systemvar $error /errorname get signalerror }
+ if
+ }
+ ifelse
+ }
+.bind systemdict begin odef end
+
+% An auxiliary function for checking whether an imagemask to be interpolated.
+/.is_low_resolution % <image dict> .is_low_resolution <bool>
+{ % Checking whether image pixel maps to more than 2 device pixels.
+ % The threshold 2 is arbitrary.
+ 1 exch 0 exch
+ 0 exch 1 exch
+ /ImageMatrix get dup
+ 2 {
+ 4 1 roll
+ idtransform dtransform dup mul exch dup mul add sqrt
+ } repeat
+ max
+ 2 gt % arbitrary
+} .bind def
+
+%
+% width height polarity matrix datasrc imagemask -
+%
+% See the comment preceding the definition of .colorimage for information
+% as to the handling of error conditions.
+%
+/imagemask
+ {
+ dup type /dicttype eq .languagelevel 2 ge and
+ { dup /ImageType get
+ //.imagemasktypes exch .knownget
+ { 1 index //.is_low_resolution exec
+ 2 index /ImageType get 1 eq and
+ 2 index /BitsPerComponent get 1 eq and
+ 2 index /Interpolate .knownget not { //false } if and
+ //filterdict /ImscaleDecode known and
+ %%
+ %% Don't apply ImScaleDecode to interpolate imagemasks if
+ %% the current device is a high level device.
+ %%
+ /HighLevelDevice /GetDeviceParam .special_op {
+ exch pop not
+ }{
+ //true
+ }ifelse
+ and
+ {
+ % Apply interpolated imagemask scaling filter
+ exch .currentglobal exch dup .gcheck .setglobal
+ dup length dict .copydict
+ dup dup /DataSource get
+ dup type /stringtype eq {
+ 1 array astore cvx % image.* operators read strings repeatesly
+ } if
+ mark /Width 3 index /Width get /Height 5 index /Height get .dicttomark
+ /ImscaleDecode filter /DataSource exch put
+ dup dup /Width get 4 mul /Width exch put
+ dup dup /Height get 4 mul /Height exch put
+ dup dup /ImageMatrix get
+ { 4 0 0 4 0 0 } matrix concatmatrix /ImageMatrix exch put
+ 3 1 roll .setglobal
+ } if
+ exec
+ }
+ { % CET 12-08b.ps wants /typecheck
+ /imagemask .systemvar /typecheck signalerror
+ }
+ ifelse
+ }
+ {
+ //img_build_imagemask_dict exec
+ { .imagemask1 }
+ stopped
+ {
+ //img_unbuild_imagemask_dict exec
+ /imagemask .systemvar $error /errorname get signalerror
+ }
+ if
+ }
+ ifelse
+ }
+.bind systemdict begin odef end
+
+end % img_utils_dict
+
+% Conditionally turn image interpolation on or off.
+% INTERPOLATE is not yet set, handle all cases
+currentdict /INTERPOLATE known
+currentdict /DOTERPOLATE known or
+currentdict /NOTERPOLATE known or not {
+ currentfile 1 (%END INTERPOLATE) .subfiledecode flushfile
+} if
+
+/.interpolate {
+ dup /Interpolate .knownget not { //false } if
+ /INTERPOLATE .systemvar ne {
+ dup gcheck .currentglobal exch .setglobal
+ exch dup length dict copy
+ dup /Interpolate /INTERPOLATE .systemvar put
+ exch .setglobal
+ } if
+} .bind odef
+
+/colorimage
+ { /INTERPOLATE .systemvar
+ { .currentglobal % w h bit [] {}...{} multi ncomp glob
+ //false .setglobal
+ 9 dict begin % w h bit [] {}...{} multi ncomp glob
+ 2 .argindex { 1 index 7 add } { 8 } ifelse
+ dup .argindex pop % check # of arguments
+ copy gsave pop % preserve the arguments
+ { 0 /DeviceGray 0 /DeviceRGB /DeviceCMYK }
+ 1 index get setcolorspace % ... glob w h bit [] {}...{} multi ncomp
+ {0 1 0 1 0 1 0 1}
+ 1 index 2 mul 0 exch % ... glob w h bit [] {}...{} multi ncomp {0 1 ...} 0 2*ncomp
+ getinterval /Decode exch def % ... glob w h bit [] {}...{} multi ncomp
+ exch dup % ... glob w h bit [] {}...{} ncomp multi multi
+ /MultipleDataSources exch def % ... glob w h bit [] {}...{} ncomp multi
+ { array astore} { pop } ifelse % ... glob w h bit [] [{}...{}]
+ /DataSource exch def % ... glob w h bit []
+ /ImageMatrix exch def % ... glob w h bit
+ /BitsPerComponent exch def % ... glob w h
+ /Height exch def % ... glob w
+ /Width exch def % ... glob
+ /ImageType 1 def
+ /Interpolate //true def
+ .setglobal currentdict end % ... <<>>
+ image grestore
+ exch { 4 add } { 6 } ifelse
+ { pop } repeat % -
+ }
+ { colorimage
+ }
+ ifelse
+ } .bind odef
+
+/image
+ { dup type /dicttype eq
+ { dup /ImageType get 3 eq
+ { .currentglobal //false .setglobal exch
+ dup length dict copy begin .setglobal
+ /DataDict DataDict .interpolate def
+ /MaskDict MaskDict .interpolate def
+ currentdict end
+ }
+ { .interpolate
+ }
+ ifelse
+ image
+ }
+ { /INTERPOLATE .systemvar
+ { 4 .argindex pop % check # of args
+ .currentglobal //false .setglobal
+ 8 dict begin .setglobal
+ /ImageType 1 def
+ /DataSource 1 index def
+ /ImageMatrix 2 index def
+ /BitsPerComponent 3 index def
+ /Decode {0 1} def
+ /Height 4 index def
+ /Width 5 index def
+ /Interpolate //true def
+ currentdict end
+ gsave /DeviceGray setcolorspace image grestore
+ 5 { pop } repeat
+ }
+ { image
+ }
+ ifelse
+ }
+ ifelse
+ } .bind odef
+
+/imagemask {
+ dup type /dicttype eq {
+ .interpolate imagemask
+ } {
+ /INTERPOLATE .systemvar {
+ 4 .argindex pop % check # of args
+ .currentglobal //false .setglobal
+ 8 dict begin .setglobal
+ /ImageType 1 def
+ /DataSource 1 index def
+ /ImageMatrix 2 index def
+ /BitsPerComponent 1 def
+ 2 index { {1 0} } { {0 1} } ifelse /Decode exch def
+ /Height 4 index def
+ /Width 5 index def
+ /Interpolate //true def
+ currentdict end imagemask 5 { pop } repeat
+ } {
+ imagemask
+ } ifelse
+ } ifelse
+} .bind odef
+
+currentdict /.interpolate .undef
+
+%END INTERPOLATE
+
+.setglobal % restore VM mode
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_init.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_init.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_init.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,2261 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for the interpreter.
+% When this is run, systemdict is still writable.
+
+% Comment lines of the form
+% %% Replace <n> <file(s)>
+% indicate places where the next <n> lines should be replaced by
+% the contents of <file(s)>, when creating a single merged init file.
+
+% The interpreter can call out to PostScript code. All procedures
+% called in this way, and no other procedures defined in these
+% initialization files, have names that begin with %, e.g.,
+% (%Type1BuildChar) cvn.
+
+% Interpreter library version number
+% NOTE: the interpreter code requires that the first non-comment token
+% in this file be an integer, and that it match the compiled-in version!
+921
+
+% Check the interpreter revision.
+dup revision ne
+ { (gs: Interpreter revision \() print revision 10 string cvs print
+ (\) does not match gs_init.ps revision \() print 10 string cvs print
+ (\).\n) print flush //null 1 .quit
+ }
+if pop
+
+% Acquire userdict, and set its length if necessary.
+/userdict where
+ { pop userdict maxlength 0 eq }
+ { //true }
+ifelse
+systemdict exch
+ { % userdict wasn't already set up by iinit.c.
+ dup /userdict
+ currentdict dup 200 .setmaxlength % userdict
+ .forceput % userdict is local, systemdict is global
+ }
+if begin
+
+% Define dummy local/global operators if needed.
+systemdict /.setglobal known
+ { //true .setglobal
+ }
+ { /.setglobal { pop } bind def
+ /.currentglobal { //false } bind def
+ /.gcheck { pop //false } bind def
+ }
+ifelse
+
+% Define .languagelevel if needed.
+systemdict /.languagelevel known not { /.languagelevel 1 def } if
+
+% Optionally choose a default paper size other than U.S. letter.
+% The default page size for many devices is set at compile time to
+% letter, but this can be changed to A4 although this is rarely done.
+% Some devices such as bbox have a different default page size,
+% and should not be set to A4 or letter.
+% When ghostscript is used in countries that use the international
+% standard page size A4 rather than US letter, the page size of
+% devices that default to letter or A4 can be changed by setting
+% DEFAULTPAPERSIZE.
+% /DEFAULTPAPERSIZE (a4) def
+
+% Turn on array packing for the rest of initialization.
+//true setpacking
+
+% Define the old MS-DOS EOF character as a no-op.
+% This is a hack to get around the absurd habit of MS-DOS editors
+% of adding an EOF character at the end of the file.
+<1a> cvn { } def
+
+% Acquire the debugging flags.
+currentdict /DEBUG known /DEBUG exch def
+
+% if DEBUG is set, set ALL of the subset debugging flags
+mark % '[' isn't defined yet
+ /CCFONTDEBUG % Compiled Fonts
+ /CFFDEBUG % CFF Fonts
+ /CMAPDEBUG % CMAP
+ /DOCIEDEBUG % CIE color
+ /EPSDEBUG % EPS handling
+ /FAPIDEBUG % Font API
+ /INITDEBUG % Initialization
+ /PDFDEBUG % PDF Interpreter
+ /PDFWRDEBUG % PDF Writer
+ /SETPDDEBUG % setpagedevice
+ /TTFDEBUG % TTF Fonts
+ /VGIFDEBUG % ViewGIF
+ /VJPGDEBUG % ViewJPEG
+ /RESMPDEBUG % Resource map
+counttomark array astore exch pop % ']' isn't defined yet
+{ dup currentdict exch known DEBUG or def } forall
+
+currentdict /PDFSTEP known /PDFSTEP exch def
+% if PDFSTEP is on, turn on PDFDEBUG
+PDFSTEP { /PDFDEBUG //true def } if
+
+currentdict /PDFSTOPONERROR known /PDFSTOPONERROR exch def
+currentdict /PDFSTOPONWARNING known {/PDFSTOPONWARNING true def /PDFSTOPONERROR true def}{/PDFSTOPONWARNING false def} ifelse
+currentdict /PDFNOCIDFALLBACK known /PDFNOCIDFALLBACK exch def
+
+ /VMDEBUG
+ INITDEBUG {{print mark
+ systemdict /level2dict known
+ { .currentglobal dup //false .setglobal vmstatus
+ //true .setglobal vmstatus 3 -1 roll pop
+ 6 -2 roll pop .setglobal
+ }
+ { vmstatus 3 -1 roll pop
+ }
+ ifelse usertime 16#fffff and counttomark
+ { ( ) print ( ) cvs print }
+ repeat pop
+ ( ) print systemdict length ( ) cvs print
+ ( ) print countdictstack ( ) cvs print
+ ( <) print count ( ) cvs print (>\n) print flush
+ }}
+ {{pop
+ }}
+ ifelse
+ def
+
+currentdict /BATCH known /BATCH exch def
+currentdict /DELAYBIND known /DELAYBIND exch def
+currentdict /DISKFONTS known /DISKFONTS exch def
+currentdict /DOINTERPOLATE .knownget { /INTERPOLATE exch def } if
+currentdict /ESTACKPRINT known /ESTACKPRINT exch def
+currentdict /FAKEFONTS known /FAKEFONTS exch def
+currentdict /FIXEDMEDIA known /FIXEDMEDIA exch def
+currentdict /FIXEDRESOLUTION known /FIXEDRESOLUTION exch def
+currentdict /LOCALFONTS known /LOCALFONTS exch def
+currentdict /JOBSERVER known /JOBSERVER exch def
+currentdict /NOBIND known /NOBIND exch def
+/.bind /bind load def
+NOBIND { /bind { } def } if
+currentdict /NOCACHE known /NOCACHE exch def
+currentdict /NOCCFONTS known /NOCCFONTS exch def
+currentdict /NOCIE known /NOCIE exch def
+currentdict /NOPSICC known /NOPSICC exch def
+currentdict /NODISPLAY known not /DISPLAYING exch def
+currentdict /NOFONTMAP known /NOFONTMAP exch def
+currentdict /NOFONTPATH known /NOFONTPATH exch def
+currentdict /NOGC known /NOGC exch def
+currentdict /NOINTERPOLATE .knownget { /INTERPOLATE exch not def } if
+currentdict /NOMEDIAATTRS known /NOMEDIAATTRS exch def
+currentdict /NOOUTERSAVE known /NOOUTERSAVE exch def
+currentdict /NOPAGEPROMPT known /NOPAGEPROMPT exch def
+currentdict /NOPAUSE known /NOPAUSE exch def
+currentdict /NOPLATFONTS known /NOPLATFONTS exch def
+currentdict /NOPROMPT known /NOPROMPT exch def
+currentdict /NOTRANSPARENCY known /NOTRANSPARENCY exch def
+currentdict /DOPS known /DOPS exch def
+currentdict /NOSUBSTDEVICECOLORS known /NOSUBSTDEVICECOLORS exch def
+% The default value of ORIENT1 is true, not false.
+currentdict /ORIENT1 known not { /ORIENT1 //true def } if
+currentdict /OSTACKPRINT known /OSTACKPRINT exch def
+currentdict /OUTPUTFILE known % obsolete
+ { /OutputFile /OUTPUTFILE load def
+ currentdict /OUTPUTFILE .undef
+ } if
+currentdict /QUIET known /QUIET exch def
+% DELAYSAFER is effectively the same as newer NOSAFER
+currentdict /DELAYSAFER known { /DELAYSAFER //true def /NOSAFER //true def } if
+/SAFER currentdict /NOSAFER known {
+ //false
+} {
+ currentdict /SAFER known
+ currentdict /PARANOIDSAFER known or % PARANOIDSAFER is equivalent
+}
+ifelse def
+currentdict /SHORTERRORS known /SHORTERRORS exch def
+currentdict /STRICT known /STRICT exch def
+currentdict /TTYPAUSE known /TTYPAUSE exch def
+currentdict /WRITESYSTEMDICT known /WRITESYSTEMDICT exch def
+currentdict /RENDERTTNOTDEF known /RENDERTTNOTDEF exch def
+currentdict /SCANCONVERTERTYPE known
+{
+ currentdict /SCANCONVERTERTYPE get .setscanconverter
+} if
+
+% We rely on PSFitPage to actually implement EPSFitPage
+currentdict /EPSFitPage known { /PSFitPage //true def } if
+% This is a "convenience" option that sets a combination of EPSFitPage, PDFFitPage and PSFitPage
+currentdict /FitPage known { /EPSFitPage //true def /PDFFitPage //true def /PSFitPage //true def } if
+
+% Acquire environment variables.
+currentdict /DEVICE known not
+ { (GS_DEVICE) getenv { /DEVICE exch def } if } if
+
+(START) VMDEBUG
+
+% Open the standard files, so they will be open at the outermost save level.
+(%stdin) (r) file pop
+(%stdout) (w) file pop
+(%stderr) (w) file pop
+
+/.currentuserparams where {
+ pop mark
+ % The Adobe implementations appear to have very large maximum
+ % stack sizes. This turns out to actually make a difference,
+ % since some badly-behaved files include extremely long procedures,
+ % or construct huge arrays on the operand stack.
+ % We reset the stack sizes now so that we don't have to worry
+ % about overflowing the (rather small) built-in stack sizes
+ % during initialization.
+ /MaxDictStack 500
+ /MaxExecStack 5000
+ /MaxOpStack 300000
+ .dicttomark .setuserparams
+} if
+
+% Define a procedure for skipping over an unneeded section of code.
+% This avoids allocating space for the skipped procedures.
+% We can't use readline, because that imposes a line length limit.
+/.skipeof % <string> .skipeof -
+ { currentfile exch 1 exch .subfiledecode flushfile
+ } .bind def
+
+% Define procedures to assist users who don't read the documentation.
+userdict begin
+/help
+ { (Enter PostScript commands. '(filename) run' runs a file, 'quit' exits.\n)
+ print flush
+ } .bind def
+end
+
+% Define =string, which is used by some PostScript programs even though
+% it isn't documented anywhere.
+% Put it in userdict so that each context can have its own copy.
+userdict /=string 256 string put
+
+% Print the greeting.
+
+/printgreeting
+ { mark
+ product (GPL Ghostscript) search
+ { pop pop pop
+ (This software comes with NO WARRANTY: see the file PUBLIC for details.\n)
+ }
+ { pop
+ }
+ ifelse
+ (\n) copyright
+ (\)\n) revisiondate 10 mod revisiondate 10 idiv 10 mod (-)
+ revisiondate 100 idiv 10 mod revisiondate 1000 idiv 10 mod (-)
+ revisiondate 10000 idiv ( \()
+ revision 10 mod
+ revision 100 mod 10 idiv (.)
+ revision 100 idiv ( )
+ product
+ counttomark
+ { (%stdout) (w) file exch 0 .writecvp
+ } repeat pop
+ } .bind def
+
+QUIET not { printgreeting flush } if
+
+% Define a special version of def for making operator procedures.
+/obind { % <name> <proc> obind <name> <oper>
+ 1 index exch .makeoperator
+} .bind def
+/odef { % <name> <proc> odef -
+ 1 index exch .makeoperator def
+} .bind def
+
+% Define a special version of def for storing local objects into global
+% dictionaries. Like .forceput, this exists only during initialization.
+/.forcedef { % <key> <value> .forcedef -
+ 1 .argindex pop % check # of args
+ currentdict 3 1 roll .forceput
+} .bind odef
+
+% Define procedures for accessing variables in systemdict and userdict
+% regardless of the contents of the dictionary stack.
+/.systemvar { % <name> .systemvar <value>
+ //systemdict exch get
+} .bind odef
+/.systemexec {
+ .systemvar exec
+} .bind odef
+/.userdict { % - .userdict <dict>
+ /userdict .systemvar
+} .bind odef
+/.uservar { % <name> .uservar <value>
+ .userdict exch get
+} .bind odef
+
+% If we're delaying binding, remember everything that needs to be bound later.
+DELAYBIND NOBIND not and
+ { .currentglobal //false .setglobal
+ systemdict /.delaybind 2000 array .forceput
+ .setglobal
+ userdict /.delaycount 0 put
+ % When we've done the delayed bind, we want to stop saving.
+ % Detect this by the disappearance of .delaybind.
+ /bind
+ { /.delaybind .systemvar dup length 0 ne
+ { .delaycount 2 index put
+ .userdict /.delaycount .delaycount 1 add put
+ }
+ { pop /.bind cvx exec
+ }
+ ifelse
+ } .bind def
+ } if
+
+%**************** BACKWARD COMPATIBILITY ****************
+/hwsizedict mark /HWSize //null .dicttomark readonly def
+/copyscanlines { % <device> <y> <string> copyscanlines <substr>
+ 0 3 1 roll 3 index //hwsizedict .getdeviceparams
+ exch pop exch pop aload pop 3 2 roll
+ 0 exch //null exch .getbitsrect exch pop
+} bind odef
+currentdict /hwsizedict .undef
+/getdeviceprops
+ { //null .getdeviceparams
+ } bind odef
+/.putdeviceprops
+ { //null //true counttomark 1 add 3 roll .putdeviceparams
+ dup type /booleantype ne
+ { dup mark eq { /unknown /rangecheck } if
+ counttomark 4 add 1 roll cleartomark pop pop pop
+ /.putdeviceprops .systemvar exch signalerror
+ }
+ if
+ } bind odef
+/.currentfilladjust { .currentfilladjust2 pop } bind odef
+/.setfilladjust { dup .setfilladjust2 } bind odef
+/.writecvs { 0 .writecvp } bind odef
+%**************** DEPRECATED PROCEDURES ****************
+%**************** DO NOT USE THESE IN NEW CODE ****************
+/max { .max } bind def % use .max instead
+/min { .min } bind def % use .min instead
+/unread /.unread load def % use .peekstring instead
+%**************** END OF BACKWARD COMPATIBILITY SECTION ****************
+
+% Utility for removing all entries from a dictionary
+/.PurgeDict % <dict> .PurgeDict -
+{ { //true
+ 1 index { pop exch pop //false exit
+ } forall
+ { exit
+ } if
+ 1 index exch undef
+ } loop
+ pop
+} bind def
+
+% Define predefined procedures substituting for operators,
+% in alphabetical order.
+
+userdict /#copies 1 put
+% Adobe implementations don't accept /[ or /], so we don't either.
+([) cvn
+ /mark load def
+(]) cvn
+ {counttomark array astore exch pop} odef
+% .beginpage is redefined if setpagedevice is present.
+/.beginpage { } odef
+% In LanguageLevel 3, copypage erases the page.
+/copypage {
+ .languagelevel 3 ge
+ dup { 0 } { 1 } ifelse .endpage .doneshowpage {
+ .currentnumcopies 1 index .outputpage
+ (>>copypage, press <return> to continue<<\n) .confirm
+ dup { erasepage } if
+ } if pop
+ systemdict /..page_default_spaces .knownget { //.PurgeDict exec } if
+ .beginpage
+} odef
+/currentmatrix {
+ dup type /arraytype ne
+ { /currentmatrix load /typecheck signalerror } if
+ dup length 6 ne
+ { /currentmatrix load /rangecheck signalerror } if
+ .currentmatrix 6 .argindex astore pop
+} odef
+% .currentnumcopies is redefined in Level 2.
+/.currentnumcopies { #copies } odef
+/setcolorscreen where { pop % not in all Level 1 configurations
+ /currentcolorscreen
+ { .currenthalftone
+ { { 60.0 exch 0.0 exch 3 copy 6 copy } % halftone - not possible
+ { 3 copy 6 copy } % screen
+ { } % colorscreen
+ }
+ exch get exec
+ } odef
+} if
+/currentscreen
+ { .currenthalftone
+ { { 60.0 exch 0.0 exch } % halftone - not possible
+ { } % screen
+ { 12 3 roll 9 { pop } repeat } % colorscreen
+ }
+ exch get exec
+ } odef
+/.echo /echo load def
+userdict /.echo.mode //true put
+/echo {dup /.echo.mode exch store .echo} odef
+/.eexec_param_dict mark
+ /eexec //true
+ /seed 55665
+.dicttomark readonly def
+/eexec {
+ % Rebind .currentresourcefile if it is the source for the eexec.
+ dup //.eexec_param_dict //filterdict /eexecDecode get exec
+ cvx exch .currentresourcefile eq
+ //systemdict begin { {exec} .execasresource } { exec } ifelse
+ % Only pop systemdict if it is still the top element,
+ % because this is apparently what Adobe interpreters do.
+ currentdict //systemdict eq { end } if
+} odef
+% .endpage is redefined if setpagedevice is present.
+/.endpage { 2 ne } odef
+% erasepage mustn't use gsave/grestore, because we call it before
+% the graphics state stack has been fully initialized.
+/erasepage
+ { /currentcolor where
+ { pop currentcolor currentcolorspace { setcolorspace setcolor } }
+ { /currentcmykcolor where
+ { pop currentcmykcolor { setcmykcolor } }
+ { currentrgbcolor { setrgbcolor } }
+ ifelse
+ }
+ ifelse
+ currentoverprint //false setoverprint 1 setgray .fillpage setoverprint
+ exec
+ } odef
+% To satisfy the Genoa FTS, executive must be a procedure, not an operator.
+/executive
+ { { prompt
+ { (%statementedit) (r) .systemvmfile } stopped
+ { pop pop $error /errorname get /undefinedfilename eq
+ { .clearerror exit } if % EOF
+ /handleerror .systemvar exec //null % ioerror??
+ }
+ if
+ cvx { .runexec } .execute pop
+ } loop
+ } bind def
+/filter
+ { //filterdict 1 .argindex .knownget
+ { exch pop exec }
+ { /filter .systemvar /undefined signalerror }
+ ifelse
+ } odef
+% handleerror procedure as mentioned in the "Operators" section of the PLRM Section 8.2
+% This invokes the handleerror procedure from errordict (unless we are running under a
+% JOBSERVER where we want to always use a defined error handler (many error handlers in
+% 'wild' PostScript files are broken and don't indicate the error in any useful fashion).
+%
+% We run the handleerror procedure using .internalstopped so that broken error handlers
+% won't cause nested errors (Unexpected Error conditions).
+/handleerror
+ JOBSERVER {
+ { /.GShandleerror .systemvar .internalstopped pop } bind % always use .GShandleerror.
+ } {
+ { /errordict .systemvar /handleerror get .internalstopped pop } bind % PLRM standard errorhandling
+ } ifelse def
+/identmatrix [1.0 0.0 0.0 1.0 0.0 0.0] readonly def
+/identmatrix {
+ dup type /arraytype ne { /identmatrix load /typecheck signalerror } if
+ dup length 6 ne { /identmatrix load /rangecheck signalerror } if
+ dup 0 //identmatrix putinterval
+} odef
+/languagelevel 1 def % gs_lev2.ps may change this
+/makeimagedevice { //false makewordimagedevice } odef
+/matrix { 6 array identmatrix } odef
+% .promptmsg is redefined if the interpreter includes readline support.
+/.promptmsg {
+ (GS) print
+ count 0 ne { (<) print count =only } if
+ (>) print flush
+} bind def
+/prompt { flush flushpage NOPROMPT not { .promptmsg } if } bind def
+/pstack { 0 1 count 3 sub { index == } for } bind def
+/putdeviceprops
+ { .putdeviceprops { erasepage } if } odef
+/quit { /quit load 0 .quit } odef
+/run { dup type /filetype ne { (r) .systemvmfile } if
+ % We must close the file when execution terminates,
+ % regardless of the state of the stack,
+ % and then propagate an error, if any.
+ cvx //null {.runexec} .errorexec
+ } odef
+% Execute a file.
+% Level 2 uses 2 .stop to clear the e-stack for a successful startjob:
+% we detect that here, since we need to handle this even if we start out
+% without job control in effect.
+%
+% What we push on the e-stack is the following to be executed in this order:
+% <lit-file|fileproc> .runexec1 <lit-file|fileproc> .runexec2
+/.runexec1 { % <file|fileproc> .runexec1 -
+ dup type /filetype ne { cvx exec } if
+ cvx //null 2 .stopped
+ % If we got back here from a startjob, just keep going.
+ % startjob replaces the null on the o-stack with a procedure
+ % to be executed when we get back here.
+ dup //null ne { exec //true } { pop //false } ifelse
+} bind def
+/.runexec2 { % <continue> <file|fileproc> .runexec2 -
+ exch {
+ .runexec
+ } {
+ dup type /filetype ne { cvx exec } if
+ closefile
+ } ifelse
+} bind def
+/.runexec { % <file|fileproc> .runexec -
+ cvlit /.runexec1 cvx 1 index /.runexec2 cvx 4 .execn
+} bind def
+% The following is only for compatibility with Adobe interpreters.
+/setdash {
+ 0 .argindex type dup /integertype eq exch /realtype eq or not {
+ /setdash .systemvar /typecheck signalerror
+ } if
+ //setdash
+} odef
+/setdevice
+ {
+ .setdevice
+ {
+ mark
+ { % Reset the halftone since the device may differ
+ currenthalftone
+ dup type /dicttype eq
+ { sethalftone }
+ { pop }
+ ifelse
+ }
+ stopped
+ cleartomark
+ erasepage
+ }
+ if
+ }
+odef
+/setlinecap {
+ dup 2 gt { /setlinecap .systemvar /rangecheck signalerror } if
+ .setlinecap
+} odef
+/setlinejoin {
+ dup 2 gt { /setlinejoin .systemvar /rangecheck signalerror } if
+ .setlinejoin
+} odef
+/setmatrix {
+ dup type /arraytype ne {
+ dup type /packedarraytype ne {
+ /setmatrix load /typecheck signalerror
+ } if
+ } if
+ dup length 6 ne { /setmatrix load /rangecheck signalerror } if
+ dup aload pop .setmatrix pop
+} odef
+/showpage {
+ 0 .endpage .doneshowpage {
+ .currentnumcopies //true .outputpage
+ (>>showpage, press <return> to continue<<\n) .confirm
+ % Uncomment the following line, and use a Memento build to track
+ % blocks that are created and not destroyed between each successive
+ % page.
+ % 2 .vmreclaim .mementolistnewblocks
+ initgraphics
+ currentoverprint //false setoverprint 1 setcolor
+ .fillpage
+ setoverprint 0 setcolor
+ }
+ { initgraphics } ifelse
+ systemdict /..page_default_spaces .knownget { //.PurgeDict exec } if
+ .beginpage
+} odef
+% Code output by Adobe Illustrator relies on the fact that
+% `stack' is a procedure, not an operator!!!
+/stack { 0 1 count 3 sub { index = } for } bind def
+/start { BATCH { //null 0 .quit } { executive } ifelse } def
+% Internal uses of stopped that aren't going to do a stop if an error occurs
+% should use .internalstopped to avoid setting newerror et al.
+/.internalstopped { //null 1 .stopped //null ne } bind def
+/store { % Don't alter operands before completing.
+ 1 .argindex where { 2 index 2 index put pop pop } { def } ifelse
+} odef
+/.typenames mark .typenames counttomark packedarray exch pop def
+/type {
+ //.typenames .type
+} odef
+currentdict /.typenames .undef
+% When running in Level 1 mode, this interpreter is supposed to be
+% compatible with PostScript "version" 54.0 (I think).
+/version (54.0) readonly def
+/.wheredict 10 dict def
+/.where /where load def
+/where {
+ //.wheredict 1 .argindex .knownget { exec } { .where } ifelse
+} odef
+
+% internaldict is defined in systemdict, but the dictionary is allocated
+% in local VM. However, the procedure must be global, since it is an
+% "operator" and must be bind-able into global procedures.
+% We make a procedure for creating it, since we must create a new one
+% for each context with private local VM.
+/.makeinternaldict {
+ .currentglobal //true .setglobal
+ [ /dup .systemvar 1183615869 /eq .systemvar
+ [ /pop .systemvar //null ] cvx
+ //false .setglobal
+ dup 1 10 dict .forceput % proc is global, dict is local
+ //true .setglobal
+ [ /internaldict /cvx .systemvar /invalidaccess /signalerror cvx ] cvx
+ /ifelse .systemvar
+ ] cvx executeonly
+ exch .setglobal
+} odef
+systemdict /internaldict dup .makeinternaldict .makeoperator
+.forceput % proc is local, systemdict is global
+
+% Define some additional built-in procedures (beyond the ones defined by
+% the PostScript Language Reference Manual).
+% Warning: these are not guaranteed to stay the same from one release
+% to the next!
+/concatstrings % (str1) (str2) concatstrings (str1str2)
+ { exch dup length 2 index length add string % str2 str1 new
+ dup dup 4 2 roll copy % str2 new new new1
+ length 4 -1 roll putinterval
+ } bind def
+/copyarray
+ { dup length array copy } bind def
+% Copy a dictionary per the Level 2 spec even in Level 1.
+/.copydict % <fromdict> <todict> .copydict <todict>
+ { dup 3 -1 roll { put dup } forall pop } bind def
+/copystring
+ { dup length string copy } bind def
+/findlibfile {
+ .systemvmlibfile { dup .filename pop exch //true } { //false } ifelse
+} odef
+/.growdictlength % get size for growing a dictionary
+ { length 3 mul 2 idiv 1 add
+ } bind def
+/.growdict % grow a dictionary
+ { dup .growdictlength .setmaxlength
+ } bind def
+/.growput % put, grow the dictionary if needed
+ { 2 index length 3 index maxlength eq
+ { 3 copy pop known not { 2 index .growdict } if
+ } if
+ put
+ } bind def
+% .localvmarray may be an operator: see zsysvm.c.
+/.localvmarray where {
+ pop
+} {
+ /.localvmarray {
+ .currentglobal //false .setglobal
+ exch array exch .setglobal
+ } bind def
+} ifelse
+/.localvmdict where {
+ pop
+} {
+ /.localvmdict {
+ .currentglobal //false .setglobal
+ exch dict exch .setglobal
+ } bind def
+} ifelse
+/.packtomark
+ { counttomark packedarray exch pop } bind def
+/ppstack
+ { 0 1 count 3 sub { index === } for } bind def
+/runlibfile
+ { % We don't want to bind 'run' into this procedure,
+ % since run may get redefined.
+ findlibfile
+ { exch pop /run .systemvar exec }
+ { /undefinedfilename signalerror }
+ ifelse
+ } bind def
+/selectdevice
+ { finddevice setdevice .setdefaultscreen } bind def
+/signalerror % <object> <errorname> signalerror -
+ { /errordict .systemvar exch get exec } bind def
+/signaloperror { % <object> <errorname> signaloperror -
+ % Same as signalerror, except that if we are inside a pseudo-operator
+ % or .errorexec, we use its error object, just as errors generated by
+ % real operators do.
+ /errordict .systemvar exch get
+ .finderrorobject { 3 -1 roll pop exch } if
+ exec
+} bind def
+
+% Define the =[only] procedures. Also define =print,
+% which is used by some PostScript programs even though
+% it isn't documented anywhere.
+/write=only {
+ .writecvs
+} bind def
+/write= {
+ 1 index exch write=only (\n) writestring
+} bind def
+/=only { (%stdout) (w) file exch write=only } bind def
+/= { =only (\n) print } bind def
+/=print /=only load def
+% Temporarily define == as = for the sake of runlibfile0.
+/== /= load def
+
+% The following procedures are documented.
+/copydevice { % <device> copydevice <newdevice>
+ //false .copydevice2
+} odef
+/finddevice { % <devicename> finddevice <device>
+ /devicedict .systemvar exch get
+ dup 1 get //null eq {
+ % This is the first request for this type of device.
+ % Create a default instance now.
+ % Stack: [proto null]
+ .currentglobal //true .setglobal exch
+ dup dup 0 get copydevice 1 exch put
+ exch .setglobal
+ } if 1 get
+} bind def
+/findprotodevice { % <devicename> findprotodevice <protodevice>
+ /devicedict .systemvar exch get 0 get
+} bind def
+
+% Run a resource file. This allows us to distinguish resource objects
+% from objects coming from input files.
+userdict /.currentresourcefile //null put
+/.execasresource { % <file> <proc|runfile> .execasresource -
+ /stopped .systemvar
+ /.currentresourcefile .uservar
+ % Stack: file proc -stopped- currfile
+ .userdict /.currentresourcefile 5 index cvlit put
+ 2 .execn % stopped <file>
+ .userdict /.currentresourcefile 3 -1 roll put
+ { stop } if
+} bind def
+/.runresource { % <file> .runresource -
+ { /run .systemvar exec } .execasresource
+} bind def
+
+% Define procedures for getting and setting the current device resolution.
+
+/gsgetdeviceprop % <device> <propname> gsgetdeviceprop <value>
+ { 2 copy mark exch //null .dicttomark .getdeviceparams
+ dup mark eq % if true, not found
+ { pop dup /undefined signalerror }
+ { 5 1 roll pop pop pop pop }
+ ifelse
+ } bind def
+/gscurrentresolution % - gscurrentresolution <[xres yres]>
+ { currentdevice /HWResolution gsgetdeviceprop
+ } bind def
+/gssetresolution % <[xres yres]> gssetresolution -
+ { 2 array astore mark exch /HWResolution exch
+ currentdevice copydevice putdeviceprops setdevice
+ } bind def
+
+% Define auxiliary procedures needed for the above.
+/shellarguments % -> shell_arguments true (or) false
+ { /ARGUMENTS where
+ { /ARGUMENTS get dup type /arraytype eq
+ { aload pop /ARGUMENTS //null store //true }
+ { pop //false }
+ ifelse }
+ { //false } ifelse
+ } bind def
+/.confirm {
+ DISPLAYING NOPAUSE not TTYPAUSE or and {
+ % Print a message (unless NOPAGEPROMPT or NOPROMPT is true)
+ % and wait for the user to type something.
+ % If the user just types a newline, flush it.
+ NOPAGEPROMPT NOPROMPT or { pop } { print flush } ifelse
+ .confirmread
+ } {
+ pop
+ } ifelse
+} bind def
+/.confirmread {
+ TTYPAUSE {
+ (/dev/tty) (r) file dup read pop pop closefile
+ } {
+ .echo.mode //false echo
+ (%stdin) (r) file dup read {
+ dup (\n) 0 get eq { pop pop } { unread } ifelse
+ } {
+ pop
+ } ifelse echo
+ } ifelse
+} bind def
+
+% Define the procedure used by .runfile, .runstdin and .runstring
+% for executing user input.
+% This is called with a procedure or executable file on the operand stack.
+/.execute { % <obj> .execute <stopped>
+ stopped $error /newerror get and
+ { /handleerror .systemvar exec flush //true } { //false } ifelse
+} bind def
+/execute { % <obj> execute -
+ .execute pop
+} odef
+% Define an execute analogue of runlibfile0.
+/execute0 { % <obj> execute0 -
+ .execute { /execute0 cvx 1 .quit } if
+} bind def
+% Define the procedure that the C code uses for running files
+% named on the command line.
+/.runfile {
+ { runlibfile } execute0
+} def
+% Define the procedure that the C code uses for running piped input.
+% We don't use the obvious { (%stdin) run }, because we want the file to be
+% reopened if a startjob does a restore.
+/.runstdin {
+ { { (%stdin) (r) file cvx } .runexec } execute0
+} bind def
+% Define the procedure that the C code uses for running commands
+% given on the command line with -c. We turn the string into a file so that
+% .runexec can do the right thing with a startjob.
+/.runstring {
+ 0 0 .systemvmstring .systemvmSFD cvx { .runexec } execute0
+} bind def
+% Define the procedure that the C code uses to set up for executing
+% a string that may be received in pieces.
+/.runstringbegin {
+ 1 .systemvmarray dup 0 /.needinput load put cvx % { .needinput } in systemvm
+ 0 0 .systemvmstring .systemvmSFD cvx .runexec
+} bind def
+
+% Define a special version of runlibfile that aborts on errors.
+/runlibfile0
+ { cvlit dup dup /.currentfilename exch def
+ { findlibfile not { stop } if }
+ stopped
+ { (Can't find \(or open\) initialization file ) print
+ .currentfilename == flush /runlibfile0 cvx 1 .quit
+ } if
+ exch pop cvx
+ { stopped } 0 get 3 -1 roll 2 array astore cvx exec
+ /.currentfilename exch store
+ { (While reading ) print .currentfilename print (:\n) print flush
+ /handleerror .systemvar exec /runlibfile0 1 .quit
+ } if
+ } bind def
+% Temporarily substitute it for the real runlibfile.
+/.runlibfile /runlibfile load def
+/runlibfile /runlibfile0 load def
+
+% Create the error handling machinery.
+% Define the standard error handlers.
+% The interpreter has created the ErrorNames array.
+/.unstoppederrorhandler % <command> <errorname> .unstoppederrorhandler -
+ { % This is the handler that gets used for recursive errors,
+ % or errors outside the scope of a 'stopped'.
+ 2 copy SHORTERRORS
+ { (%%[ Error: ) print =only flush
+ (; OffendingCommand: ) print =only ( ]%%) =
+ }
+ { (Unrecoverable error: ) print =only flush
+ ( in ) print = flush
+ count 2 gt
+ { (Operand stack:\n ) print
+ count 1 sub -1 2 { ( ) print index =only flush } for
+ () = flush
+ } if
+ }
+ ifelse
+ -1 0 1 //ErrorNames length 1 sub
+ { dup //ErrorNames exch get 3 index eq
+ { not exch pop exit } { pop } ifelse
+ }
+ for exch pop .quit
+ } bind def
+/.errorhandler % <command> <errorname> .errorhandler -
+ { % Detect an internal 'stopped'.
+ 1 .instopped { //null eq { pop pop stop } if } if
+ (I) //false .setdebug
+ $error /.inerror get 1 .instopped { pop } { pop //true } ifelse
+ { .unstoppederrorhandler
+ } if % detect error recursion
+ $error /globalmode .currentglobal //false .setglobal put
+ $error /.inerror //true put
+ $error /newerror //true put
+ $error exch /errorname exch put
+ $error exch /command exch put
+ $error /errorinfo known not { $error /errorinfo //null put } if
+ $error /recordstacks get $error /errorname get /VMerror ne and
+ { % Attempt to store the stack contents atomically.
+ count array astore dup $error /ostack 4 -1 roll
+ % Grab the execstack, then remove to two elements that are from
+ % this error handler (not interesting).
+ countexecstack array execstack dup length 2 sub 0 exch getinterval
+ $error /estack 3 -1 roll
+ countdictstack array dictstack $error /dstack 3 -1 roll
+ put put put aload pop
+ }
+ { $error /dstack .undef
+ $error /estack .undef
+ $error /ostack .undef
+ }
+ ifelse
+ $error /position currentfile status
+ { currentfile { fileposition } .internalstopped { pop //null } if
+ }
+ { % If this was a scanner error, the file is no longer current,
+ % but the command holds the file, which may still be open.
+ $error /command get dup type /filetype eq
+ { { fileposition } .internalstopped { pop //null } if }
+ { pop //null }
+ ifelse
+ }
+ ifelse put
+ % During initialization, we don't reset the allocation
+ % mode on errors.
+ $error /globalmode get $error /.nosetlocal get and .setglobal
+ $error /.inerror //false put
+ stop
+ } bind def
+% Define the standard handleerror. We break out the printing procedure
+% (.printerror) so that it can be extended for binary output
+% if the Level 2 facilities are present.
+ /.printerror
+ { $error begin newerror
+ {
+ /command load errorname SHORTERRORS
+ { (%%[ Error: ) print =only flush
+ (; OffendingCommand: ) print =only
+ errorinfo dup //null eq {
+ pop
+ } {
+ (;\nErrorInfo:) print
+ dup type /arraytype eq
+ { { ( ) print =only } forall }
+ { ( ) print =only }
+ ifelse
+ } ifelse
+ ( ]%%) = flush
+ }
+ { (Error: ) print ==only flush
+ ( in ) print ==only flush
+ errorinfo dup //null eq {
+ pop
+ } {
+ (\nAdditional information: ) print ==only flush
+ } ifelse
+ .printerror_long
+ }
+ ifelse
+ .clearerror flush
+ }
+ { % newerror is //false, test to see if user has set handleerror to a different
+ % routine, if so execute it, otherwise, just return. This code deals with the
+ % Genoa issue of setting /handleerror, and then calling it, without an error
+ % being set. We were erroring in this case, due to /command load failing.
+
+ //JOBSERVER {
+ /errordict .systemvar /handleerror get /.GShandleerror .systemvar ne
+ } {
+ //false
+ } ifelse
+ { /errordict .systemvar begin /handleerror load .internalstopped pop end
+ }
+ if
+ }
+ ifelse % newerror
+ end
+ flush
+ } bind def
+ /.printerror_long % long error printout,
+ % $error is on the dict stack
+ { % Push the (anonymous) stack printing procedure.
+ % <heading> <==flag> <override-name> <stackname> proc
+ {
+ currentdict exch .knownget % stackname defined in $error?
+ {
+ 4 1 roll % stack: <stack> <head> <==flag> <over>
+ /errordict .systemvar exch .knownget % overridename defined?
+ {
+ exch pop exch pop exec % call override with <stack>
+ }
+ {
+ exch print exch % print heading. stack <==flag> <stack>
+ 1 index not { () = } if
+ { 1 index { (\n ) } { ( ) } ifelse print
+ dup type /dicttype eq
+ {
+ (--dict:) print
+ dup rcheck {
+ dup length =only (/) print dup maxlength =only
+ dup wcheck not { ((ro)) print } if
+ } if
+ /gcheck where {
+ pop gcheck { ((G)) } { ((L)) } ifelse print
+ } {
+ pop
+ } ifelse (--) print
+ }
+ {
+ dup type /stringtype eq 2 index or
+ { ==only } { =only } ifelse
+ } ifelse
+ } forall
+ pop
+ }
+ ifelse % overridden
+ }
+ { pop pop pop
+ }
+ ifelse % stack known
+ }
+
+ (\nOperand stack:) OSTACKPRINT /.printostack /ostack 4 index exec
+ (\nExecution stack:) ESTACKPRINT /.printestack /estack 4 index exec
+ (\nBacktrace:) //true /.printbacktrace /backtrace 4 index exec
+ (\nDictionary stack:) //false /.printdstack /dstack 4 index exec
+ () =
+ pop % printing procedure
+
+ errorname /VMerror eq
+ { (VM status:) print mark vmstatus
+ counttomark { ( ) print counttomark -1 roll dup =only } repeat
+ cleartomark () =
+ } if
+
+ .languagelevel 2 ge
+ { (Current allocation mode is ) print
+ globalmode { (global\n) } { (local\n) } ifelse print
+ } if
+
+ .oserrno dup 0 ne
+ { (Last OS error: ) print
+ errorname /VMerror ne
+ { dup .oserrorstring { = pop } { = } ifelse }
+ { = }
+ ifelse
+ }
+ { pop
+ }
+ ifelse
+
+ position //null ne
+ { (Current file position is ) print position = }
+ if
+
+ } bind def
+% Define a procedure for clearing the error indication.
+/.clearerror
+ { $error /newerror //false put
+ $error /errorname //null put
+ $error /errorinfo //null put
+ 0 .setoserrno
+ } bind def
+
+% Define $error. This must be in local VM.
+.currentglobal //false .setglobal
+/$error 40 dict .forcedef % $error is local, systemdict is global
+ % newerror, errorname, command, errorinfo,
+ % ostack, estack, dstack, recordstacks,
+ % binary, globalmode,
+ % .inerror, .nosetlocal, position,
+ % plus extra space for badly designed error handers.
+$error begin
+ /newerror //false def
+ /recordstacks //true def
+ /binary //false def
+ /globalmode .currentglobal def
+ /.inerror //false def
+ /.nosetlocal //true def
+ /position //null def
+ /errorinfo //null def
+end
+% Define errordict similarly. It has one entry per error name,
+% plus handleerror. However, some astonishingly badly written PostScript
+% files require it to have at least one empty slot.
+/errordict ErrorNames length 3 add dict
+.forcedef % errordict is local, systemdict is global
+.setglobal % back to global VM
+% For greater Adobe compatibility, we put all non-standard errors in a
+% separate dictionary, gserrordict. It does not need to be in local VM,
+% because PostScript programs do not access it.
+% NOTE: the name gserrordict is known to the interpreter.
+/gserrordict 5 dict def
+% Register an error in errordict. We make this a procedure because we only
+% register the Level 1 errors here: the rest are registered by "feature"
+% files. However, ErrorNames contains all of the error names regardless of
+% what features are included, so we have to "know" that VMerror is the last
+% Level 1 error.
+/.registererror % <name> .registererror -
+ { errordict exch .registererror2
+ } bind def
+/.registererror2 % <dict> <name> .registererror -
+ { .currentglobal //true .setglobal % create procs in global VM
+ 3 1 roll
+ mark 1 index systemdict /.errorhandler get /exec load .packtomark cvx put
+ .setglobal
+ } bind def
+ErrorNames
+ { dup .registererror /VMerror eq {exit} if
+ } forall
+errordict begin
+% The handlers for interrupt and timeout are special; there is no
+% 'current object', so they push their own name.
+ { /interrupt /timeout }
+ { mark 1 index dup systemdict /.errorhandler get /exec load .packtomark cvx def
+ } forall
+/handleerror % this key is 'well known' and some PS may redefine it
+ { /.printerror .systemvar exec
+ } bind def
+end % errordict
+
+% Put non-standard errors in gserrordict.
+gserrordict /unknownerror errordict /unknownerror get put
+errordict /unknownerror .undef
+% Define a stable private copy of handleerror that we will always use under
+% JOBSERVER mode.
+/.GShandleerror errordict /handleerror get def
+
+% Define the [write]==[only] procedures.
+/.dict 8 dict dup
+begin def
+ /.cvp {1 index exch 1 .writecvp} bind def
+ /.p {1 index exch writestring} bind def
+ /.p1 {2 index exch writestring} bind def
+ /.p2 {3 index exch writestring} bind def
+ /.print
+ { dup type .dict exch .knownget { exec } { .cvp } ifelse
+ } bind def
+ /arraytype
+ {dup rcheck
+ {() exch dup xcheck
+ {({) .p2
+ {exch .p1
+ 1 index exch .print pop ( )} forall
+ (})}
+ {([) .p2
+ {exch .p1
+ 1 index exch .print pop ( )} forall
+ (])}
+ ifelse exch pop .p}
+ {.cvp}
+ ifelse} bind def
+ /packedarraytype /arraytype load def
+{//.dict begin .print pop end}
+ bind
+end
+
+/write==only exch def
+/write== {1 index exch write==only (\n) writestring} bind def
+/==only { (%stdout) (w) file exch write==only } bind def
+/== {==only (\n) print} bind def
+
+% Define [write]===[only], an extension that prints dictionaries
+% in readable form and doesn't truncate strings.
+/.dict /write==only load 0 get dup length 2 add dict .copydict dup
+begin def
+ /dicttype
+ { dup rcheck
+ { (<< ) .p1
+ { 2 index 3 -1 roll .print pop ( ) .p1
+ 1 index exch .print pop ( ) .p
+ }
+ forall (>>) .p
+ }
+ { .cvp
+ }
+ ifelse
+ } bind def
+ /stringtype
+ { 1 index exch 2 .writecvp
+ } bind def
+
+{//.dict begin .print pop end}
+ bind
+end
+
+/write===only exch def
+/write=== {1 index exch write===only (\n) writestring} bind def
+/===only { (%stdout) (w) file exch write===only } bind def
+/=== { ===only (\n) print } bind def
+
+% Create the initialization queue.
+
+/.delayed_init_queue 10 dict def
+
+/.schedule_init % <priority> <proc> .schedule_init -
+{
+ //.delayed_init_queue 2 index known {
+ (.delayed_init_queue priority conflict with ) print 1 index =
+ /.schedule_init cvx /configurationerror signalerror
+ } if
+ //.delayed_init_queue 3 1 roll .growput
+} bind def
+
+/.execute_scheduled_inits % - .execute_scheduled_inits -
+{
+ { 0 //null //.delayed_init_queue { % maxp {} p {}
+ 3 index 2 index lt {
+ 4 2 roll
+ } if
+ pop pop
+ } forall
+ exch //.delayed_init_queue exch undef
+ dup //null eq {
+ pop exit
+ } if
+ exec
+ } loop
+} bind def
+
+(END PROCS) VMDEBUG
+
+% Define the font directory.
+/FontDirectory //false .setglobal 100 dict //true .setglobal
+.forcedef % FontDirectory is local, systemdict is global
+
+% Define the encoding dictionary.
+/EncodingDirectory 16 dict def % enough for Level 2 + PDF standard encodings
+
+% Define .findencoding. (This is redefined in Level 2.)
+/.findencoding
+ { //EncodingDirectory exch get exec
+ } bind def
+/.defineencoding
+ { //EncodingDirectory 3 1 roll put
+ } bind def
+% If we've got the composite font extensions, define findencoding.
+% To satisfy the Genoa FTS, findencoding must be a procedure, not an operator.
+/rootfont where { pop /findencoding { .findencoding } def } if
+
+% Define .registerencoding.
+% NOTE: This procedure no longer does anything, but it must continue to
+% exist for the sake of toolbin/encs2c.ps.
+/.registerencoding { % <index> <array> .registerencoding -
+ pop pop
+} bind odef
+
+% Load StandardEncoding.
+%% Replace 1 (gs_std_e.ps)
+(gs_std_e.ps) dup runlibfile VMDEBUG
+
+% Load ISOLatin1Encoding.
+%% Replace 1 (gs_il1_e.ps)
+(gs_il1_e.ps) dup runlibfile VMDEBUG
+
+% Define stubs for the Symbol and Dingbats encodings.
+% Note that the first element of the procedure must be the file name,
+% since gs_lev2.ps extracts it to set up the Encoding resource category.
+
+ /SymbolEncoding { /SymbolEncoding .findencoding } bind def
+%% Replace 3 (gs_sym_e.ps)
+ EncodingDirectory /SymbolEncoding
+ { (gs_sym_e.ps) //systemdict begin runlibfile SymbolEncoding end }
+ bind put
+
+ /DingbatsEncoding { /DingbatsEncoding .findencoding } bind def
+%% Replace 3 (gs_dbt_e.ps)
+ EncodingDirectory /DingbatsEncoding
+ { (gs_dbt_e.ps) //systemdict begin runlibfile DingbatsEncoding end }
+ bind put
+
+(END FONTDIR/ENCS) VMDEBUG
+
+% Special handling for device parameters. Must follow definition of 'type'
+% make -dPDFA equivalent to -dPDFA=1 (backwards compatible)
+currentdict /PDFA known { PDFA type /booleantype eq { /PDFA 1 def } if } if
+
+% Construct a dictionary of all available devices.
+% These are (read-only) device prototypes that can't be
+% installed or have their parameters changed. For this reason,
+% the value in the dictionary is actually a 2-element writable array,
+% to allow us to create a default instance of the prototype on demand.
+
+ % Loop until the .getdevice gets a rangecheck.
+errordict /rangecheck 2 copy get
+errordict /rangecheck { pop stop } put % pop the command
+ 0 { {dup .getdevice exch 1 add} loop} .internalstopped pop
+ 1 add dict /devicedict 1 index def
+ begin % 2nd copy of count is on stack
+ { dup .devicename exch
+ dup wcheck { dup } { //null } ifelse 2 array astore def
+ } repeat
+ end
+put % errordict /rangecheck
+.clearerror
+/devicenames devicedict { pop } forall devicedict length packedarray def
+
+% Determine the default device.
+/defaultdevice DISPLAYING
+ { systemdict /DEVICE .knownget
+ { devicedict 1 index known not
+ { (Unknown device: ) print =
+ flush /defaultdevice cvx 1 .quit
+ }
+ if
+ }
+ { .getdefaultdevice .devicename
+ }
+ ifelse
+ }
+ { /nullpage
+ }
+ifelse
+/.defaultdevicename 1 index def
+finddevice % make a copy
+def
+devicedict /Default devicedict .defaultdevicename get put
+
+(END DEVS) VMDEBUG
+
+% Define statusdict, for the benefit of programs
+% that think they are running on a LaserWriter or similar printer.
+%% Replace 1 (gs_statd.ps)
+(gs_statd.ps) runlibfile
+
+(END STATD) VMDEBUG
+
+% Load the standard font environment.
+%% Replace 1 (gs_fonts.ps)
+(gs_fonts.ps) runlibfile
+
+(END GS_FONTS) VMDEBUG
+
+% Define the default halftone screen and BG/UCR functions now, so that
+% it will bind in the original definitions of set[color]screen.
+% We make this a procedure so we can call it again when switching devices.
+
+% Use an ordered dither for low-resolution devices.
+/.setloreshalftone { % <dpi> .setloreshalftone -
+ % The following 'ordered dither' spot function was contributed by
+ % Gregg Townsend. Thanks, Gregg!
+ 16.001 div 0 % not 16: avoids rounding problems
+ { 1 add 7.9999 mul cvi exch 1 add 7.9999 mul cvi 16 mul add <
+ 0E 8E 2E AE 06 86 26 A6 0C 8C 2C AC 04 84 24 A4
+ CE 4E EE 6E C6 46 E6 66 CC 4C EC 6C C4 44 E4 64
+ 3E BE 1E 9E 36 B6 16 96 3C BC 1C 9C 34 B4 14 94
+ FE 7E DE 5E F6 76 D6 56 FC 7C DC 5C F4 74 D4 54
+ 01 81 21 A1 09 89 29 A9 03 83 23 A3 0B 8B 2B AB
+ C1 41 E1 61 C9 49 E9 69 C3 43 E3 63 CB 4B EB 6B
+ 31 B1 11 91 39 B9 19 99 33 B3 13 93 3B BB 1B 9B
+ F1 71 D1 51 F9 79 D9 59 F3 73 D3 53 FB 7B DB 5B
+ 0D 8D 2D AD 05 85 25 A5 0F 8F 2F AF 07 87 27 A7
+ CD 4D ED 6D C5 45 E5 65 CF 4F EF 6F C7 47 E7 67
+ 3D BD 1D 9D 35 B5 15 95 3F BF 1F 9F 37 B7 17 97
+ FD 7D DD 5D F5 75 D5 55 FF 7F DF 5F F7 77 D7 57
+ 02 82 22 A2 0A 8A 2A AA 00 80 20 A0 08 88 28 A8
+ C2 42 E2 62 CA 4A EA 6A C0 40 E0 60 C8 48 E8 68
+ 32 B2 12 92 3A BA 1A 9A 30 B0 10 90 38 B8 18 98
+ F2 72 D2 52 FA 7A DA 5A F0 70 D0 50 F8 78 D8 58
+ > exch get 256 div
+ }
+ bind
+ % Use correct, per-plane screens for CMYK devices only.
+ //systemdict /setcolorscreen known processcolors 4 eq and
+ { 3 copy 6 copy //setcolorscreen }
+ { //setscreen }
+ ifelse
+} bind def
+/.setloresscreen { % <dpi> .setloresscreen -
+ .setloreshalftone
+ 0 array cvx settransfer % Genoa CET won't accept a packed array!
+ /setstrokeadjust where { pop //true setstrokeadjust } if
+} bind def
+% Use a 45-degree spot screen for high-resolution devices.
+% The PS3 CET insists that the screen be an array and not a packedarray (!).
+currentpacking //false setpacking
+/.linescreen
+% The following screen algorithm is used by permission of the author.
+ { ((C) 1989 Berthold K.P. Horn) pop
+ 1 add 180 mul cos 1 0.08 add mul exch 2 add 180 mul cos
+ 1 0.08 sub mul add 2 div
+ }
+bind readonly def
+setpacking
+/.sethireshalftone { % <dpi> .sethireshalftone <doscreen>
+ % According to information published by Hewlett-Packard,
+ % they use a 60 line screen on 300 DPI printers and
+ % an 85 line screen on 600 DPI printers.
+ % However, we use a 106 line screen, which produces smoother-
+ % looking shades but fewer of them (32 vs. 50).
+ % 46 was suggested as a good frequency value for printers
+ % between 200 and 400 DPI, so we use it for lower resolutions.
+ % Imagesetters need even higher frequency screens.
+ //systemdict /DITHERPPI known
+ { DITHERPPI
+ }
+ { dup cvi 100 idiv 15 .min
+ {//null 46 46 60 60 60 106 106 106 106 133 133 133 133 133 150}
+ exch get
+ }
+ ifelse
+ 1 index 4.01 div .min % at least a 4x4 cell
+ 45
+ //.linescreen
+ % Determine whether we have lots of process colors.
+ % If so, don't bother with color screening or gamma correction.
+ % Also don't do gamma correction on very high-resolution devices.
+ % (This should depend on dot gain, not resolution, but we don't
+ % currently have a way to determine this.) Ignore missing components
+ % (*Values = 1).
+ currentdevice mark
+ /RedValues 0 /GreenValues 0 /BlueValues 0 /GrayValues 0
+ .dicttomark .getdeviceparams
+ counttomark 2 idiv 1 sub
+ { exch pop dup 1 le
+ { pop }
+ { exch dup 1 le
+ { pop }
+ { .min }
+ ifelse
+ }
+ ifelse
+ }
+ repeat
+ exch pop exch pop 32 lt 4 index 800 lt and 5 1 roll
+ % Stack: doscreen dpi freq angle proc
+ % Ghostscript currently doesn't use correct, per-plane halftones
+ % unless setcolorscreen has been executed. Since these are
+ % computationally much more expensive than binary halftones,
+ % we check to make sure they are really warranted, i.e., we have
+ % a high-resolution CMYK device (i.e., not a display) with
+ % fewer than 5 bits per plane (i.e., not a true-color device).
+ 4 -1 roll 150 ge
+ { /setcolorscreen where
+ { pop //systemdict /COLORSCREEN known
+ { COLORSCREEN }
+ { 3 index }
+ ifelse
+ dup //false ne
+ { 4 1 roll 3 copy 6 copy 13 -1 roll
+ % For really high-quality screening on printers, we need to
+ % give each plane its own screen angle. Unfortunately,
+ % this currently has very large space and time costs.
+ //true eq % true => different angles,
+ % 0 => same angles
+ { { 45 90 15 75 } { 3 1 roll exch pop 12 3 roll } forall
+ }
+ if //setcolorscreen
+ }
+ { pop //setscreen % false => single binary screen
+ }
+ ifelse
+ }
+ { //setscreen % setcolorscreen not known
+ }
+ ifelse
+ }
+ { //setscreen % not high resolution
+ }
+ ifelse
+} bind def
+/.sethiresscreen { % <dpi> .sethiresscreen
+ .sethireshalftone % pushes true if a screen halftone used
+ % Stack: doscree
+ {
+ % Set the transfer function to lighten up the grays.
+ % Parameter values closer to 1 are better for devices with
+ % less dot spreading; lower values are better with more spreading.
+ % The value 0.8 is a compromise that will probably please no one!
+ %
+ % Because of a bug in FrameMaker, we have to accept operands
+ % outside the valid range of [0..1].
+ {
+ dup dup 0.0 gt exch 1.0 lt and
+ {
+ 0.8 exp
+ }
+ if
+ }
+ }
+ {
+ % Set the transfer function to the identity.
+ 0 array cvx % Genoa CET won't accept a packed array!
+ }
+ ifelse
+ settransfer
+ /setstrokeadjust where
+ { pop //false setstrokeadjust }
+ if
+
+ % Increase fill adjustment so that we effectively use Adobe's
+ % any-part-of-pixel rule.
+ 0.5 .setfilladjust
+} bind def
+% Set the default screen and BG/UCR.
+/.setdefaultbgucr {
+ systemdict /setblackgeneration known {
+ { pop 0 } dup setblackgeneration setundercolorremoval
+ } if
+} bind def
+/.useloresscreen { % - .useloresscreen <bool>
+ % Compute min(|dpi x|,|dpi y|) as the definition of the resolution.
+ 72 72 matrix defaultmatrix dtransform abs exch abs .min
+ dup 150 lt //systemdict /DITHERPPI known not and
+} bind def
+
+% The following implementation uses LL2 extensions, but only in stopped
+% contexts so that with LL1, the .set??reshalftone will be used.
+%
+% - .getdefaulthalftone <halftonedict> true if default found
+% false
+/.getdefaulthalftone {
+ % try the device to see if it has a default halftone
+ { currentdevice /HalftoneDefault gsgetdeviceprop } .internalstopped
+ { pop pop //false } % no device property
+ { dup type /dicttype eq { //true } { pop //false } ifelse }
+ ifelse
+ % stack: <halftonedict> true if default found
+ % false not found
+ dup not
+ { % device did not provide a default, try Resource
+ pop { /Default /Halftone /findresource .systemvar exec } .internalstopped
+ { pop pop //false } { //true } ifelse
+ }
+ if
+} bind def
+
+/.setdefaulthalftone {
+ .getdefaulthalftone
+ { sethalftone }
+ { % default not found
+ .useloresscreen { .setloreshalftone } { .sethireshalftone pop } ifelse
+ }
+ ifelse
+} bind def
+
+/.setdefaultscreen {
+ .useloresscreen { .setloresscreen } { .sethiresscreen } ifelse
+ .setdefaultbgucr
+} bind def
+
+% Rendering intent mapping for setcolorrendering1 and PDF interpreter
+/.renderingintentdict mark
+ /Perceptual 0
+ /RelativeColorimetric 1
+ /Saturation 2
+ /AbsoluteColorimetric 3
+.dicttomark readonly def
+
+% Load basic color support
+%% Replace 1 (gs_cspace.ps)
+(gs_cspace.ps) runlibfile
+
+(END BASIC COLOR) VMDEBUG
+
+% Load image support
+%% Replace 1 (gs_img.ps)
+(gs_img.ps) runlibfile
+
+(END IMAGE) VMDEBUG
+
+% Auxiliary procedures for generating file name templates.
+
+% Convert a path name into a string suitable for filenameforall
+% For example: (a\\b*?c) to (a\\\\b\\*\\?c)
+/.makepathtemplate { % str1 -- str2
+ dup length dup add string 0 % result string up to twice the size
+ 0 1 4 index length 1 sub {
+ 3 index exch get
+ dup 92 eq { % \ -> \\
+ 2 index 2 index 92
+ put
+ exch 1 add exch
+ }
+ if
+ dup 42 eq { % * -> \*
+ 2 index 2 index 92
+ put
+ exch 1 add exch
+ }
+ if
+ dup 63 eq { % ? -> \?
+ 2 index 2 index 92
+ put
+ exch 1 add exch
+ }
+ if
+ 2 index 2 index 3 -1 roll put 1 add
+ } for
+ 0 exch getinterval exch pop
+} bind def
+
+% false <dir_list> <template> .generate_dir_list_templates_with_length <t1> ... <tN>
+% true <dir_list> <template> .generate_dir_list_templates_with_length <t1> <l1> ... <tN> <ln>
+%
+% Generates various valid templates combining a directory list with a given template.
+% With 'true' operand it also returns lengths of directory pathes.
+%
+% Example1 (DOS, Windows) :
+% false [(/gs/lib) (/gs/Resource/) (\gs8.00\Resource)] (*/*) -->
+% (/gs/lib/*/*) (/gs/Resource/*/*) (\\gs8.00\\Resource/*/*)
+%
+% Example2 (OpenVMS) :
+% false [(gs:[lib]) (gs:[Resource]) (gs800:[Resource)] (*]*) -->
+% ((gs:[lib.*]*) [gs:[Resource.*]*) ([gs800:[Resource.*]*)
+%
+/.generate_dir_list_templates_with_length
+{ % [dl] (templ)
+ % We need to convert paths into templates,
+ % because it can include '\' on DOS.
+ % In same time, the <template> must not convert,
+ % because it is already a template.
+ % Besides that, we cannot combine template using .file_name_combine,
+ % because template syntax breaks the platform path syntax.
+ % To resolve this, we first convert the <template> into
+ % a fake filename, and combine it with path,
+ % obtaining a correct separator. Then we replace
+ % the fake file name with the given template.
+ %
+
+ % Create the fake file name :
+ dup dup length string copy % b [dl] (templ) (ffn)
+ (*) 0 get (?) 0 get (\\) 0 get (x) 0 get 0 0 % b [dl] (templ) (ffn) * ? \ x i j
+ { 1 index 7 index length ge { exit } if
+ 6 index 2 index get % b [dl] (templ) (ffn) * ? \ x i j c
+ dup 7 index eq % b [dl] (templ) (ffn) * ? \ x i j c bool
+ 1 index 7 index eq or { % *?
+ pop 2 index
+ } if % b [dl] (templ) (ffn) * ? \ x i j C
+ dup 5 index eq { % \
+ 3 2 roll 1 add 3 1 roll % b [dl] (templ) (ffn) * ? \ x i' j C
+ 2 index 8 index length ge { pop exit } if
+ pop 6 index 2 index get % b [dl] (templ) (ffn) * ? \ x i' j C'
+ } if
+ 7 index 2 index 3 2 roll put % b [dl] (templ) (ffn) * ? \ x i' j
+ 1 add exch 1 add exch % b [dl] (templ) (ffn) * ? \ x i'' j'
+ } loop % b [dl] (templ) (ffn) * ? \ x i j
+ 6 1 roll pop % b [dl] (templ) (ffn) j * ? \ x
+ exch pop exch pop exch pop exch % b [dl] (templ) (ffn) x j
+ { dup 3 index length ge { exit } if
+ 3 copy exch put
+ 1 add
+ } loop
+ pop pop % b [dl] (templ) (ffn)
+
+ % An internal procedure :
+ { % {} b [dl] (templ) (ffn) (dffn)
+ dup length
+ 2 index length sub % drop "ffn", remaining "ldffn" = length of the "directory" part
+ exch % {} b [dl] (templ) (ffn) ldffn (dffn)
+ .makepathtemplate % {} b [dl] (templ) (ffn) ldffn (Dffn)
+ dup % {} b [dl] (templ) (ffn) ldffn (Dffn) (Dffn)
+ 4 index length dup % {} b [dl] (templ) (ffn) ldffn (Dffn) (Dffn) templL templL
+ 2 index length % {} b [dl] (templ) (ffn) ldffn (Dffn) (Dffn) templL templL DffnL
+ exch sub % {} b [dl] (templ) (ffn) ldffn (Dffn) (Dffn) templL i
+ exch getinterval % {} b [dl] (templ) (ffn) ldffn (Dffn) (suffix)
+ 4 index exch copy pop % {} b [dl] (templ) (ffn) ldffn (dt)
+ 5 index {
+ exch % {} b [dl] (templ) (ffn) (dt) ldffn
+ 7 2 roll % (dt) ldffn {} b [dl] (templ) (ffn)
+ } {
+ exch pop % {} b [dl] (templ) (ffn) (dt)
+ 6 1 roll % (dt) {} b [dl] (templ) (ffn)
+ } ifelse
+ }
+ 5 1 roll % {} b [dl] (templ) (ffn)
+
+ % Generate templates :
+ dup .file_name_is_absolute {
+ dup % {} b [dl] (templ) (ffn) (ffn)
+ 5 index exec % (t1) {} b [dl] (templ) (ffn)
+ } {
+ 2 index { % ... {} b [dl] (templ) (ffn) (d)
+ 1 index % ... {} b [dl] (templ) (ffn) (d) (ffn)
+ //false .file_name_combine { % ... {} b [dl] (templ) (ffn) (dffn)
+ 5 index exec % ... (t1) ?l1 {} b [dl] (templ) (ffn)
+ } { % ... {} b [dl] (templ) (ffn) (d) (ffn)
+ pop pop % ... {} b [dl] (templ) (ffn)
+ } ifelse
+ } forall
+ } ifelse % (t1) ?l1 (t2) ?l2 ... (tN) ?ln {} b [dl] (templ) (ffn)
+ pop pop pop pop pop % (t1) ?l1 (t2) ?l2 ... (tN) ?ln
+} bind def
+
+% <dir_list> <template> .generate_dir_list_templates <t1> ... <tN>
+%
+% Generates various valid templates combining a directory list with a given template.
+% It's the 'false' case of the function above.
+%
+/.generate_dir_list_templates
+{ //false 3 1 roll //.generate_dir_list_templates_with_length exec
+} bind def
+
+% Load the initialization files for optional features.
+%% Replace 4 INITFILES
+systemdict /INITFILES known
+ { INITFILES { <00> search { exch pop dup runlibfile VMDEBUG }{ dup runlibfile VMDEBUG exit } ifelse } .bind loop
+ }
+if
+
+% If Level 2 (or higher) functionality is implemented, enable it now.
+/.setlanguagelevel where {
+ pop 2 .setlanguagelevel
+ % If the resource machinery is loaded, fix up some things now.
+ /.fixresources where { pop .fixresources } if
+} if
+/ll3dict where {
+ pop 3 .setlanguagelevel
+} if
+
+(END INITFILES) VMDEBUG
+
+% Create a null font. This is the initial font.
+8 dict dup begin
+ /FontMatrix [ 1 0 0 1 0 0 ] readonly def
+ /FontType 3 def
+ /FontName () def
+ /Encoding StandardEncoding def
+ /FontBBox { 0 0 0 0 } readonly def % executable is bogus, but customary ...
+ /BuildChar { pop pop 0 0 setcharwidth } bind def
+ /PaintType 0 def % shouldn't be needed!
+end
+/NullFont exch definefont setfont
+
+% Define NullFont as the font.
+/NullFont currentfont def
+
+% Load initial fonts from FONTPATH directories, Fontmap file,
+% and/or .getccfont as appropriate.
+.loadinitialfonts
+
+% Remove NullFont from FontDirectory, so it can't be accessed by mistake.
+/undefinefont where {
+ pop /NullFont undefinefont
+} {
+ FontDirectory /NullFont .undef
+} ifelse
+
+(END FONTS) VMDEBUG
+
+% Restore the real definition of runlibfile.
+/runlibfile /.runlibfile load def
+currentdict /.runlibfile .undef
+
+% Bind all the operators defined as procedures.
+/.bindoperators % binds operators in currentdict
+ { % Temporarily disable the typecheck error.
+ errordict /typecheck 2 copy get
+ errordict /typecheck { pop } put % pop the command
+ currentdict
+ { dup type /operatortype eq
+ { % This might be a real operator, so bind might cause a typecheck,
+ % but we've made the error a no-op temporarily.
+ .bind % do a real bind even if NOBIND is set
+ }
+ if pop pop
+ } forall
+ put
+ } def
+NOBIND DELAYBIND or not { .bindoperators } if
+
+% Establish a default environment.
+
+defaultdevice
+% The following line used to skip setting of page size and resolution if
+% NODISPLAY was selected. We think this was only to save time and memory,
+% and it is a bad idea because it prevents setting the resolution in this
+% situation, which pstoedit (among other programs) relies on.
+%DISPLAYING not { setdevice (%END DISPLAYING) .skipeof } if
+
+% If the paper size is not specifed and the device defaults to
+% letter or A4 paper, select the DEFAULTPAPERSIZE.
+systemdict /DEFAULTPAPERSIZE known not {
+ % Use .defaultpapersize if it returns a known paper size
+ .defaultpapersize {
+ statusdict /.pagetypeprocs get 1 index known {
+ systemdict exch /DEFAULTPAPERSIZE exch put
+ } {
+ QUIET {
+ pop
+ } {
+ (Unknown .defaultpapersize: ) print ==only (.) =
+ } ifelse
+ } ifelse
+ } if
+} if
+systemdict /DEFAULTPAPERSIZE known
+systemdict /PAPERSIZE known not and
+systemdict /DEVICEWIDTH known not and
+systemdict /DEVICEHEIGHT known not and
+systemdict /DEVICEWIDTHPOINTS known not and
+systemdict /DEVICEHEIGHTPOINTS known not and
+ {
+ defaultdevice mark /PageSize //null .dicttomark .getdeviceparams
+ .dicttomark /PageSize get
+ dup 0 get 0.5 add cvi 612 eq 1 index 1 get 0.5 add cvi 792 eq and
+ 1 index 0 get 0.5 add cvi 595 eq 2 index 1 get 0.5 add cvi 842 eq and
+ or exch pop
+ {
+ % the default paper size was letter, so replace it with DEFAULTPAPERSIZE
+ /PAPERSIZE DEFAULTPAPERSIZE def
+ } if
+ }
+if
+
+systemdict /DEVICEWIDTH known
+systemdict /DEVICEHEIGHT known or
+systemdict /DEVICEWIDTHPOINTS known or
+systemdict /DEVICEHEIGHTPOINTS known or
+systemdict /DEVICEXRESOLUTION known or
+systemdict /DEVICEYRESOLUTION known or
+systemdict /PAPERSIZE known or
+not { (%END DEVICE) .skipeof } if
+% Let DEVICE{WIDTH,HEIGHT}[POINTS] override PAPERSIZE.
+systemdict /PAPERSIZE known
+systemdict /DEVICEWIDTH known not and
+systemdict /DEVICEHEIGHT known not and
+systemdict /DEVICEWIDTHPOINTS known not and
+systemdict /DEVICEHEIGHTPOINTS known not and {
+ % Convert the paper size to device dimensions.
+ statusdict /.pagetypeprocs get PAPERSIZE .knownget {
+ dup 0 get /DEVICEWIDTHPOINTS exch def
+ 1 get /DEVICEHEIGHTPOINTS exch def
+ } {
+ (Unknown paper size: ) print PAPERSIZE ==only (.) =
+ } ifelse
+} if
+% Adjust the device parameters per the command line.
+% It is possible to specify resolution, pixel size, and page size;
+% since any two of these determine the third, conflicts are possible.
+% We simply pass them to .setdeviceparams and let it sort things out.
+ mark /HWResolution //null /HWSize //null /PageSize //null .dicttomark
+ .getdeviceparams .dicttomark begin
+ mark
+ % Check for resolution.
+ /DEVICEXRESOLUTION where dup
+ { exch pop HWResolution 0 DEVICEXRESOLUTION put }
+ if
+ /DEVICEYRESOLUTION where dup
+ { exch pop HWResolution 1 DEVICEYRESOLUTION put }
+ if
+ or { /HWResolution HWResolution } if
+ % Check for device sizes specified in pixels.
+ /DEVICEWIDTH where dup
+ { exch pop HWSize 0 DEVICEWIDTH put }
+ if
+ /DEVICEHEIGHT where dup
+ { exch pop HWSize 1 DEVICEHEIGHT put }
+ if
+ or { /HWSize HWSize } if
+ % Check for device sizes specified in points.
+ /DEVICEWIDTHPOINTS where dup
+ { exch pop PageSize 0 DEVICEWIDTHPOINTS put }
+ if
+ /DEVICEHEIGHTPOINTS where dup
+ { exch pop PageSize 1 DEVICEHEIGHTPOINTS put }
+ if
+ or { /PageSize PageSize } if
+ % Check whether any parameters were set.
+ dup mark eq { pop defaultdevice } { defaultdevice putdeviceprops } ifelse
+ end
+%END DEVICE
+% Set any device properties defined on the command line.
+% If BufferSpace is defined but not MaxBitmap, set MaxBitmap to BufferSpace.
+systemdict /BufferSpace known
+systemdict /MaxBitmap known not and
+ { systemdict /MaxBitmap BufferSpace put
+ } if
+dup getdeviceprops
+counttomark 2 idiv
+ { systemdict 2 index known
+ { pop dup load counttomark 2 roll }
+ { pop pop }
+ ifelse
+ } repeat
+counttomark dup 0 ne
+ { 2 add -1 roll putdeviceprops }
+ { pop pop }
+ifelse
+% If the initial device parameters are invalid, the setdevice may fail.
+% Trap this and produce a reasonable error message.
+{ setdevice } % does an erasepage
+INITDEBUG { exec //false } { .internalstopped } ifelse {
+ (**** Unable to open the initial device, quitting.) = flush 1 .quit
+} if
+
+% If the media size is fixed, update the current page device dictionary.
+FIXEDMEDIA
+dup { pop systemdict /.currentpagedevice known } if
+dup { pop .currentpagedevice exch pop } if
+not { (%END MEDIA) .skipeof } if
+currentpagedevice dup length dict .copydict
+dup /Policies
+ % Stack: <pagedevice> <pagedevice> /Policies
+1 index /InputAttributes
+2 copy get dup length dict .copydict
+ % Stack: <pagedevice> <pagedevice> /Policies <pagedevice>
+ % /InputAttributes <inputattrs'>
+dup 0 2 copy get dup length dict .copydict
+ % Stack: <pagedevice> <pagedevice> /Policies <pagedevice>
+ % /InputAttributes <inputattrs'> <inputattrs'> 0 <attrs0'>
+dup /PageSize 7 index /PageSize get
+put % PageSize in 0
+put % 0 in InputAttributes
+put % InputAttributes in pagedevice
+% Also change the page size policy so we don't get an error.
+ % Stack: <pagedevice> <pagedevice> /Policies
+2 copy get dup length dict .copydict
+ % Stack: <pagedevice> <pagedevice> /Policies <policies'>
+dup /PageSize 7 put % PageSize in Policies
+put % Policies in pagedevice
+.setpagedevice
+%END MEDIA
+
+% Set up the interpreter context version of -dUSeCIEColor option
+% so that .getuseciecolor has the correct value (see gs_setpd.ps)
+/setpagedevice where {
+ pop systemdict /UseCIEColor known {
+ mark /UseCIEColor UseCIEColor /..StartupGlobal //true .dicttomark setpagedevice
+ } if
+} if
+
+%END DISPLAYING
+
+(END DEVICE) VMDEBUG
+
+% Establish a default upper limit in the character cache,
+% namely, enough room for a 18-point character at the resolution
+% of the default device, or for a character consuming 1% of the
+% maximum cache size, whichever is larger.
+mark
+ % Compute limit based on character size.
+ 18 dup dtransform
+ exch abs cvi 31 add 32 idiv 4 mul % X raster
+ exch abs cvi mul % Y
+ % Compute limit based on allocated space.
+ cachestatus pop pop pop pop pop exch pop 0.01 mul cvi
+ .max dup 10 idiv exch
+setcacheparams
+% Conditionally disable the character cache.
+NOCACHE { 0 setcachelimit } if
+
+(END CONFIG) VMDEBUG
+
+% Initialize graphics.
+
+.setdefaultscreen
+initgraphics
+
+% The interpreter relies on there being at least 2 entries
+% on the graphics stack. Establish the second one now.
+gsave
+
+% Define some control sequences as no-ops.
+% This is a hack to get around problems
+% in some common PostScript-generating applications.
+<04> cvn JOBSERVER {
+ { { clear cleardictstack //false 0 .startnewjob } 2 .stop } bind
+ } {
+ { }
+ } ifelse def
+<1b> cvn { % UEL is <esc>%-12345X and acts the same as ^D
+ currentfile (%-12345X) .peekstring pop (%-12345X) eq <04> cvn load if
+} bind def
+<1b45> cvn { } def % PJL reset prologue (ESC E)
+<1b451b> cvn <1b> cvn load def % PJL reset epilogue (ESC E + UEL)
+(\001M) cvn % TBCP initiator
+ { currentfile /TBCPDecode filter cvx exec
+ } bind def
+/@PJL % H-P job control
+ {
+ % Windows 2000 driver includes PJL into %%BeginFeature block.
+ % Identify this from the pattern on the stack: countdictstack lucas mark
+ % and fail the feature request.
+
+ count 3 ge {
+ dup mark eq {
+ 2 index countdictstack eq {
+ 1 index /lucas where { /lucas get eq } { pop //false } ifelse {
+ stop
+ } if
+ } if
+ } if
+ } if
+ currentfile //=string readline pop pop
+ } bind def
+
+% Install the EPS handler if needed
+systemdict /EPSBoundingBoxInit known { EPSBoundingBoxInit } if
+
+% If we want a "safer" system, disable some obvious ways to cause havoc.
+.currentglobal //true .setglobal
+/SAFETY 2 dict
+ dup /safe //false put
+ dup /tempfiles 10 dict readonly put
+readonly def
+.setglobal
+
+/.locksafe_userparams {
+ SAFETY /safe get not {
+ <<
+ /PermitFileReading [
+ currentuserparams /PermitFileReading get aload pop
+ /FONTPATH .systemvar (*) .generate_dir_list_templates
+ % Library files :
+ /LIBPATH .systemvar (*) .generate_dir_list_templates
+ % Resource files on OpenVMS requires a separate template (gs:[dir.*]*)
+ % because the (gs:[dir]*) doesn't cover them.
+ /LIBPATH .systemvar (*) .file_name_separator (*)
+ concatstrings concatstrings .generate_dir_list_templates
+ .languagelevel 2 ge {
+ % Default resources :
+ [ currentsystemparams /GenericResourceDir get] (*) .generate_dir_list_templates
+ % Default resources (OpenVMS, see comment above.) :
+ [ currentsystemparams /GenericResourceDir get] (*) .file_name_separator (*)
+ concatstrings concatstrings .generate_dir_list_templates
+ } if
+ ]
+ /LockFilePermissions //true
+ >> setuserparams
+ }
+ if
+} bind def
+
+/.locksafe {
+ .locksafe_userparams
+ systemdict /getenv {pop //false} .forceput
+ % setpagedevice has the side effect of clearing the page, but
+ % we will just document that. Using setpagedevice keeps the device
+ % properties and pagedevice .LockSafetyParams in agreement even
+ % after a restore that changes the value to false.
+ currentglobal currentpagedevice gcheck setglobal % use correct VM space
+ << /.LockSafetyParams //true >> setpagedevice
+ setglobal
+ //SAFETY /safe //true .forceput % overrides readonly
+} .bind executeonly odef
+
+%% This is only used during startup. Its required so that
+%% we can detect in setpagdevice that we are in fact in startup
+%% and allocate a *global* instead of local VM. We need it to be
+%% global to satisfy Display PostScript (see start of /setpagdevice
+%% in gs_setpd.ps)
+%%
+/.locksafeglobal {
+ .locksafe_userparams
+ systemdict /getenv {pop //false} put
+ % setpagedevice has the side effect of clearing the page, but
+ % we will just document that. Using setpagedevice keeps the device
+ % properties and pagedevice .LockSafetyParams in agreement even
+ % after a restore that changes the value to false.
+ currentglobal currentpagedevice gcheck setglobal % use correct VM space
+ << /.LockSafetyParams //true
+ /..StartupGlobal //true
+ >> setpagedevice
+ setglobal
+ //SAFETY /safe //true .forceput % overrides readonly
+} .bind executeonly odef
+
+/.setsafe
+{
+ SAFETY /safe get not {
+ <<
+ /PermitFileReading [ ]
+ /PermitFileWriting [ ]
+ /PermitFileControl [ ]
+ >> setuserparams
+ }
+ if
+ .locksafe
+} .bind executeonly odef
+
+%% See /.locksafeglobal above.
+%%
+/.setsafeglobal {
+ SAFETY /safe get not {
+ <<
+ /PermitFileReading [ ]
+ /PermitFileWriting [ ]
+ /PermitFileControl [ ]
+ >> setuserparams
+ }
+ if
+ .locksafeglobal
+} bind executeonly odef
+
+/deletefile {
+ dup { deletefile } stopped {
+ pop //deletefile $error /errorname get signalerror
+ } {
+ % deletefile succeeded. Remove from tempfile list if present
+ //SAFETY /tempfiles get exch cvn 2 copy known {
+ .forceundef
+ } {
+ pop pop
+ }
+ ifelse
+ }
+ ifelse
+} .bind executeonly odef
+
+% If a file is opened with .tempfile with SAFER not (yet) set,
+% the file can be deleted later, even if SAFER is set.
+/.tempfile {
+ .tempfile % filename file
+ //SAFETY /tempfiles get 2 .argindex //true .forceput
+} .bind executeonly odef
+
+% If we are running in SAFER mode, lock things down
+SAFER { .setsafeglobal } if
+
+% If we delayed binding, make it possible to do it later.
+/.bindnow {
+ currentuserparams /IdiomRecognition .knownget {
+ 1 dict dup /IdiomRecognition //false put setuserparams
+ } if
+ //systemdict begin .bindoperators end
+ % Temporarily disable the typecheck error.
+ errordict /typecheck 2 copy get
+ errordict /typecheck { pop } put % pop the command
+ 0 1 .delaycount 1 sub { .delaybind exch get .bind pop } for
+ //systemdict /.delaybind {} .forceput % reclaim the space
+ //systemdict /.bindnow .forceundef % ditto
+ put
+ //systemdict /.forcecopynew .forceundef % remove temptation
+ //systemdict /.forcedef .forceundef % ditto
+ //systemdict /.forceput .forceundef % ditto
+ //systemdict /.forceundef .forceundef % ditto
+ currentuserparams /IdiomRecognition known {
+ 1 dict dup /IdiomRecognition 4 -1 roll put setuserparams
+ } if
+} .bind odef
+
+% Turn off array packing, since some PostScript code assumes that
+% procedures are writable.
+//false setpacking
+
+(END INIT) VMDEBUG
+
+/.currentuserparams where {
+ pop
+ % Remove real user params from psuserparams.
+ mark .currentuserparams counttomark 2 idiv {
+ pop psuserparams exch undef
+ } repeat pop
+ % Update the copy of the user parameters.
+ mark .currentuserparams counttomark 2 idiv {
+ userparams 3 1 roll .forceput % userparams is read-only
+ } repeat pop
+ % Turn on idiom recognition, if available.
+ currentuserparams /IdiomRecognition known {
+ /IdiomRecognition //true .definepsuserparam
+ } if
+ psuserparams readonly pop
+ systemdict /.definepsuserparam undef
+ % Save a copy of userparams for use with save/restore
+ % (and, if implemented, context switching).
+ .currentglobal //false .setglobal
+ mark userparams { } forall .dicttomark readonly
+ /userparams exch .forcedef % systemdict is read-only
+ .setglobal
+} if
+/.currentsystemparams where {
+ pop
+ % Remove real system params from pssystemparams.
+ mark .currentsystemparams counttomark 2 idiv {
+ pop pssystemparams exch .forceundef
+ } repeat pop
+} if
+
+% Set up AlignToPixels :
+
+/AlignToPixels where {
+ mark /AlignToPixels 2 index /AlignToPixels get .dicttomark setuserparams
+ /AlignToPixels undef
+} if
+
+% Set up GridFitTT :
+
+/GridFitTT where {
+ mark /GridFitTT 2 index /GridFitTT get .dicttomark setuserparams
+ /GridFitTT undef
+} if
+
+% Establish local VM as the default.
+//false /setglobal where { pop setglobal } { .setglobal } ifelse
+$error /.nosetlocal //false put
+
+(END GLOBAL) VMDEBUG
+
+%% .savelocalstate is part of Display PostScript (if included). Part of the function of
+%% the .savelocalstate routine is to store the 'initial saved gstate' (savedinitialgstate)
+%% in systemdict. The code in dps1.c, gstate_check_space, disallows writing or creating
+%% gstates in global VM in certain conditions. If we execute setpagedevice before we
+%% reach this point, we must ensure that we do so using /..StartupGlobal so that
+%% the dictionary is defined in global VM, because the gstate contains a pointer to the
+%% device dictionary, and if that is allocated in local VM we will fail the gstate check.
+/.savelocalstate where {
+ % If we might create new contexts, save away copies of all dictionaries
+ % referenced from systemdict that are stored in local VM,
+ % and also save a copy of the initial gstate.
+ pop .savelocalstate
+} {
+ % If we're *not* running in a multi-context system and FAKEFONTS is
+ % defined, add the fake fonts to LocalFontDirectory.
+ .definefakefonts % current VM is local
+} ifelse
+
+% Execute scheduled inits :
+//.execute_scheduled_inits exec
+currentdict /.execute_scheduled_inits undef
+currentdict /.delayed_init_queue undef
+
+% Make global and local FontDirectory read-only.
+FontDirectory readonly pop
+/GlobalFontDirectory where { pop GlobalFontDirectory readonly pop } if
+
+% Remove systemdict entries for things that have been bound in where used
+% and that shouldn't be accessible by name, and close up systemdict.
+currentdict /filterdict .undef
+currentdict /.cidfonttypes .undef
+currentdict /.colorrenderingtypes .undef
+currentdict /.formtypes .undef
+currentdict /.halftonetypes .undef
+currentdict /.imagetypes .undef
+currentdict /.imagemasktypes .undef
+currentdict /.patterntypes .undef
+currentdict /.shadingtypes .undef
+currentdict /.wheredict .undef
+currentdict /.renderingintentdict .undef
+end
+
+% Clean up VM, and enable GC. Use .vmreclaim to force the GC.
+/vmreclaim where
+ { pop NOGC not { 2 .vmreclaim 0 vmreclaim } if
+ } if
+DELAYBIND not {
+ systemdict /.forcecopynew .undef % remove temptation
+ systemdict /.forcedef .undef % ditto
+ systemdict /.forceput .undef % ditto
+ systemdict /.forceundef .undef % ditto
+} if
+% Move superexec to internaldict if superexec is defined.
+currentdict /superexec .knownget {
+ 1183615869 internaldict /superexec 3 -1 roll put
+ currentdict /superexec .undef
+} if
+WRITESYSTEMDICT not { systemdict readonly pop } if
+(END GC) VMDEBUG
+
+% The Adobe AGM_Core used by Illustrator 9 has some code that breaks
+% if the 'product' is not (Adobe PostScript Parser). A bug has been
+% submitted to Adobe since this also fails with Acrobat Distiller.
+% As a temporary work around, the following HACK will work for
+% devices without spot color support. Once Ghostscript can
+% support DeviceN and spot color separations this will need to
+% be 'true' in some cases.
+userdict /AGM_preserve_spots //false put
+
+% The interpreter will run the initial procedure (start).
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_l2img.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,183 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Emulate the Level 2 dictionary-based image operator in Level 1,
+% except for Interpolate (ignored) and MultipleDataSources = true;
+% also, we require that the data source be either a procedure of a
+% particular form or a stream, not a string or a general procedure.
+
+% pdf2ps copies the portion of this file from %BEGIN to %END if Level 1
+% compatible output is requested.
+
+/currentglobal where
+ { pop currentglobal { setglobal } //true setglobal }
+ { { } }
+ifelse
+
+/packedarray where
+ { pop }
+ { /packedarray { array astore readonly } bind def }
+ifelse
+
+%BEGIN
+
+11 dict /.csncompdict 1 index def begin
+ /DeviceGray { 1 /setgray load } bind def
+ /DeviceRGB { 3 /setrgbcolor load } bind def
+ /DeviceCMYK { 4 /setcmykcolor load } bind def
+ /Indexed
+ { dup 1 index 1 get //.csncompdict exch get exec
+ % Stack: [/Indexed base hival map] ncomp basesetcolor
+ 3 -1 roll 3 get mark 3 1 roll
+ % Stack: ncomp -mark- basesetcolor map
+ dup type /stringtype eq
+ { { -
+ { exch round cvi get 255 div
+ }
+ -
+ { exch round cvi 3 mul 2 copy 2 copy get 255 div
+ 3 1 roll 1 add get 255 div
+ 4 2 roll 2 add get 255 div
+ }
+ { exch round cvi 4 mul 2 copy 2 copy 2 copy get 255 div
+ 3 1 roll 1 add get 255 div
+ 4 2 roll 2 add get 255 div
+ 5 3 roll 3 add get 255 div
+ }
+ }
+ 4 index get aload pop counttomark -1 roll
+ }
+ { /exec load 3 -1 roll
+ % Stack: -mark- mapproc --exec-- basesetcolor
+ }
+ ifelse .packtomark cvx
+ exch pop 1 exch
+ } bind def
+ /Separation
+ { dup 2 index //.csncompdict exch get exec
+ % Stack: [/Separation name alt xform] ncomp altsetcolor
+ 3 -1 roll 3 get /exec load 3 -1 roll 3 array astore readonly cvx
+ exch pop 1 exch
+ } bind def
+ % Substitute device spaces for CIE spaces.
+ /CIEBasedA /DeviceGray load def
+ /CIEBasedABC /DeviceRGB load def
+ /CIEBasedDEF /DeviceRGB load def
+ /CIEBasedDEFG /DeviceCMYK load def
+end
+
+/.packtomark { counttomark packedarray exch pop } bind def
+
+/.csinextbits % - .csinextbits <bits>
+ % Uses b, nnb, i, row, mask, BitsPerComponent;
+ % sets b, nnb, i.
+ { /nnb nnb BitsPerComponent add
+ { dup 0 le { exit } if
+ /b b 8 bitshift row i get add def
+ /i i 1 add def 8 sub
+ }
+ loop def
+ b nnb bitshift mask and
+ } bind def
+
+% Note that the ColorSpace key must be present in the image dictionary.
+/.colorspaceimage % <imagedict> .colorspaceimage -
+ { save exch
+ dup length 15 add dict begin { cvlit def } forall
+ ColorSpace dup dup type /nametype ne { 0 get } if
+ .csncompdict exch get exec
+ /setpixelcolor exch def /ncomp exch def pop
+ /row ncomp BitsPerComponent mul Width mul 7 add 8 idiv string def
+ /mask 1 BitsPerComponent bitshift 1 sub def
+ /nextbits BitsPerComponent 8 eq
+ { { row i get /i i 1 add def } }
+ { /.csinextbits load }
+ ifelse def
+ /nextpixel mark 0 2 ncomp 1 sub 2 mul
+ { /nextbits cvx exch
+ Decode exch 2 getinterval
+ dup aload pop exch sub
+ dup mask eq { pop } { mask div /mul load 3 -1 roll } ifelse
+ 0 get dup 0 eq { pop } { /sub load 3 -1 roll } ifelse
+ }
+ for
+ /setpixelcolor load dup type /operatortype ne { /exec load } if
+ .packtomark cvx def
+ /readrow
+ /DataSource load dup type
+ dup /arraytype eq exch /packedarraytype eq or
+ { % Must be { <file> <string> ... }
+ aload length 1 add array /pop load exch astore
+ dup 1 row put cvx
+ }
+ { pop
+ % Adobe requires readstring to signal an error if given
+ % an empty string. Work around this nonsense here.
+ row length 0 eq
+ { { } }
+ { { DataSource row readstring pop pop } }
+ ifelse
+ }
+ ifelse def
+ ImageMatrix matrix invertmatrix concat
+ /imat matrix def
+ 0 1 Height 1 sub
+ { imat 5 3 -1 roll neg put
+ readrow
+ /b 0 def /nnb 0 def /i 0 def
+ 0 1 Width 1 sub
+ { imat 4 3 -1 roll neg put nextpixel
+ 1 1 //true imat {<80>} imagemask
+ }
+ for
+ }
+ for
+ end restore
+ } bind def
+
+%END
+exec
+currentfile closefile
+
+% Patch for testing.
+/.cincompdict 3 dict begin
+ 1 { {0 1} {/DeviceGray} } def
+ 3 { {0 1 0 1 0 1} {/DeviceRGB} } def
+ 4 { {0 1 0 1 0 1 0 1} {/DeviceCMYK} } def
+currentdict end def
+/.imagekeys [
+ /Decode /DataSource /ImageMatrix /BitsPerComponent /Height /Width
+] def
+/colorimage % <width> <height> <bits/comp> <matrix>
+ % <datasrc> false <ncomp> colorimage -
+ { 1 index { /colorimage .systemvar /rangecheck signalerror } if exch pop
+ //.cincompdict exch get exec
+ 7 dict begin /ColorSpace exch cvlit def
+ .imagekeys { exch cvlit def } forall
+ currentdict end .colorspaceimage
+ } bind odef
+/image
+ { dup type /dicttype ne
+ { 7 dict begin /ColorSpace /DeviceGray def [0 1]
+ .imagekeys { exch cvlit def } forall
+ currentdict end
+ }
+ { dup length 1 add dict .copydict dup /ColorSpace currentcolorspace put
+ }
+ ifelse
+ .colorspaceimage
+ } bind odef
+
+exec
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_lev2.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1198 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for Level 2 functions.
+% When this is run, systemdict is still writable,
+% but (almost) everything defined here goes into level2dict.
+
+level2dict begin
+
+% ------ System and user parameters ------ %
+
+% User parameters must obey save/restore, and must also be maintained
+% per-context. We implement the former, and some of the latter, here
+% with PostScript code. NOTE: our implementation assumes that user
+% parameters change only as a result of setuserparams -- that there are
+% no user parameters that are ever changed dynamically by the interpreter
+% (although the interpreter may adjust the value presented to setuserparams)
+%
+% There are two types of user parameters: those which are actually
+% maintained in the interpreter, and those which exist only at the
+% PostScript level. We maintain the current state of both types in
+% a read-only local dictionary named userparams, defined in systemdict.
+% In a multi-context system, each context has its own copy of this
+% dictionary. In addition, there is a constant dictionary named
+% psuserparams where each key is the name of a user parameter that exists
+% only in PostScript and the value is a procedure to check that the value
+% is legal: setuserparams uses this for checking the values.
+% setuserparams updates userparams explicitly, in addition to setting
+% any user parameters in the interpreter; thus we can use userparams
+% to reset those parameters after a restore or a context switch.
+% NOTE: the name userparams is known to the interpreter, and in fact
+% the interpreter creates the userparams dictionary.
+
+% Check parameters that are managed at the PostScript level.
+/.checkparamtype { % <newvalue> <type> .checkparamtype <bool>
+ exch type eq
+} .bind def
+/.checksetparams { % <newdict> <opname> <checkdict>
+ % .checksetparams <newdict>
+ 2 .argindex {
+ % Stack: newdict opname checkdict key newvalue
+ 3 copy 3 1 roll .knownget {
+ exec not {
+ pop pop pop load /typecheck signalerror
+ } if
+ dup type /stringtype eq {
+ dup rcheck not {
+ pop pop pop load /invalidaccess signalerror
+ } if
+ } if
+ } {
+ pop
+ } ifelse pop pop
+ } forall pop pop
+} .bind def % not odef, shouldn't reset stacks
+
+% currentuser/systemparams creates and returns a dictionary in the
+% current VM. The easiest way to make this work is to copy any composite
+% PostScript-level parameters to global VM. Currently we have strings
+% as well as arrays. For arrays, we also need to copy any contents that
+% are in VM. Also copying string parameters insures the contents won't
+% be changed. Also be careful to preserve 'executable' state.
+/.copyparam { % <value> .copyparam <value'>
+ dup type /arraytype eq {
+ .currentglobal //true .setglobal exch
+ dup wcheck exch dup xcheck exch % original attributes
+ dup length array exch dup { % stack: destination_array original_array original_array
+ dup type /arraytype eq {
+ dup 2 index ne { % avoid recursion
+ .copyparam % recurse to handle composite array elements
+ } {
+ % this array self referenced, do it again (yuk!)
+ pop 1 index % get copy of destination array
+ } ifelse
+ } {
+ dup type /stringtype eq {
+ .copyparam
+ } if
+ }
+ ifelse 3 1 roll % keep arrays on top
+ } forall pop astore
+ exch { cvx } if % set executable state
+ exch not { readonly } if % set readonly attribute as original
+ exch .setglobal
+ } if
+ dup type /stringtype eq {
+ dup wcheck exch % save attr for setting readonly
+ .currentglobal //true .setglobal
+ 1 index length string exch .setglobal
+ copy exch not { readonly } if
+ } if
+} .bind def
+
+% Some user parameters are managed entirely at the PostScript level.
+% We take care of that here.
+systemdict begin
+/psuserparams 48 dict def
+/getuserparam { % <name> getuserparam <value>
+ /userparams .systemvar 1 .argindex get exch pop
+} odef
+% Fill in userparams (created by the interpreter) with current values.
+mark .currentuserparams
+counttomark 2 idiv {
+ userparams 3 1 roll put
+} repeat pop
+/.definepsuserparam { % <name> <value> .definepsuserparam -
+ psuserparams 3 copy pop
+ type cvlit /.checkparamtype cvx 2 packedarray cvx put
+ userparams 3 1 roll put
+} .bind def
+end
+/currentuserparams { % - currentuserparams <dict>
+ /userparams .systemvar dup length dict .copydict
+} odef
+% We break out setuserparams into a separate procedure so that setvmxxx
+% can use it without affecting the command in case of an error.
+/.setuserparams2 {
+ % Check that we will be able to set the PostScript-level
+ % user parameters.
+ /setuserparams /psuserparams .systemvar .checksetparams
+ % Set the C-level user params. If this succeeds, we know that
+ % the password check succeeded.
+ dup .setuserparams
+ % Now set the PostScript-level params.
+ % The interpreter may have adjusted the values of some of the
+ % parameters, so we have to read them back.
+ dup {
+ /userparams .systemvar 2 index known {
+ psuserparams 2 index known not {
+ pop dup .getuserparam
+ } if
+ .copyparam
+ % special protection for the security related parameters
+ [ /PermitFileReading /PermitFileWriting /PermitFileControl ]
+ { 2 index eq { % force all strings to readonly but make sure the
+ % array is in the correct VM space (local/global).
+ currentglobal exch dup gcheck setglobal
+ dup length array exch { readonly exch } forall astore
+ exch setglobal
+ } if
+ } forall
+ % protect top level of parameters that we copied
+ dup type dup /arraytype eq exch /stringtype eq or { readonly } if
+ /userparams .systemvar 3 1 roll .forceput % userparams is read-only
+ } {
+ pop pop
+ } ifelse
+ } forall
+ % A context switch might have occurred during the above loop,
+ % causing the interpreter-level parameters to be reset.
+ % Set them again to the new values. From here on, we are safe,
+ % since a context switch will consult userparams.
+ .setuserparams
+} .bind def
+/setuserparams { % <dict> setuserparams -
+ .setuserparams2
+} .bind odef
+% Initialize user parameters managed here.
+/JobName () .definepsuserparam
+
+% Restore must restore the user parameters.
+% (Since userparams is in local VM, save takes care of saving them.)
+/restore { % <save> restore -
+ //restore /userparams .systemvar .setuserparams
+} .bind odef
+
+% The pssystemparams dictionary holds some system parameters that
+% are managed entirely at the PostScript level.
+systemdict begin
+currentdict /pssystemparams known not {
+ /pssystemparams 40 dict readonly def
+} if
+/getsystemparam { % <name> getsystemparam <value>
+ //pssystemparams 1 .argindex .knownget { exch pop } { .getsystemparam } ifelse
+} odef
+end
+/currentsystemparams { % - currentsystemparams <dict>
+ mark .currentsystemparams //pssystemparams { } forall .dicttomark
+} odef
+/setsystemparams { % <dict> setsystemparams -
+ % Check that we will be able to set the PostScript-level
+ % system parameters.
+ dup pop % check # of args
+ /SAFETY .systemvar /safe get {
+ % SAFER mode disallows some changes
+ [ /GenericResourceDir /FontResourceDir /GenericResourcePathSep ] {
+ 2 copy .knownget {
+ exch //pssystemparams exch .knownget {
+ ne { /setsystemparams /invalidaccess signalerror } if
+ } {
+ pop
+ } ifelse
+ } {
+ pop
+ } ifelse
+ } forall
+ } if
+ /setsystemparams //pssystemparams mark exch {
+ type cvlit /.checkparamtype cvx 2 packedarray cvx
+ } forall .dicttomark .checksetparams
+ % Set the C-level system params. If this succeeds, we know that
+ % the password check succeeded.
+ dup .setsystemparams
+ % Now set the PostScript-level params. We must copy local strings
+ % into global VM.
+ dup
+ { //pssystemparams 2 index known
+ { % Stack: key newvalue
+ .copyparam
+ % protect top level parameters that we copied
+ dup type dup /arraytype eq exch /stringtype eq or { readonly } if
+ //pssystemparams 3 1 roll .forceput % pssystemparams is read-only
+ }
+ { pop pop
+ }
+ ifelse
+ }
+ forall pop
+} .bind odef
+
+% Initialize the passwords.
+% NOTE: the names StartJobPassword and SystemParamsPassword are known to
+% the interpreter, and must be bound to noaccess strings.
+% The length of these strings must be max_password (iutil2.h) + 1.
+/StartJobPassword 65 string noaccess def
+/SystemParamsPassword 65 string noaccess def
+
+% Redefine cache parameter setting to interact properly with userparams.
+/setcachelimit {
+ { mark /MaxFontItem 2 .argindex .dicttomark setuserparams pop }
+ stopped
+ { /setcachelimit .systemvar $error /errorname get signalerror
+ } if
+} .bind odef
+/setcacheparams {
+ % The MaxFontCache parameter is a system parameter, which we might
+ % not be able to set. Fortunately, this doesn't matter, because
+ % system parameters don't have to be synchronized between this code
+ % and the VM.
+ counttomark 1 add copy setcacheparams
+ currentcacheparams % mark size lower upper
+ 3 -1 roll pop
+ /MinFontCompress 3 1 roll
+ /MaxFontItem exch
+ .dicttomark { setuserparams cleartomark } stopped {
+ /setcacheparams .systemvar $error /errorname get signalerror
+ } if
+} .bind odef
+
+% Add bogus user and system parameters to satisfy badly written PostScript
+% programs that incorrectly assume the existence of all the parameters
+% listed in Appendix C of the Red Book. Note that some of these may become
+% real parameters later: code near the end of gs_init.ps takes care of
+% removing any such parameters from ps{user,system}params.
+
+% psuserparams
+ /MaxFormItem 100000 .definepsuserparam
+ /MaxPatternItem 20000 .definepsuserparam
+ /MaxScreenItem 48000 .definepsuserparam
+ /MaxUPathItem 0 .definepsuserparam
+
+% File Access Permission parameters
+ .currentglobal //true .setglobal
+ /.checkFilePermitparams {
+ type /arraytype eq {
+ currentuserparams /LockFilePermissions get {
+ 5 { pop } repeat /setuserparams /invalidaccess signalerror
+ }{
+ % in addition to validating the value, ensure the value is read/only
+ dup { readonly exch } forall
+ .currentglobal exch dup gcheck .setglobal length array exch .setglobal
+ astore readonly
+ }
+ ifelse
+ } {
+ 5 { pop } repeat /setuserparams /typecheck signalerror
+ }
+ ifelse
+ //true
+ } .bind def
+% Initialize the File Permission access control to wide open
+% These will only be accessed via current/set userparams.
+% Values are a string containing multiple nul terminated path strings
+ /PermitFileReading dup [ (*) ] .definepsuserparam
+ psuserparams exch /.checkFilePermitparams load put
+ /PermitFileWriting dup [ (*) ] .definepsuserparam
+ psuserparams exch /.checkFilePermitparams load put
+ /PermitFileControl dup [ (*) ] .definepsuserparam
+ psuserparams exch /.checkFilePermitparams load put
+ .setglobal
+
+pssystemparams begin
+ /CurDisplayList 0 .forcedef
+ /CurFormCache 0 .forcedef
+ /CurInputDevice () .forcedef
+ /CurOutlineCache 0 .forcedef
+ /CurOutputDevice () .forcedef
+ /CurPatternCache 0 .forcedef
+ /CurUPathCache 0 .forcedef
+ /CurScreenStorage 0 .forcedef
+ /CurSourceList 0 .forcedef
+ /DoPrintErrors //false .forcedef
+ /JobTimeout 0 .forcedef
+ /LicenseID (LN-001) .forcedef % bogus
+ /MaxDisplayList 140000 .forcedef
+ /MaxFormCache 100000 .forcedef
+ /MaxImageBuffer 524288 .forcedef
+ /MaxOutlineCache 65000 .forcedef
+ /MaxPatternCache 100000 .forcedef
+ /MaxUPathCache 300000 .forcedef
+ /MaxScreenStorage 84000 .forcedef
+ /MaxSourceList 25000 .forcedef
+ /PrinterName product .forcedef
+ /RamSize 4194304 .forcedef
+ /WaitTimeout 40 .forcedef
+end
+
+% Define the procedures for handling comment scanning. The names
+% %ProcessComment and %ProcessDSCComment are known to the interpreter.
+% These procedures take the file and comment string and file as operands.
+/.checkprocesscomment {
+ dup //null eq {
+ pop //true
+ } {
+ dup xcheck {
+ type dup /arraytype eq exch /packedarraytype eq or
+ } {
+ pop //false
+ } ifelse
+ } ifelse
+} .bind def
+/ProcessComment //null .definepsuserparam
+psuserparams /ProcessComment {.checkprocesscomment} put
+(%ProcessComment) cvn {
+ /ProcessComment getuserparam
+ dup //null eq { pop pop pop } { exec } ifelse
+} bind def
+/ProcessDSCComment //null .definepsuserparam
+psuserparams /ProcessDSCComment {.checkprocesscomment} put
+/.loadingfont //false def
+(%ProcessDSCComment) cvn {
+ /ProcessDSCComment getuserparam
+ dup //null eq .loadingfont or { pop pop pop } { exec } ifelse
+} bind def
+
+% ------ Miscellaneous ------ %
+
+(<<) cvn % - << -mark-
+ /mark load def
+% (>> is defined primitively.)
+/languagelevel 2 def
+% When running in Level 2 mode, this interpreter is supposed to be
+% compatible with Adobe version 2017.
+/version (2017) readonly def
+
+% If binary tokens are supported by this interpreter,
+% set an appropriate default binary object format.
+/setobjectformat where
+ { pop
+ /RealFormat getsystemparam (IEEE) eq { 1 } { 3 } ifelse
+ /ByteOrder getsystemparam { 1 add } if
+ setobjectformat
+ } if
+
+% Aldus Freehand versions 2.x check for the presence of the
+% setcolor operator, and if it is missing, substitute a procedure.
+% Unfortunately, the procedure takes different parameters from
+% the operator. As a result, files produced by this application
+% cause an error if the setcolor operator is actually defined
+% and 'bind' is ever used. Aldus fixed this bug in Freehand 3.0,
+% but there are a lot of files created by the older versions
+% still floating around. Therefore, at Adobe's suggestion,
+% we implement the following dreadful hack in the 'where' operator:
+% If the key is /setcolor, and
+% there is a dictionary named FreeHandDict, and
+% currentdict is that dictionary,
+% then "where" consults only that dictionary and not any other
+% dictionaries on the dictionary stack.
+.wheredict /setcolor {
+ /FreeHandDict .where {
+ /FreeHandDict get currentdict eq {
+ pop currentdict /setcolor known { currentdict //true } { //false } ifelse
+ } {
+ .where
+ } ifelse
+ } {
+ .where
+ } ifelse
+} bind put
+
+% ------ Virtual memory ------ %
+
+/currentglobal % - currentglobal <bool>
+ /currentshared load def
+/gcheck % <obj> gcheck <bool>
+ /scheck load def
+/setglobal % <bool> setglobal -
+ /setshared load def
+% We can make the global dictionaries very small, because they auto-expand.
+/globaldict currentdict /shareddict .knownget not { 4 dict } if def
+/GlobalFontDirectory SharedFontDirectory def
+
+% VMReclaim and VMThreshold are user parameters.
+/setvmthreshold { % <int> setvmthreshold -
+ mark /VMThreshold 2 .argindex .dicttomark .setuserparams2 pop
+} odef
+/vmreclaim { % <int> vmreclaim -
+ dup 0 gt {
+ dup 2 le 1 index type /integertype eq and {
+ pop % ignore user requests for vmreclaim
+ % (reclaim will still happen controlled by vmthreshold)
+ }
+ { .vmreclaim } % let internal operator handle error conditions
+ ifelse
+ } {
+ % VMReclaim userparam controls enable/disable GC
+ mark /VMReclaim 2 index .dicttomark .setuserparams2 pop
+ } ifelse
+} odef
+-1 setvmthreshold
+
+% ------ IODevices ------ %
+
+/.getdevparams where {
+ pop /currentdevparams { % <iodevice> currentdevparams <dict>
+ .getdevparams .dicttomark
+ } odef
+} if
+/.putdevparams where {
+ pop /setdevparams { % <iodevice> <dict> setdevparams -
+ dup type /dicttype ne { /setdevparams .systemvar /typecheck signalerror } if
+ mark 1 index { } forall counttomark 2 add index
+ .putdevparams pop pop
+ } odef
+} if
+
+% ------ Job control ------ %
+
+serverdict begin
+
+% We could protect the job information better, but we aren't attempting
+% (currently) to protect ourselves against maliciousness.
+
+/.jobsave //null def % top-level save object
+/.jobsavelevel 0 def % save depth of job (0 if .jobsave is null,
+ % 1 otherwise)
+/.adminjob //true def % status of current unencapsulated job
+
+end % serverdict
+
+% Because there may be objects on the e-stack created since the job save,
+% we have to clear the e-stack before doing the end-of-job restore.
+% We do this by executing a 2 .stop, which is caught by the 2 .stopped
+% in .runexec; we leave on the o-stack a procedure to execute aftewards.
+%
+%**************** The definition of startjob is not complete yet, since
+% it doesn't reset stdin/stdout.
+/.startnewjob { % <exit_bool> <password_level>
+ % .startnewjob -
+ serverdict /.jobsave get dup //null eq { pop } { restore } ifelse
+ exch {
+ % Unencapsulated job
+ serverdict /.jobsave //null put
+ serverdict /.jobsavelevel 0 put
+ serverdict /.adminjob 3 -1 roll 1 gt put
+ } {
+ % Encapsulated job
+ pop
+ serverdict /.jobsave save put
+ serverdict /.jobsavelevel 1 put
+ .userdict /quit { stop } .bind put % CET 28-10 requires a procedure
+ } ifelse
+ % Reset the interpreter state.
+ clear cleardictstack
+ initgraphics
+ //false setglobal
+} bind def
+/.startjob { % <exit_bool> <password> <finish_proc>
+ % .startjob <ok_bool>
+ vmstatus pop pop serverdict /.jobsavelevel get eq
+ 2 .argindex .checkpassword 0 gt and {
+ exch .checkpassword exch count 3 roll count 3 sub { pop } repeat
+ cleardictstack
+ % Reset the e-stack back to the 2 .stopped in .runexec,
+ % passing the finish_proc to be executed afterwards.
+ 2 .stop
+ } { % Password check failed
+ pop pop pop //false
+ } ifelse
+} odef
+/startjob { % <exit_bool> <password> startjob <ok_bool>
+ % This is a hack. We really need some way to indicate explicitly
+ % to the interpreter that we are under control of a job server.
+ 1 .argindex type /booleantype ne {
+ /startjob .systemvar /typecheck signalerror
+ } if
+ { .startnewjob //true } .startjob
+} odef
+
+% The procedure to undo the job encapsulation
+/.endjob {
+ clear cleardictstack
+ serverdict /.jobsave get dup //null eq { pop } { restore } ifelse
+ serverdict /.jobsave //null put
+ 2 .vmreclaim % recover local and global VM
+} odef
+
+systemdict begin
+/quit { % - quit -
+ //systemdict begin serverdict /.jobsave get //null eq
+ { end //quit }
+ { /quit .systemvar /invalidaccess /signalerror load end exec }
+ ifelse
+} bind odef
+end
+
+% We would like to define exitserver as a procedure, using the code
+% that the Red Book says is equivalent to it. However, since startjob
+% resets the exec stack, we can't do this, because control would never
+% proceed past the call on startjob if the exitserver is successful.
+% Instead, we need to construct exitserver out of pieces of startjob.
+
+serverdict begin
+
+/exitserver { % <password> exitserver -
+ //true exch { .startnewjob } .startjob not {
+ /exitserver /invalidaccess signalerror
+ } if
+} bind def
+
+end % serverdict
+
+% ------ Compatibility ------ %
+
+% In Level 2 mode, the following replace the definitions that gs_statd.ps
+% installs in statusdict and serverdict.
+% Note that statusdict must be allocated in local VM.
+% We don't bother with many of these yet.
+
+/.dict1 { exch mark 3 1 roll .dicttomark } bind def
+
+currentglobal //false setglobal 25 dict exch setglobal begin
+currentsystemparams
+
+% The following do not depend on the presence of setpagedevice.
+/buildtime 1 index /BuildTime get def
+% Also define /buildtime in systemdict because Adobe does so and some fonts use it as ID
+systemdict /buildtime dup load put
+/byteorder 1 index /ByteOrder get def
+/checkpassword { .checkpassword 0 gt } bind def
+dup /DoStartPage known
+ { /dostartpage { /DoStartPage getsystemparam } bind def
+ /setdostartpage { /DoStartPage .dict1 setsystemparams } bind def
+ } if
+dup /StartupMode known
+ { /dosysstart { /StartupMode getsystemparam 0 ne } bind def
+ /setdosysstart { { 1 } { 0 } ifelse /StartupMode .dict1 setsystemparams } bind def
+ } if
+%****** Setting jobname is supposed to set userparams.JobName, too.
+/jobname { /JobName getuserparam } bind def
+/jobtimeout { /JobTimeout getuserparam } bind def
+/ramsize { /RamSize getsystemparam } bind def
+/realformat 1 index /RealFormat get def
+dup /PrinterName known
+ { /setprintername { /PrinterName .dict1 setsystemparams } bind def
+ } if
+/printername
+ { currentsystemparams /PrinterName .knownget not { () } if exch copy
+ } bind def
+currentuserparams /WaitTimeout known
+ { /waittimeout { /WaitTimeout getuserparam } bind def
+ } if
+
+% The following do require setpagedevice.
+/.setpagedevice where { pop } { (%END PAGEDEVICE) .skipeof } ifelse
+/defaulttimeouts
+ { currentsystemparams dup
+ /JobTimeout .knownget not { 0 } if
+ exch /WaitTimeout .knownget not { 0 } if
+ currentpagedevice /ManualFeedTimeout .knownget not { 0 } if
+ } bind def
+/margins
+ { currentpagedevice /Margins .knownget { exch } { [0 0] } ifelse
+ } bind def
+/pagemargin
+ { currentpagedevice /PageOffset .knownget { 0 get } { 0 } ifelse
+ } bind def
+/pageparams
+ { currentpagedevice
+ dup /Orientation .knownget { 1 and ORIENT1 { 1 xor } if } { 0 } ifelse exch
+ dup /PageSize get aload pop 3 index 0 ne { exch } if 3 2 roll
+ /PageOffset .knownget { 0 get } { 0 } ifelse 4 -1 roll
+ } bind def
+/setdefaulttimeouts
+ { exch mark /ManualFeedTimeout 3 -1 roll
+ /Policies mark /ManualFeedTimeout 1 .dicttomark
+ .dicttomark setpagedevice
+ /WaitTimeout exch mark /JobTimeout 5 2 roll .dicttomark setsystemparams
+ } bind def
+/.setpagesize { 2 array astore /PageSize .dict1 setpagedevice } bind def
+/setduplexmode { /Duplex .dict1 setpagedevice } bind def
+/setmargins
+ { exch 2 array astore /Margins .dict1 setpagedevice
+ } bind def
+/setpagemargin { 0 2 array astore /PageOffset .dict1 setpagedevice } bind def
+/setpageparams
+ { mark /PageSize 6 -2 roll
+ 4 index 1 and ORIENT1 { 1 } { 0 } ifelse ne { exch } if 2 array astore
+ /Orientation 5 -1 roll ORIENT1 { 1 xor } if
+ /PageOffset counttomark 2 add -1 roll 0 2 array astore
+ .dicttomark setpagedevice
+ } bind def
+/setresolution
+ { dup 2 array astore /HWResolution .dict1 setpagedevice
+ } bind def
+%END PAGEDEVICE
+
+% The following are not implemented yet.
+%manualfeed
+%manualfeedtimeout
+%pagecount
+%pagestackorder
+%setpagestackorder
+
+% -------- ICC manager -------- %
+% All color management is going
+% through ICC flow. We need
+% to have the default device
+% spaces gray, RGB and CMYK
+% defined by ICC profiles
+
+//systemdict /ICCProfilesDir .knownget {
+ % Set the directory sepcified by the command line option
+ mark exch /ICCProfilesDir exch .dicttomark .setuserparams2
+} {
+ % First see if the current value is valid so we don't have to guess
+ mark .currentuserparams .dicttomark /ICCProfilesDir get
+ (default_gray.icc) concatstrings {status} .internalstopped
+ {pop //false} if
+ {
+ pop pop pop pop % current value was OK. Just clean up stack
+ } {
+ % Search for valid (iccprofiles) directory as a sibling to (Resource)
+ % and set it as a default if found.
+ LIBPATH {
+ (Resource) search {
+ exch pop exch pop (iccprofiles) concatstrings
+ .file_name_separator concatstrings
+ dup (default_gray.icc) concatstrings status {
+ pop pop pop pop
+ mark exch /ICCProfilesDir exch .dicttomark .setuserparams2
+ exit
+ } {
+ pop
+ } ifelse
+ } {
+ pop
+ } ifelse
+ } forall
+ } ifelse % if currentuserparams ICCProfilesDir
+} ifelse % ICCProfilesDir set in systemdict (command line option)
+
+mark % collect dict key value pairs for anything set in systemdict (command line options)
+[ /DefaultRGBProfile /DefaultGrayProfile /DefaultCMYKProfile /DeviceNProfile
+ /NamedProfile /SourceObjectICC /OverrideICC
+]
+{ dup //systemdict exch .knownget not {
+ pop % discard keys not in systemdict
+ } if
+} forall
+.dicttomark .setuserparams2
+
+pop % currentsystemparams
+
+% Flag the current dictionary so it will be swapped when we
+% change language levels. (See zmisc2.c for more information.)
+/statusdict currentdict def
+
+currentdict end
+/statusdict exch .forcedef % statusdict is local, systemdict is global
+
+% The following compatibility operators are in systemdict. They are
+% defined here, rather than in gs_init.ps, because they require the
+% resource machinery.
+
+/devforall { % <proc> <scratch> devforall -
+ exch {
+ 1 index currentdevparams
+ /Type .knownget { /FileSystem eq } { //false } ifelse
+ { exec } { pop pop } ifelse
+ } /exec load 3 packedarray cvx exch
+ (*) 3 1 roll /IODevice resourceforall
+} odef
+/devstatus { % <(%disk*%)> devstatus <searchable> <writable>
+ % <hasNames> <mounted> <removable> <searchOrder>
+ % <freePages> <size> true
+ % <string> devstatus false
+ dup length 5 ge {
+ dup 0 5 getinterval (%disk) eq {
+ dup /IODevice resourcestatus {
+ pop pop dup currentdevparams
+ dup /Searchable get
+ exch dup /Writeable get
+ exch dup /HasNames get
+ exch dup /Mounted get
+ exch dup /Removable get
+ exch dup /SearchOrder get
+ exch dup /Free get
+ exch /LogicalSize get
+ 9 -1 roll pop //true
+ } {
+ pop //false
+ } ifelse
+ } {
+ pop //false
+ } ifelse
+ } {
+ pop //false
+ } ifelse
+} odef
+
+% ------ Color spaces ------ %
+% gs_res.ps uses these entries in colorspacedict
+% to populate the ColorSpaceFamily resource, so we need
+% to add the supported spaces.
+%
+systemdict /colorspacedict get begin
+/CIEBasedA [] def
+/CIEBasedABC [] def
+/DevicePixel [] def
+/Indexed [] def
+/Pattern [] def
+/Separation [] def
+end
+
+% ------ CIE color rendering ------ %
+
+% Define findcolorrendering and a default ColorRendering ProcSet.
+
+/findcolorrendering { % <intentname> findcolorrendering
+ % <crdname> <found>
+ % Adobe interpreters report /findcolorrendering (literal name), not the
+ % operator itself, if an error occurs in findcolorrendering.
+ /findcolorrendering {
+ /ColorRendering /ProcSet findresource
+ 1 .argindex dup type /nametype eq { .namestring } if (.) concatstrings
+ 1 index /GetPageDeviceName get exec dup type /nametype eq { .namestring } if (.) concatstrings
+ 2 index /GetHalftoneName get exec dup type /nametype eq { .namestring } if
+ concatstrings concatstrings cvn % stack: intentname procset crdname
+ dup /ColorRendering resourcestatus {
+ pop pop exch pop exch pop //true
+ } {
+ pop /GetSubstituteCRD get exec //false
+ } ifelse
+ } .errorexec
+} odef
+
+5 dict dup begin
+
+/GetPageDeviceName { % - GetPageDeviceName <name>
+ currentpagedevice dup /PageDeviceName .knownget {
+ exch pop dup //null eq { pop /none } if
+ } {
+ pop /none
+ } ifelse
+} bind def
+
+/GetHalftoneName { % - GetHalftoneName <name>
+ currenthalftone /HalftoneName .knownget not { /none } if
+} bind def
+
+/GetSubstituteCRD { % <intentname> GetSubstituteCRD <crdname>
+ pop /DefaultColorRendering
+} bind def
+
+end
+% The resource machinery hasn't been activated, so just save the ProcSet
+% and let .fixresources finish the installation process.
+/ColorRendering exch def
+
+% Define setcolorrendering.
+
+/.colorrenderingtypes 5 dict def
+
+/setcolorrendering { % <crd> setcolorrendering -
+ dup /ColorRenderingType get
+ dup type /integertype ne {
+ /setcolorrendering .systemvar /typecheck signalerror
+ } if
+ //.colorrenderingtypes exch .knownget {
+ exec
+ } {
+ /setcolorrendering .systemvar /rangecheck signalerror
+ } ifelse
+} odef
+
+/.setcolorrendering1 where { pop } { (%END CRD) .skipeof } ifelse
+
+.colorrenderingtypes 1 {
+ % Adobe ProcSet "Adobe_AGM_Core 2.0 0" places an /Intent key into CRD's
+ dup /Intent .knownget {
+ //.renderingintentdict exch .knownget { .setrenderingintent } if
+ } if
+ dup .buildcolorrendering1 .setcolorrendering1
+} .bind put
+
+% Note: the value 101 in the next line must be the same as the value of
+% GX_DEVICE_CRD1_TYPE in gscrdp.h.
+.colorrenderingtypes 101 {
+ dup .builddevicecolorrendering1 .setdevicecolorrendering1
+} .bind put
+
+% sRGB output CRD, D65 white point
+mark
+/ColorRenderingType 1
+/RangePQR [ -0.5 2 -0.5 2 -0.5 2 ] readonly
+
+% Bradford Cone Space
+/MatrixPQR [ 0.8951 -0.7502 0.0389
+ 0.2664 1.7135 -0.0685
+ -0.1614 0.0367 1.0296] readonly
+
+/MatrixLMN [ 3.240449 -0.969265 0.055643
+ -1.537136 1.876011 -0.204026
+ -0.498531 0.041556 1.057229 ] readonly
+
+% Inverse sRGB gamma transform
+/EncodeABC [ { dup 0.00304 le
+ { 12.92321 mul }
+ { 1 2.4 div exp 1.055 mul 0.055 sub }
+ ifelse
+ } bind dup dup
+ ] readonly
+
+/WhitePoint [ 0.9505 1 1.0890 ] readonly % D65
+/BlackPoint [ 0 0 0 ] readonly
+
+% VonKries-like transform in Bradford Cone Space
+ /TransformPQR
+ % The implementations have been moved to C for performance.
+ [ { .TransformPQR_scale_WB0 } bind
+ { .TransformPQR_scale_WB1 } bind
+ { .TransformPQR_scale_WB2 } bind
+ ] readonly
+.dicttomark setcolorrendering
+
+%END CRD
+
+% Initialize a CIEBased color space for sRGB.
+/CIEsRGB [ /CIEBasedABC
+ mark
+ /DecodeLMN [ {
+ dup 0.03928 le { 12.92321 div } { 0.055 add 1.055 div 2.4 exp } ifelse
+ } bind dup dup ] readonly
+ /MatrixLMN [
+ 0.412457 0.212673 0.019334
+ 0.357576 0.715152 0.119192
+ 0.180437 0.072175 0.950301
+ ] readonly
+ /WhitePoint [0.9505 1.0 1.0890] readonly
+ .dicttomark readonly
+] readonly def
+
+% Special type to install
+% sRGB ICC profile color space
+/CIEsRGBICC [ /ICCBased
+ mark
+ /N 3
+ /DataSource (srgb)
+ /Alternate [/DeviceRGB]
+ /Name (srgb)
+ .dicttomark
+] def
+
+% Special type to install
+% sGray ICC profile color space
+/CIEsGRAYICC [ /ICCBased
+ mark
+ /N 1
+ /DataSource (sgray)
+ /Alternate [/DeviceGray]
+ /Name (sgray)
+ .dicttomark
+] def
+
+% ------ Painting ------ %
+
+%% We don't want to do any high level forms stuff if the source
+%% is PDF because :
+%% 1) Transparent forms are handled separately and we don't want to ge confused
+%% 2) PDF forms are too llikely to trip over the limitations in our support
+%% 3) Its highly unusual to find a PDF file which uses forms sensibly.
+%%
+%% So we have a special PDF version of execform which doesn't do high level forms.
+
+/.PDFexecform {
+ % This is a separate operator so that the stacks will be restored
+ % properly if an error occurs.
+ dup /Matrix get concat
+ dup /BBox get aload pop
+ exch 3 index sub exch 2 index sub rectclip
+ dup /PaintProc get
+ 1 index /Implementation known not {
+ 1 index dup /Implementation //null .forceput readonly pop
+ } if
+ exec
+}.bind odef
+
+/PDFexecform {
+ gsave {
+ .PDFexecform
+ } stopped grestore {stop} if
+} odef
+
+% A straightforward definition of execform that doesn't actually
+% do any caching.
+/.execform1 {
+ % This is a separate operator so that the stacks will be restored
+ % properly if an error occurs.
+ %% High level forms need the CTM before the Form Matrix is applied
+ /UNROLLFORMS where {/UNROLLFORMS get}{false}ifelse not
+ {matrix currentmatrix exch} if
+ dup /Matrix get concat
+ dup /BBox get aload pop
+ exch 3 index sub exch 2 index sub rectclip
+ dup /PaintProc get
+ 1 index /Implementation known not {
+ 1 index dup /Implementation //null .forceput readonly pop
+ } if
+ /UNROLLFORMS where {/UNROLLFORMS get}{false}ifelse not
+ %% [CTM] <<Form>> PaintProc .beginform -
+ {
+ %% First,, check to see if we have no /Implementation already defined (see above)
+ 1 index /Implementation get //null eq
+ {
+ %% We don't, so copy the form dictionary
+ 1 index 4 1 roll
+ %% tell devices we're starting a form, run the PaintProc, and then tell the devices we've finished
+ 3 -1 roll 2 index
+ .beginform exec
+
+ %% This is all horrible code to deal with illegal forms which leave junk on the operand stack
+ %% Starting from 1 (not 0, we don't want to look at the loop count) and going up to the
+ %% number of objects on the stack, check each object to see if its the Form dict (it is
+ %% *supposed* to be the top object after executing the PaintProc). I don't currently check to see if
+ %% the PaintProc ate the dict, but if there are extra objects, remove them and tell
+ %% the user.
+ %%
+ count 1 1 3 -1 roll {
+ dup index
+ dup type /dicttype eq {
+ /Implementation known {
+ 2 sub 0 1 3 -1 roll {
+ QUIET not {
+ (\n WARNING - Form PaintProc left operands on the stack after execution.\n This is technically illegal and these have been removed, \n if output is incorrect run again with -dUNROLLFORMS.\n) =
+ } if
+ pop pop
+ } for
+ exit
+ }if
+ } {
+ pop pop
+ }ifelse
+ } for
+
+ .endform
+ %% Ask devices if they have cached the form, and what ID to use if so
+ %% returning -1 means 'no ID'
+ .get_form_id dup -1 eq
+ {pop pop}
+ {
+ %% The form is cached with a specific ID. Make a dictionary (which we'll store in the
+ %% Form dictioanry using the /Implementation key).
+ 1 dict dup /FormID 4 -1 roll put
+ 1 index exch /Implementation exch .forceput readonly pop
+ }
+ ifelse
+ }
+ {
+ %% We have a (non-null) Implementation, get the dictionary and pull the
+ %% FormID key from it, then tell the device to use the stored form with the
+ %% specified key.
+ pop dup /Implementation get /FormID get .repeatform
+ }ifelse
+ }
+ {exec} ifelse
+} .bind odef % must bind .forceput
+
+/.formtypes 5 dict
+ dup 1 /.execform1 load put
+def
+
+/execform { % <form> execform -
+ gsave {
+ dup /FormType get //.formtypes exch get exec
+ } stopped grestore { stop } if
+} odef
+
+/.patterntypes 5 dict
+ dup 1 /.buildpattern1 load put
+def
+
+/makepattern { % <proto_dict> <matrix> makepattern <pattern>
+ dup type /dicttype eq {
+ % "<dict> makepattern" reports /typecheck on Adobe
+ /makepattern .systemvar /typecheck signalerror
+ } if
+ //.patterntypes 2 .argindex /PatternType get .knownget not {
+ /makepattern .systemvar /rangecheck signalerror
+ } if
+ .currentglobal //false .setglobal exch
+ % Stack: proto matrix global buildproc
+ 3 index dup length 1 add dict .copydict
+ % Stack: proto matrix global buildproc newdict
+ 3 index 3 -1 roll exec
+ % Stack: proto matrix global newdict instance
+ % Create an 'Implementation' entry for the pattern dict. The PRLM 3rd says
+ % this about the contents of Implementation: "The type and value of this
+ % entry are implementation-dependent." The CET (page 2 of 18-02f) expects
+ % that this entry be an array and that the second element of the array be a
+ % gstate. We put our pattern instance struct into the first element of the
+ % array.
+ 1 index /Implementation 3 -1 roll
+ .getCPSImode { gstate } { //null } ifelse 2 array astore
+ put % put Implementation into the pattern dict.
+ % Stack: proto matrix global newdict
+ readonly exch .setglobal exch pop exch pop
+} odef
+
+/setpattern { % [<comp1> ...] <pattern> setpattern -
+ { currentcolorspace 0 get /Pattern ne {
+ [ /Pattern currentcolorspace ] setcolorspace
+ } if setcolor
+ } stopped {
+ /setpattern .systemvar $error /errorname get signalerror
+ } if
+} odef
+
+% The following functions emulate the actions of findcmykcustomcolor and
+% setcustomcolor. These functions are described in Adobe's TN 5044. That
+% same document also says "The following "operators" are not defined in the
+% PostScript Language Reference Manual, but should be used as pseudo-operators
+% in your PostScript language output. Separation applications from Adobe
+% Systems and other vendors will redefine these convention operators to
+% separate your documents. Your application should conditionally define
+% procedures with these special names, as shown later in this document."
+%
+% We are providing these functions because we have found files created by
+% "QuarkXPress: pictwpstops filter 1.0" which produce bad shading dictionaries
+% if these operators are not defined.
+
+% Also we add a findrgbcustomcolor that was discovered in Adobe Illustrator
+% AI5 (Adobe Illustrator (R) Version 7.0 Full Prolog) ProcSet that allows
+% us to create Separation colorspace with a /DeviceRGB tint transform.
+
+% Conditionally disable the TN 5044 psuedo-ops if NO_TN5044 specified
+/NO_TN5044 where { pop (%END TN 5044 psuedo-ops) .skipeof } if
+
+% TN 5044 does not define the contents of the array. We are simply putting
+% the values given into an array. This is consistent with what we see when
+% testing with Adobe Distiller 6.0.
+% <cyan> <magenta> <yellow> <black> <key> findcmykcustomcolor <array>
+/findcmykcustomcolor { 5 array astore } bind def
+% The following isn't documented by Adobe, but was found in Adobe Illustrator (R)
+% Version 7.0 Full Prolog
+/findrgbcustomcolor { 4 array astore } bind def
+
+% Build a tint transform function for use by setcustomcolor. This function
+% is for a Separation color space which has either a DeviceCMYK base color space
+% (i.e. 1 input and 4 outputs) or a DeviceRGB colorspace (1 in, 3 out).
+% The input to buildcustomtinttransform is the array created by findcmykcustomcolor
+% and the length of the array is used to determine the alternate colorspace.
+% The resulting function for CMYK is:
+% { dup cyan mul exch dup magenta mul exch dup yellow mul exch black mul }
+% Where cyan, magenta, yellow, and black are values from the array.
+% For RGB, since the resulting function is:
+% { dup red mul exch dup green mul exch blue mul }
+/buildcustomtinttransform % <array> buildcustomtinttransform <function>
+{
+ dup length 5 eq {
+ % CMYK
+ [ /dup load 2 index 0 get /mul load
+ /exch load /dup load 6 index 1 get /mul load
+ /exch load /dup load 10 index 2 get /mul load
+ /exch load 13 index 3 get /mul load
+ ]
+ } {
+ % RGB is assumed
+ [ /dup load 2 index 0 get /mul load
+ /exch load /dup load 6 index 1 get /mul load
+ /exch load 9 index 2 get /mul load
+ ]
+ } ifelse
+ cvx bind exch pop % Make executable and remove the input array
+} bind def
+
+% Construct the colorspace array to be used by setcolorspace from the array
+% result of either findcmykcustomcolor or findrgbcustomcolor.
+/buildcolorspacearray % <array> buildcustomtinttransform <colorspace_array>
+{ % as with buildcustomtinttransform, the length of the array is used to
+ % determine the alternate colorspace
+ dup length 5 eq {
+ % Start building Separation colorspace with CMYK alternate
+ [ /Separation 2 index 4 get % Get separation name from array's key
+ /DeviceCMYK
+ 4 index //buildcustomtinttransform exec % build the tint transform function
+ ]
+ } {
+ [ /Separation 2 index 3 get % Get separation name from array's key
+ /DeviceRGB
+ 4 index //buildcustomtinttransform exec % build the tint transform function
+ ]
+ } ifelse
+ exch pop % remove the input array
+} bind def
+
+% Set a custom color based upon a tint and array which describes the custom
+% color. See findcmykcustomcolor. First we create and then set a Separation
+% colorspace. Then we set the specified color.
+% Note that older Adobe ProcSets apparently allow for 'null' as the tint
+% for some reason, so an alternate operational mode is tolerated:
+% null setcustomcolor -
+/setcustomcolor % <array> <tint> setcustomcolor -
+{ dup //null ne {
+ exch //buildcolorspacearray exec
+ setcolorspace % Set the Separation color space as current
+ setcolor % Set the tint as the current color
+ }
+ { pop pop } % 'null' as the tint is ignored. pop tint and array
+ ifelse
+} bind def
+
+% This proc is supposed to implement a version of overprinting. TN 5044 says
+% that this proc is not used by any shipping host-based application. We have
+% only found it being used in a proc set in files by Canvas from Deneba Systems.
+% Even their proc set does not actually do any overprinting. However their
+% files crash if this is not defined. Thus we have a copy of this proc but
+% we are simply checking for inputs being -1 and if so then we set the value
+% to 0.
+/setcmykoverprint {
+ 4 { dup -1 eq { pop 0 } if 4 1 roll } repeat setcmykcolor
+} bind def
+
+/separation_all [/Separation /All /DeviceCMYK { dup dup dup } bind ] readonly def
+
+% Collect the arguments into the image dictionary
+% <width> <height> <bits/sample> <matrix> <proc> args2dict <dict>
+/args2dict {
+ 10 dict begin
+ {1 0} 1
+ { /ImageType /Decode /DataSource /ImageMatrix /BitsPerComponent /Height /Width
+ } { exch def } forall
+ currentdict end
+} bind def
+
+% Prints (1-gray) on all separations.
+% <gray> setseparationgray -
+/setseparationgray {
+ //separation_all setcolorspace
+ 1 exch sub setcolor
+} bind def
+
+% Renders an image whose sample values specify the amount of the custom color.
+% <width> <height> <bits/sample> <matrix> <proc> <array> customcolorimage -
+/customcolorimage {
+ gsave
+ //buildcolorspacearray exec setcolorspace
+ //args2dict exec image
+ grestore
+} bind def
+
+% Renders an image on all process and custom color plates.
+% <width> <height> <bits/sample> <matrix> <proc>
+/separationimage {
+ gsave
+ //separation_all setcolorspace
+ //args2dict exec image
+ grestore
+} bind def
+
+{ /buildcustomtinttransform /buildcolorspacearray /separation_all /args2dict }
+{ currentdict exch undef } forall
+
+%END TN 5044 psuedo-ops
+
+end % level2dict
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_ll3.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,499 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for PostScript LanguageLevel 3 functions.
+% This file must be loaded after gs_lev2.ps and gs_res.ps.
+% These definitions go into ll3dict or various ProcSets.
+% NOTE: the interpreter creates ll3dict.
+
+ll3dict begin
+
+% We need LanguageLevel 2 or higher in order to have setuserparams and
+% defineresource.
+languagelevel dup 2 .max .setlanguagelevel
+
+% ------ Idiom recognition ------ %
+
+/IdiomRecognition //false .definepsuserparam
+
+% Modify `bind' to apply idiom recognition afterwards.
+/.bindscratch 128 string def
+% Note that since this definition of `bind' may get bound in,
+% it has to function properly even at lower language levels,
+% where IdiomRecognition may not be defined.
+/.bind_ { % <proc> .bind <proc'>
+ //.bind currentuserparams /IdiomRecognition
+ .knownget not { //false } if {
+ (*) {
+ /IdiomSet findresource
+ //false exch {
+ % Stack: proc //false dummykey [template substitute]
+ exch pop dup 1 get exch 0 get
+ % Stack: proc //false substitute template
+ 3 index .eqproc {
+ 2 index gcheck 1 index gcheck not and {
+ pop
+ } {
+ 3 -1 roll pop exch not exit
+ } ifelse
+ } {
+ pop
+ } ifelse
+ } forall { exit } if
+ } //.bindscratch /IdiomSet resourceforall
+ } if
+} def
+/.bind /.bind_ load odef % note that .bind_ will get bound
+currentdict /.bindscratch .undef
+
+DELAYBIND NOBIND or not {
+% We can't just do
+% /bind /.bind load def
+% because then /bind load == prints --.bind-- .
+ /bind {//.bind_ exec} odef
+} if
+currentdict /.bind_ undef
+
+% ------ HalftoneTypes 6, 10, 16 and HalftoneMode ------ %
+
+% This code depends on an internal HalftoneType 7 with the following keys:
+% Width, Height, Width2, Height2, TransferFunction:
+% as for HalftoneType 16.
+% Thresholds: a string or bytestring holding the thresholds,
+% (Width x Height + Width2 x Height2) x BitsPerSample / 8 bytes,
+% as for HalftoneType 16 except that the samples may be either
+% 8 or 16 bits wide.
+% BitsPerSample: 8 or 16.
+
+% Note that this HalftoneType never appears in halftone dictionaries given
+% to sethalftone, only as a component in those given to .sethalftone5,
+% so its numeric value can be chosen ad lib as long as it differs from the
+% other values that are legal in component dictionaries for .sethalftone5
+% (currently only 1 and 3).
+
+/.makehalftone7 { % <dict> <dict> <source> <Width> <Height>
+ % (<Width2> <Height2> | null) <BPS> .makehalftone7
+ % <setdict> <dict5> { .sethalftone5 }
+ 8 dict begin
+ /HalftoneType 7 def
+ /BitsPerSample exch def
+ dup //null eq {
+ pop 0
+ } {
+ /Height2 1 index def /Width2 2 index def mul
+ } ifelse 3 1 roll
+ /Height 1 index def
+ /Width 2 index def
+ mul add BitsPerSample 8 idiv mul .bigstring
+ % Stack: dict dict source str
+ dup type /stringtype eq { readstring } { .readbytestring } ifelse
+ not { /sethalftone .systemvar /rangecheck signalerror exit } if
+ readonly /Thresholds exch def
+ /TransferFunction .knownget { /TransferFunction exch def } if
+ % If the original Thresholds was a file, replace it with
+ % a new one.
+ dup /Thresholds get type /filetype eq {
+ dup /Thresholds [ Thresholds ] cvx 0 () .subfiledecode put
+ } if
+ mark /HalftoneType 5 /Default currentdict end .dicttomark
+ { .sethalftone5 }
+} bind def
+
+/.bigstring { % <size> .bigstring <string|bytestring>
+ dup 65400 gt { .bytestring } { string } ifelse
+} bind def
+
+/.readbytestring { % <source> <bytestring> .readbytestring
+ % <bytestring> <filled>
+ % Note that since bytestrings don't implement getinterval,
+ % if filled is false, there is no way to tell how much
+ % was read.
+ //true exch 0 1 2 index length 1 sub {
+ % Stack: source true str index
+ 3 index read not { pop exch not exch exit } if
+ 3 copy put pop pop
+ } for 3 -1 roll pop exch
+} bind def
+
+/.sethalftone6 { % <dict> <dict> .sethalftone6 <setdict> <dict5>
+ % { .sethalftone5 }
+ % Keys: Width, Height, Thresholds, T'Function
+ dup /Thresholds get
+ 1 index /Width get 2 index /Height get
+ //null 8 .makehalftone7
+} bind def
+
+/.sethalftone10 { % <dict> <dict> .sethalftone10 <setdict> <dict5>
+ % { .sethalftone5 }
+ % Keys: Xsquare, Ysquare, Thresholds, T'Function
+ % Note that this is the only one of these three HalftoneTypes
+ % that allows either a file or a string for Thresholds.
+ dup /Thresholds get dup type /stringtype eq { 0 () .subfiledecode } if
+ 1 index /Xsquare get dup 3 index /Ysquare get dup
+ 8 .makehalftone7
+} bind def
+
+/.sethalftone16 { % <dict> <dict> .sethalftone16 <setdict> <dict5>
+ % { .sethalftone5 }
+ % Keys: Width, Height, Width2, Height2,
+ % Thresholds, T'Function
+ dup /Thresholds get
+ 1 index /Width get 2 index /Height get
+ 3 index /Width2 .knownget { % 2-rectangle case
+ 4 index /Height2 get
+ } { % 1-rectangle case
+ //null
+ } ifelse 16 .makehalftone7
+} bind def
+
+.halftonetypes begin
+ 6 /.sethalftone6 load def
+ 10 /.sethalftone10 load def
+ 16 /.sethalftone16 load def
+end
+
+% Redefine the halftone-setting operators to honor HalftoneMode.
+/setcolorscreen {
+ /HalftoneMode getuserparam 0 eq {
+ //setcolorscreen
+ } {
+ 12 { pop } repeat .getdefaulthalftone
+ { //sethalftone }
+ { .setdefaulthalftone }
+ ifelse
+ } ifelse
+} odef
+/setscreen {
+ /HalftoneMode getuserparam 0 eq {
+ //setscreen
+ } {
+ pop pop pop .getdefaulthalftone
+ { //sethalftone }
+ { .setdefaulthalftone }
+ ifelse
+ } ifelse
+} odef
+/sethalftone {
+ /HalftoneMode getuserparam 0 eq {
+ //sethalftone
+ } {
+ gsave //sethalftone grestore
+ .getdefaulthalftone
+ { //sethalftone }
+ { .setdefaulthalftone }
+ ifelse
+ } ifelse
+} odef
+
+% ------ ImageTypes 3 and 4 (masked images) ------ %
+
+% Put the new data source in the requested dictionary.
+% Copy the updated dictionary because it nay be used elsewhere.
+% <dict> <data> <name> update_image3 <dict'>
+/update_image3 {
+ 3 -1 roll dup length dict copy dup % [data] /name <<image>> <<image>>
+ 2 index get % [data] /name <<image>> <<sub-image>>
+ dup length dict copy dup % [data] /name <<image>> <<sub-image>> <<sub-image>>
+ /DataSource 6 -1 roll put % /name <<image>> <<sub-image>>
+ exch dup % /name <<sub-image>> <<image>> <<image>>
+ 4 2 roll % <<image>> <<image>> /name <<sub-image>>
+ put % <<image>>
+} bind def
+
+% Copy mask data source to a reusable stream
+% <dict> <source> buffer_mask <dict> <file>
+/buffer_mask {
+ 1 index /MaskDict get
+ dup /Width get
+ 1 index /BitsPerComponent get mul 7 add 8 idiv
+ exch /Height get mul () /SubFileDecode filter
+ /ReusableStreamDecode filter
+} bind def
+
+% Data type vs. mask type decission table.
+% All procedures have the signature:
+% <image dict> <data DataSource> <mask DataSource> proc <image dict'>
+/data_mask_dict mark
+ /stringtype mark % data is a string
+ /stringtype { pop pop } bind
+ /arraytype { % convert data to proc, don't buffer mask
+ pop
+ dup type dup /arraytype eq exch /packedarraytype eq or {
+ [ exch { 1 array astore cvx } forall ]
+ } {
+ 1 array astore cvx
+ } ifelse
+ /DataDict //update_image3 exec
+ } bind
+ /packedarraytype 1 index
+ /filetype { % convert data to file, don't buffer mask
+ pop
+ dup type dup /arraytype eq exch /packedarraytype eq or {
+ [ exch { 1 array astore cvx 0 () /SubFileDecode filter } forall ]
+ } {
+ 1 array astore cvx 0 () /SubFileDecode filter
+ } ifelse
+ /DataDict //update_image3 exec
+ } bind
+ .dicttomark readonly
+ /arraytype mark % data is a proc
+ /stringtype { % convert mask to proc
+ exch pop
+ 1 array astore cvx
+ /MaskDict //update_image3 exec
+ } bind
+ /arraytype { % buffer mask in reusable stream and convert back to proc
+ exch pop
+ //buffer_mask exec
+ 500 string
+ { readstring pop } aload pop
+ 4 packedarray cvx
+ /MaskDict //update_image3 exec
+ } bind
+ /packedarraytype 1 index
+ /filetype 1 index
+ .dicttomark readonly
+ /packedarraytype 1 index
+ /filetype mark % data is a file
+ /stringtype { % convert mask to file
+ exch pop
+ 1 array astore cvx 0 () /SubFileDecode filter
+ /MaskDict //update_image3 exec
+ } bind
+ /arraytype { % buffer the mask and convert to file
+ exch pop
+ //buffer_mask exec
+ /MaskDict //update_image3 exec
+ } bind
+ /packedarraytype 1 index
+ /filetype {
+ //systemdict /userdict get /PDFTopSave known {
+ pop pop % mask is already buffered by PDF interpreter
+ } {
+ exch pop % buffer the mask
+ //buffer_mask exec
+ /MaskDict //update_image3 exec
+ } ifelse
+ } bind
+ .dicttomark readonly
+.dicttomark readonly def
+
+.imagetypes
+ dup 3 {
+ dup /InterleaveType get 3 eq {
+ % .image3 requires data sources of the image and mask to be of the
+ % same type. Work around this restriction here.
+ dup /DataDict get /DataSource get
+ 1 index /MaskDict get /DataSource get % <<>> data mask
+ dup type % <<>> data mask mask_type
+ 2 index
+ 4 index /DataDict get /MultipleDataSources .knownget {
+ { 0 get } if
+ } if
+ type % <<>> data mask mask_type data_type
+ //data_mask_dict exch .knownget {
+ exch .knownget {
+ exec
+ } {
+ pop pop % pass wrong type as is to .image3
+ } ifelse
+ } {
+ pop pop pop % pass wrong type as is to .image3
+ } ifelse
+ } if
+ .image3
+ } bind put
+ dup 4 /.image4 load put
+% We also detect ImageType 103 here: it isn't worth making a separate file
+% just for this.
+ /.image3x where { pop dup 103 /.image3x load put } if
+pop
+
+currentdict /data_mask_dict undef
+currentdict /update_image3 undef
+currentdict /buffer_mask undef
+
+% ------ Functions ------ %
+
+% Define the FunctionType resource category.
+/Generic /Category findresource dup maxlength 3 add dict .copydict begin
+ /InstanceType /integertype def
+/FunctionType currentdict end /Category defineresource pop
+
+{0 2 3} { dup /FunctionType defineresource pop } forall
+
+% ------ Smooth shading ------ %
+
+% Define the ShadingType resource category.
+/Generic /Category findresource dup maxlength 3 add dict .copydict begin
+ /InstanceType /integertype def
+/ShadingType currentdict end /Category defineresource pop
+
+systemdict /.shadingtypes mark % not ll3dict
+ 1 /.buildshading1 load
+ 2 /.buildshading2 load
+ 3 /.buildshading3 load
+ 4 /.buildshading4 load
+ 5 /.buildshading5 load
+ 6 /.buildshading6 load
+ 7 /.buildshading7 load
+.dicttomark put
+
+systemdict /.reuseparamdict mark
+ /Intent 2
+ /AsyncRead //false
+ /CloseSource //true
+.dicttomark readonly put
+/.buildshading { % <shadingdict> .buildshading <shading>
+ dup rcheck not {
+ % Adobe seems to access ColorSpace first and CET 12-14c checks this.
+ /$error .systemvar /errorinfo [ /ColorSpace //null ] put
+ /shfill .systemvar /invalidaccess signalerror
+ } if
+ % Unfortunately, we always need to make the DataSource reusable,
+ % because if clipping is involved, even shfill may need to read
+ % the source data multiple times. If it weren't for this,
+ % we would only need to create a reusable stream if the ultimate
+ % source of the data is a procedure (since the library can't
+ % suspend shading to do a procedure callout).
+ dup /DataSource .knownget {
+ dup type /filetype eq {
+ //.reuseparamdict /ReusableStreamDecode filter
+ % Copy the dictionary to replace the DataSource, but make sure the
+ % copy is in the same VM as the original.
+ .currentglobal 2 index gcheck .setglobal
+ % Stack: shdict rsdfile saveglobal
+ 2 index dup length dict copy exch .setglobal
+ dup /DataSource 4 -1 roll put exch pop
+ } {
+ pop
+ } ifelse
+ } if
+ % The .buildshading operators use the current color space
+ % for ColorSpace.
+ dup /ShadingType .knownget not { % error handling for CET 12-14b conformance
+ /$error .systemvar /errorinfo [ /ShadingType //null ] put
+ /shfill .systemvar /undefined signalerror
+ } if
+ dup type /integertype ne {
+ /$error .systemvar /errorinfo [ /ShadingType 4 index ] put
+ /shfill .systemvar /typecheck signalerror
+ } if
+ //.shadingtypes 1 index .knownget not {
+ /$error .systemvar /errorinfo [ /ShadingType 4 index ] put
+ /shfill .systemvar /rangecheck signalerror
+ } if
+ exch pop 1 index /ColorSpace .knownget {
+ { setcolorspace } stopped {
+ /$error .systemvar /errorinfo [ /ColorSpace 4 index ] put
+ /shfill .systemvar /$error .systemvar /errorname get signalerror
+ } if
+ exec
+ } {
+ /$error .systemvar /errorinfo [ /ColorSpace //null ] put
+ /shfill .systemvar /undefined signalerror
+ } ifelse
+} bind def
+systemdict /.reuseparamdict undef
+
+/.buildpattern2 { % <template> <matrix> .buildpattern2
+ % <template> <pattern>
+ % We want to build the pattern without doing gsave/grestore,
+ % since we want it to load the CIE caches.
+ 1 index /Shading get
+ mark currentcolor currentcolorspace
+ counttomark 4 add -3 roll mark 4 1 roll
+ % Stack: -mark- ..color.. cspace -mark- template matrix shadingdict
+ { .buildshading } stopped {
+ cleartomark setcolorspace setcolor pop stop
+ } if
+ .buildshadingpattern
+ 3 -1 roll pop counttomark 1 add 2 roll setcolorspace setcolor pop
+} bind def
+
+.patterntypes
+ 2 /.buildpattern2 load put
+
+/shfill { % <shadingdict> shfill -
+ % Currently, .shfill requires that the color space
+ % in the pattern be the current color space.
+ % Disable overprintmode for shfill
+ { dup gsave 0 .setoverprintmode .buildshading .shfill } stopped
+ grestore {
+ /$error .systemvar /errorinfo 2 copy known {
+ pop pop
+ } {
+ //null put % CET 12-14c
+ } ifelse
+ stop
+ } if
+ pop
+} odef
+
+% Establish an initial smoothness value that matches Adobe RIPs.
+0.02 setsmoothness
+
+% ------ DeviceN color space ------ %
+% gs_res.ps uses these entries in colorspacedict
+% to populate the ColorSpaceFamily resource, so we need
+% to add the supported spaces.
+%
+systemdict /colorspacedict get begin
+/CIEBasedDEF [] def
+/CIEBasedDEFG [] def
+/DeviceN [] def
+end
+
+% ------ Miscellaneous ------ %
+
+% Make the setoverprintmode and currentoverprintmode operators visible (3015)
+% Because of the requirements of PDF, the .currentoverprintmode and
+% .setoverprintmode operators have integer parameters. Thus we need to
+% convert the Postscript bool parameters to integers.
+%
+/setoverprintmode % bool setoverprint -
+{
+ { 1 } { 0 } ifelse % convert bool to integer
+ //.setoverprintmode
+} odef
+
+/currentoverprintmode % - currentoverprintmode bool
+{
+ //.currentoverprintmode
+ 0 ne % convert integers to bool
+} odef
+
+% Define additional user and system parameters.
+/HalftoneMode 0 .definepsuserparam
+/MaxSuperScreen 1016 .definepsuserparam
+pssystemparams begin % read-only, so use .forcedef
+ /MaxDisplayAndSourceList 160000 .forcedef
+end
+
+% Define the IdiomSet resource category.
+{ /IdiomSet } {
+ /Generic /Category findresource dup maxlength 3 add dict .copydict begin
+ /InstanceType /dicttype def
+ currentdict end /Category defineresource pop
+} forall
+
+/languagelevel 3 def
+% When running in LanguageLevel 3 mode, this interpreter is supposed to be
+% compatible with Adobe version 3010.
+/version (3010) readonly def
+
+.setlanguagelevel
+
+end % ll3dict
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_mex_e.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,65 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the MacExpert encoding vector.
+/currentglobal where
+ { pop currentglobal { setglobal } //true setglobal }
+ { { } }
+ifelse
+/MacExpertEncoding
+% \00x
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+% \04x
+ /space /exclamsmall /Hungarumlautsmall /centoldstyle /dollaroldstyle /dollarsuperior /ampersandsmall /Acutesmall
+ /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader /comma /hyphen /period /fraction
+ /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle
+ /eightoldstyle /nineoldstyle /colon /semicolon /.notdef /threequartersemdash /.notdef /questionsmall
+% \10x
+ /.notdef /.notdef /.notdef /.notdef /Ethsmall /.notdef /.notdef /onequarter
+ /onehalf /threequarters /oneeighth /threeeighths /fiveeighths /seveneighths /onethird /twothirds
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ff /fi
+ /fl /ffi /ffl /parenleftinferior /.notdef /parenrightinferior /Circumflexsmall /hypheninferior
+% \14x
+ /Gravesmall /Asmall /Bsmall /Csmall /Dsmall /Esmall /Fsmall /Gsmall
+ /Hsmall /Ismall /Jsmall /Ksmall /Lsmall /Msmall /Nsmall /Osmall
+ /Psmall /Qsmall /Rsmall /Ssmall /Tsmall /Usmall /Vsmall /Wsmall
+ /Xsmall /Ysmall /Zsmall /colonmonetary /onefitted /rupiah /Tildesmall /.notdef
+% \20x
+ /.notdef /asuperior /centsuperior /.notdef /.notdef /.notdef /.notdef /Aacutesmall
+ /Agravesmall /Acircumflexsmall /Adieresissmall /Atildesmall /Aringsmall /Ccedillasmall /Eacutesmall /Egravesmall
+ /Ecircumflexsmall /Edieresissmall /Iacutesmall /Igravesmall /Icircumflexsmall /Idieresissmall /Ntildesmall /Oacutesmall
+ /Ogravesmall /Ocircumflexsmall /Odieresissmall /Otildesmall /Uacutesmall /Ugravesmall /Ucircumflexsmall /Udieresissmall
+% \24x
+ /.notdef /eightsuperior /fourinferior /threeinferior /sixinferior /eightinferior /seveninferior /Scaronsmall
+ /.notdef /centinferior /twoinferior /.notdef /Dieresissmall /.notdef /Caronsmall /osuperior
+ /fiveinferior /.notdef /commainferior /periodinferior /Yacutesmall /.notdef /dollarinferior /.notdef
+ /.notdef /Thornsmall /.notdef /nineinferior /zeroinferior /Zcaronsmall /AEsmall /Oslashsmall
+% \30x
+ /questiondownsmall /oneinferior /Lslashsmall /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /Cedillasmall /.notdef /.notdef /.notdef /.notdef /.notdef /OEsmall
+ /figuredash /hyphensuperior /.notdef /.notdef /.notdef /.notdef /exclamdownsmall /.notdef
+ /Ydieresissmall /.notdef /onesuperior /twosuperior /threesuperior /foursuperior /fivesuperior /sixsuperior
+% \34x
+ /sevensuperior /ninesuperior /zerosuperior /.notdef /esuperior /rsuperior /tsuperior /.notdef
+ /.notdef /isuperior /ssuperior /dsuperior /.notdef /.notdef /.notdef /.notdef
+ /.notdef /lsuperior /Ogoneksmall /Brevesmall /Macronsmall /bsuperior /nsuperior /msuperior
+ /commasuperior /periodsuperior /Dotaccentsmall /Ringsmall /.notdef /.notdef /.notdef /.notdef
+256 packedarray
+6 1 index .registerencoding
+.defineencoding
+exec
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_mgl_e.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,64 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% $Id: gs_mgl_e.ps 8954 2008-08-08 04:22:38Z ray $
+% Define the Macintosh standard glyph encoding vector.
+% This is not an Encoding strictly speaking, but we treat it like one.
+/currentglobal where
+ { pop currentglobal { setglobal } //true setglobal }
+ { { } }
+ifelse
+/MacRomanEncoding .findencoding
+/MacGlyphEncoding
+ /.notdef /.null /CR
+% 3
+4 index 32 95 getinterval aload pop
+% 98
+99 index 128 45 getinterval aload pop
+% 143
+ /notequal /AE
+ /Oslash /infinity /plusminus /lessequal /greaterequal
+ /yen /mu1 /partialdiff /summation /product
+ /pi /integral /ordfeminine /ordmasculine /Ohm
+ /ae /oslash /questiondown /exclamdown /logicalnot
+ /radical /florin /approxequal /increment /guillemotleft
+ /guillemotright /ellipsis /nbspace
+% 173
+174 index 203 12 getinterval aload pop
+ /lozenge
+% 186
+187 index 216 24 getinterval aload pop
+ /applelogo
+% 211
+212 index 241 7 getinterval aload pop
+ /overscore
+% 219
+220 index 249 7 getinterval aload pop
+% 226
+ /Lslash /lslash /Scaron /scaron
+ /Zcaron /zcaron /brokenbar /Eth /eth
+ /Yacute /yacute /Thorn /thorn /minus
+ /multiply /onesuperior /twosuperior /threesuperior /onehalf
+ /onequarter /threequarters /franc /Gbreve /gbreve
+ % The TrueType documentation says the next glyph is named
+ % Idot, but the Adobe standard name for this glyph is
+ % Idotaccent.
+ /Idotaccent /Scedilla /scedilla /Cacute /cacute
+ /Ccaron /ccaron /dmacron
+260 -1 roll pop % delete MacRomanEncoding
+258 packedarray
+7 1 index .registerencoding
+.defineencoding
+exec
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_mro_e.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,61 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% $Id: gs_mro_e.ps 8954 2008-08-08 04:22:38Z ray $
+% Define the MacRoman encoding vector.
+/currentglobal where
+ { pop currentglobal { setglobal } //true setglobal }
+ { { } }
+ifelse
+/MacRomanEncoding
+StandardEncoding 0 39 getinterval aload pop
+ /quotesingle
+StandardEncoding 40 56 getinterval aload pop
+ /grave
+StandardEncoding 97 31 getinterval aload pop
+% \20x
+ /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute
+ /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave
+ /ecircumflex /edieresis /iacute /igrave
+ /icircumflex /idieresis /ntilde /oacute
+ /ograve /ocircumflex /odieresis /otilde
+ /uacute /ugrave /ucircumflex /udieresis
+% \24x
+ /dagger /degree /cent /sterling /section /bullet /paragraph /germandbls
+ /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash
+ /.notdef /plusminus /.notdef /.notdef /yen /mu /.notdef /.notdef
+ /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash
+% \30x
+ /questiondown /exclamdown /logicalnot /.notdef
+ /florin /.notdef /.notdef /guillemotleft
+ /guillemotright /ellipsis /space /Agrave /Atilde /Otilde /OE /oe
+ /endash /emdash /quotedblleft /quotedblright
+ /quoteleft /quoteright /divide /.notdef
+ % NOTE: Euro should replace currency, but the PDF 1.3 documentation
+ % explicitly says it does not.
+ /ydieresis /Ydieresis /fraction /currency
+ /guilsinglleft /guilsinglright /fi /fl
+% \34x
+ /daggerdbl /periodcentered /quotesinglbase /quotedblbase
+ /perthousand /Acircumflex /Ecircumflex /Aacute
+ /Edieresis /Egrave /Iacute /Icircumflex
+ /Idieresis /Igrave /Oacute /Ocircumflex
+ /.notdef /Ograve /Uacute /Ucircumflex
+ /Ugrave /dotlessi /circumflex /tilde
+ /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
+256 packedarray
+5 1 index .registerencoding
+.defineencoding
+exec
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdf_e.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,43 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the PDFDoc encoding vector.
+/currentglobal where
+ { pop currentglobal { setglobal } //true setglobal }
+ { { } }
+ifelse
+/PDFDocEncoding
+ISOLatin1Encoding 0 24 getinterval aload pop
+ /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek /ring /tilde
+ISOLatin1Encoding 32 7 getinterval aload pop
+ /quotesingle
+ISOLatin1Encoding 40 5 getinterval aload pop
+ /hyphen
+ISOLatin1Encoding 46 50 getinterval aload pop
+ /grave
+ISOLatin1Encoding 97 31 getinterval aload pop
+% \20x
+ /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin /fraction
+ /guilsinglleft /guilsinglright /minus /perthousand
+ /quotedblbase /quotedblleft /quotedblright /quoteleft
+ /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE /Scaron
+ /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron /zcaron /.notdef
+% \24x
+ /Euro
+ISOLatin1Encoding 161 12 getinterval aload pop
+ /.notdef
+ISOLatin1Encoding 174 82 getinterval aload pop
+256 packedarray .defineencoding
+exec
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_pdfwr.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1054 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% PDF writer additions to systemdict.
+
+% This file should be included iff the pdfwrite "device" is included
+% in the executable.
+
+% ---------------- Predefined configurations ---------------- %
+
+% These correspond to the 4 predefined settings in Acrobat Distiller 5,
+% plus a "default" setting that doesn't downsample images.
+
+{ /pdfwrite finddevice pop } .internalstopped
+{pop pop (%END PDFWR) .skipeof} if
+
+languagelevel 2 .setlanguagelevel
+
+/.a2112 [2 1 1 2] readonly def
+/.a1111 [1 1 1 1] readonly def
+/.standardfonts [
+ /Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique
+ /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique
+ /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic
+ /Symbol /ZapfDingbats
+] readonly def
+
+% Parameters common to all non-default configurations.
+% Note that the default configuration overrides a few of these.
+/.defaultImageDict mark
+ /QFactor 0.9 /Blend 1
+ /HSamples .a2112 /VSamples .a2112
+.dicttomark readonly def
+/.distillercommon mark
+ /AlwaysEmbed []
+ /AntiAliasColorImages //false
+ /AntiAliasGrayImages //false
+ /AntiAliasMonoImages //false
+ /ASCII85EncodePages //false
+ /AutoFilterColorImages //true
+ /AutoFilterGrayImages //true
+ /AutoPositionEPSFiles //true
+ /Binding /Left
+ /CalCMYKProfile (None) % (U.S. Web Coated (SWOP) v2)
+ /CalGrayProfile (None) % (Dot Gain 20%)
+ /CalRGBProfile (None) % (sRGB IEC61966-2.1)
+ /ColorImageDepth -1
+ /ColorImageDict .defaultImageDict
+ /ColorImageDownsampleThreshold 1.5
+ /ColorImageFilter /DCTEncode
+ /CompressPages //true
+ /ConvertImagesToIndexed //true
+ /DefaultRenderingIntent /Default
+ /DetectBlends //true
+ /DownsampleColorImages //true
+ /DownsampleGrayImages //true
+ /DownsampleMonoImages //true
+ /EmitDSCWarnings //false
+ /EncodeColorImages //true
+ /EncodeGrayImages //true
+ /EncodeMonoImages //true
+ /EndPage -1
+ /GrayImageDepth -1
+ /GrayImageDict .defaultImageDict
+ /GrayImageDownsampleThreshold 1.5
+ /GrayImageFilter /DCTEncode
+ /ImageMemory 524288
+ /LockDistillerParams //false
+ /MaxSubsetPct 100
+ /MonoImageDepth -1
+ /MonoImageDict mark
+ /K -1
+ .dicttomark readonly
+ /MonoImageDownsampleThreshold 1.5
+ /MonoImageFilter /CCITTFaxEncode
+ /OffOptimizations 0
+ /OPM 1
+ /Optimize //true
+ /ParseDSCComments //true
+ /ParseDSCCommentsForDocInfo //true
+ /PDFXTrimBoxToMediaBoxOffset [0 0 0 0]
+ /PDFXSetBleedBoxToMediaBox //true
+ /PDFXBleedBoxToTrimBoxOffset [0 0 0 0]
+ /PreserveCopyPage //true
+ /PreserveHalftoneInfo //false
+ /sRGBProfile (None) % (sRGB IEC61966-2.1)
+ /StartPage 1
+ /SubsetFonts //true
+ /TransferFunctionInfo /Preserve
+ /UseFlateCompression //true
+ /UsePrologue //false
+.dicttomark readonly def
+
+/.distillersettings mark
+
+/default mark
+ /AutoRotatePages /PageByPage
+ /CannotEmbedFontPolicy /Warning
+ /ColorACSImageDict .defaultImageDict
+ /ColorConversionStrategy /LeaveColorUnchanged
+% /ColorImageDownsampleType
+% /ColorImageResolution
+% /CompatibilityLevel
+ /CreateJobTicket //false
+ /DoThumbnails //false
+ /DownsampleColorImages //false % override
+ /DownsampleGrayImages //false % override
+ /DownsampleMonoImages //false % override
+ /EmbedAllFonts //true
+ /GrayACSImageDict .defaultImageDict
+% /GrayImageDownsampleType
+% /GrayImageResolution
+% /MonoImageDownsampleType
+% /MonoImageResolution
+ /NeverEmbed .standardfonts
+ /Optimize //false % override
+ /PreserveEPSInfo //true
+ /PreserveOPIComments //true
+ /PreserveOverprintSettings //true
+ /UCRandBGInfo /Preserve
+.dicttomark readonly
+
+/.screenACSImageDict mark
+ /QFactor 0.76 /Blend 1 /ColorTransform 1
+ /HSamples .a2112 /VSamples .a2112
+.dicttomark readonly def
+/screen mark
+ /AutoRotatePages /PageByPage
+% /CalGrayProfile (None)
+ /CannotEmbedFontPolicy /Warning
+ /ColorACSImageDict .screenACSImageDict
+ /ColorConversionStrategy /sRGB
+ /ColorImageDownsampleType /Average
+ /ColorImageResolution 72
+ /CompatibilityLevel 1.5
+ /CreateJobTicket //false
+ /DoThumbnails //false
+ /EmbedAllFonts //true
+ /GrayACSImageDict .screenACSImageDict
+ /GrayImageDownsampleType /Average
+ /GrayImageResolution 72
+ /MonoImageDownsampleType /Subsample
+ /MonoImageResolution 300
+ /NeverEmbed .standardfonts
+ /PreserveEPSInfo //false
+ /PreserveOPIComments //false
+ /PreserveOverprintSettings //false
+ /UCRandBGInfo /Remove
+.dicttomark readonly
+
+/ebook mark
+ /AutoRotatePages /All
+% /CalGrayProfile (None)
+ /CannotEmbedFontPolicy /Warning
+ /ColorACSImageDict .screenACSImageDict
+ /ColorConversionStrategy /sRGB
+ /ColorImageDownsampleType /Average
+ /ColorImageResolution 150
+ /CompatibilityLevel 1.5
+ /CreateJobTicket //false
+ /DoThumbnails //false
+ /EmbedAllFonts //true
+ /GrayACSImageDict .screenACSImageDict
+ /GrayImageDownsampleType /Average
+ /GrayImageResolution 150
+ /MonoImageDownsampleType /Subsample
+ /MonoImageResolution 300
+ /NeverEmbed .standardfonts
+ /PreserveEPSInfo //false
+ /PreserveOPIComments //false
+ /PreserveOverprintSettings //false
+ /UCRandBGInfo /Remove
+.dicttomark readonly
+
+/.printerACSImageDict mark
+ /QFactor 0.4 /Blend 1 /ColorTransform 1
+ /HSamples .a1111 /VSamples .a1111
+.dicttomark readonly def
+/printer mark
+ /AutoRotatePages /None
+% /CalGrayProfile (None)
+ /CannotEmbedFontPolicy /Warning
+ /ColorACSImageDict .printerACSImageDict
+ /ColorConversionStrategy /UseDeviceIndependentColor
+ /ColorImageDownsampleType /Average
+ /ColorImageResolution 300
+ /CompatibilityLevel 1.5
+ /CreateJobTicket //true
+ /DoThumbnails //false
+ /EmbedAllFonts //true
+ /GrayACSImageDict .printerACSImageDict
+ /GrayImageDownsampleType /Average
+ /GrayImageResolution 300
+ /MonoImageDownsampleType /Subsample
+ /MonoImageResolution 1200
+ /NeverEmbed []
+ /PreserveEPSInfo //true
+ /PreserveOPIComments //true
+ /PreserveOverprintSettings //true
+ /UCRandBGInfo /Preserve
+.dicttomark readonly
+
+/.prepressACSImageDict mark
+ /QFactor 0.15 /Blend 1 /ColorTransform 1
+ /HSamples .a1111 /VSamples .a1111
+.dicttomark readonly def
+/prepress mark
+ /AutoRotatePages /None
+ /CannotEmbedFontPolicy /Error
+ /ColorACSImageDict .prepressACSImageDict
+ /ColorConversionStrategy /LeaveColorUnchanged
+ /ColorImageDownsampleType /Bicubic
+ /ColorImageResolution 300
+ /CompatibilityLevel 1.5
+ /CreateJobTicket //true
+ /DoThumbnails //true
+ /EmbedAllFonts //true
+ /GrayACSImageDict .prepressACSImageDict
+ /GrayImageDownsampleType /Bicubic
+ /GrayImageResolution 300
+ /MonoImageDownsampleType /Subsample
+ /MonoImageResolution 1200
+ /NeverEmbed []
+ /PreserveEPSInfo //true
+ /PreserveOPIComments //true
+ /PreserveOverprintSettings //true
+ /UCRandBGInfo /Preserve
+.dicttomark readonly
+
+% Define distiller settings for the ps2write device and for the ps2ps2 script :
+/PSL2Printer mark
+ /AutoRotatePages /None
+ /CannotEmbedFontPolicy /Error
+ /ColorACSImageDict .prepressACSImageDict
+ /ColorConversionStrategy /LeaveColorUnchanged
+ /ColorImageDownsampleType /Subsample
+ /ColorImageResolution 600
+ /DownsampleColorImages false
+ /CompatibilityLevel 1.2 % Always 1.2 with ps2write.
+ % /CreateJobTicket //true % Not sure
+ /DoThumbnails //false
+ /EmbedAllFonts //true
+ /GrayACSImageDict .prepressACSImageDict
+ /GrayImageDownsampleType /Subsample
+ /GrayImageResolution 600
+ /DownsampleGrayImages false
+ /MonoImageDownsampleType /Subsample
+ /MonoImageResolution 1200
+ /DownsampleMonoImages false
+ /NeverEmbed []
+ /PreserveEPSInfo //true
+ /PreserveOPIComments //true
+ /PreserveOverprintSettings //true
+ /UCRandBGInfo /Preserve
+ /PreserveHalftoneInfo //true
+ /TransferFunctionInfo /Preserve
+%% Deprecated in 9.06
+%% /MaxViewerMemorySize 8000000
+ /CompressPages //false
+ /CompressFonts //true
+ /ASCII85EncodePages //true
+.dicttomark readonly
+
+.dicttomark readonly def
+
+% ---------------- End of predefined configurations ---------------- %
+
+% Set optimizations for converting PostScript to PDF.
+% The ps2pdf* scripts invoke this.
+/.setpdfwrite { % - .setpdfwrite -
+ % Set a large VM threshold to reduce garbage collection.
+ currentuserparams /VMThreshold get 3000000 .max setvmthreshold
+} bind def
+
+% ---------------- pdfmark and DSC processing ---------------- %
+
+/.write_small_positive_real % <file> <real> .write_small_positive_real -
+{ % The argument must be grater than 0 and must be strongly samller than 0.1.
+ % The conversion isn't simple due to the low (24 bits) precision
+ % of the floating point arithmetics in Postscript.
+ % For best result we first use the 1e8 factor since its binary
+ % representation 101111101011110000100000000 well rounds into 14 significant
+ % bits : 101111101011110000000000000 .
+ 1 index (.) writestring
+ { dup 100000000 mul
+ dup 10 mul 1 ge {
+ % Will need not greater than 0.1 due to a rounding below.
+ pop exit
+ } if
+ exch pop
+ 1 index (00000000) writestring
+ } loop
+ % Now it is not smaller than 1e-9, use simple digitizing.
+ { dup 10 mul
+ dup 10 mul 1 ge {
+ pop exit
+ } if
+ exch pop
+ 1 index (0) writestring
+ } loop
+ % Now 0.01 <= n < 0.1, but rounding may give 0.1 .
+ % Convert to integer with 7 digits precision :
+ 100000000 % precision factor 1e8 % f n r
+ dup 10 idiv 3 1 roll mul 0.5 add cvi % f r' N
+ 2 copy le {
+ % The rounding overflows, suppress it.
+ % Note it carries out an additional digit,
+ % that's why we needed <0.1 above.
+ pop pop (1) writestring
+ } {
+ % Didn't cary out, put 0.
+ 2 index (0) writestring
+ exch % f N r
+ % Continue the simple digitizing :
+ { 10 idiv dup % f N r' r'
+ 2 index exch idiv % f N r' d
+ (0123456789) exch 1 getinterval % f N r' (d)
+ 3 index exch writestring % f N r'
+ dup 3 2 roll exch mod % f r' N'
+ dup 0 eq {
+ % Don't write trailing zeros.
+ exit
+ } if
+ exch % f N' r'
+ } loop
+ pop pop pop
+ } ifelse
+} bind def
+
+% Encode values to pass for the /pdfmark or /DSC pseudo-parameter.
+/.pdf===dict mark
+ /arraytype
+ { dup xcheck { ({) (}) } { ([) (]) } ifelse
+ % Stack: file obj left right
+ 4 1 roll 2 index exch writestring () exch
+ { exch 2 index exch writestring
+ 1 index exch pdf===only ( )
+ }
+ forall pop exch writestring
+ } bind
+ /packedarraytype 1 index
+ /dicttype
+ { 1 index (<<\n) writestring
+ { 2 index 3 -1 roll pdf===only 1 index ( ) writestring
+ 1 index exch pdf===only dup (\n) writestring
+ }
+ forall (>>) writestring
+ } bind
+ /nametype {
+ % If the name string includes any non-regular characters,
+ % write it with two preceding and one following null character(s).
+ % (Null characters in the name itself are not allowed.)
+ % This non-standard escape convention is required for passing names
+ % that include non-regular characters, because PostScript provides
+ % no way to do this. The pdf_scan_token procedure in the C code of
+ % the pdfwrite driver is currently the only place that recognizes
+ % this convention.
+ % Note that \004 may be self-delimiting in gs, but is not in standard PS.
+ dup .namestring (\000\004\011\012\014\015 %()/<>[]{}) .stringbreak //null ne {
+ dup .namestring (\000) .stringbreak //null ne {
+ 1 index <000000> writestring 1 index exch write===only 1 index exch 0 write 0 write
+ }{
+ 1 index <0000> writestring 1 index exch write===only 0 write
+ }ifelse
+ } {
+ write===only
+ } ifelse
+ } bind
+ /realtype {
+ % Prevent using floating point format - see Bug 688167.
+ dup dup 0 lt { neg } if 0.01 lt {
+ dup 0 eq {
+ pop (0) writestring
+ } {
+ dup 0 lt {
+ 1 index (-) writestring neg
+ } if
+ .write_small_positive_real
+ } ifelse
+ } {
+ write===only
+ } ifelse
+ } bind
+.dicttomark readonly def
+/pdf===only { % <file> <obj> pdf===only -
+ .pdf===dict 1 index type .knownget { exec } { write===only } ifelse
+} bind def
+/.pdfcvbuf 30 string def % enough for most arguments
+userdict /.pdfcvstring () put
+/.pdfcvs { % <obj> .pdfcvs <string>
+ currentglobal exch //false .setglobal
+ /.pdfcvstring () store
+ % We can't handle long values yet.
+ { pop dup length 0 eq { pop } {
+ /.pdfcvstring .pdfcvstring 3 -1 roll concatstrings store
+ } ifelse //.pdfcvbuf
+ } /NullEncode filter dup 3 -1 roll pdf===only
+ closefile
+ .setglobal .pdfcvstring
+} bind def
+
+% Redefine pdfmark to pass the data to the driver.
+% We use a pseudo-parameter named /pdfmark whose value is an array:
+% /key1 (value1) ... (CTM) /type
+/.pdfputparams { % -mark- <key1> <value1> ... .pdfputparams <result...>
+ currentdevice //null //false counttomark 1 add 3 roll
+ % Don't allow the page device to get cleared....
+ {.putdeviceparams} .currentpagedevice pop {.setpagedevice} 3 .execn
+} bind def
+% Convert relevant operands to strings in an array.
+/.pdfcvsloop { % -mark- values ... markname start step .pdfcvsloop
+ % [values ... ctm markname]
+ matrix currentmatrix .pdfcvs 4 1 roll
+ counttomark 1 add 2 roll
+ counttomark .localvmarray astore exch pop
+ 3 1 roll
+ % Stack: values start step
+ 2 index length 3 sub { 2 copy 2 copy get .pdfcvs put pop } for
+} bind def
+/.pdfcvsall { % -mark- values ... markname .pdfcvsall <<same>>
+ 0 1 .pdfcvsloop
+} bind def
+/.pdfcvseven { % -mark- key value ... markname .pdfcvseven <<same>>
+ 1 2 .pdfcvsloop
+} bind def
+/.pdfcvsnone { % -mark- values ... markname .pdfcvsnone <<same>>
+ 100000 1 .pdfcvsloop
+} bind def
+/.pdfcvsfirst { % -mark- first values ... markname .pdfcvsfirst<<same>>
+ .pdfcvsnone
+ dup 0 2 copy get .pdfcvs put
+} bind def
+% The procedures in the following dictionary are called with the entire
+% pdfmark operand list (including the pdfmark name) on the stack;
+% they may modify this ad lib. They must call .pdfcvsxxx.
+/.pdfmarkparams mark
+ % Unpack a dictionary for PUT, and don't convert stream data.
+ /PUT {
+ counttomark 3 eq {
+ 1 index type /dicttype eq {
+ pop { } forall /.PUTDICT .pdfcvsall
+ } {
+ pop dup type /filetype eq {
+ % Read the file into a sequence of strings.
+ % This isn't great, but it's simple.
+ {
+ dup 64000 string readstring not { exch exit } if
+ exch
+ } loop closefile
+ } if
+ /.PUTSTREAM .pdfcvsfirst
+ } ifelse
+ } {
+ .pdfcvsall
+ } ifelse
+ } bind
+ % Unpack the array for PUTINTERVAL.
+ /PUTINTERVAL {
+ pop aload pop /.PUTINTERVAL .pdfcvsall
+ } bind
+.dicttomark readonly def
+/.pdfparamerror { % ? ? ? -mark- ... <errname> <opname> .pdfparamerror -
+ counttomark 4 add 2 roll cleartomark pop pop pop
+ .systemvar exch signalerror
+} bind def
+
+/.CountLeafs {
+ 0 exch
+ {
+ oforce dup type /dicttype eq {
+ /Limits knownoget {
+ dup type /arraytype eq {
+ 1 get 2 copy lt {
+ exch pop
+ }{
+ pop
+ }ifelse
+ }{
+ (invalid number tree, /Limits not an array\n) print
+ pop pop 0 exit
+ } ifelse
+ }{
+ (invalid number tree, /Limits not defined in intermediate or leaf node\n) print
+ pop pop 0 exit
+ }ifelse
+ } {
+ (invalid number tree, /Kids entry not a dictionary\n) print
+ pop pop 0 exit
+ } ifelse
+ } forall
+} bind def
+
+/.ExtractLeafs
+{
+ {
+ oforce dup /Nums knownoget {
+ exch pop
+ dup length 1 sub 0 2 3 -1 roll {
+ %% dict array index
+ dup %% dict array index index
+ 2 index exch get %% dict array index
+ 20 string cvs cvn %% dict array index name
+ exch 1 add %% dict array name index+1
+ 2 index exch oget %% dict array name object
+ 3 index %% dict array name object dict
+ 3 1 roll %% dict array dict name object
+ put %% dict array
+ } for
+ pop %% array
+ }{
+ /Kids knownoget {
+ .ExtractLeafs
+ } if
+ } ifelse
+ } forall
+} bind def
+
+/.pdfpagelabels {
+ dup type /dicttype eq {
+ dup /Nums knownoget {
+ exch pop
+ mark exch
+ 0 1 2 index length 1 sub {
+ 1 index exch oget
+ exch
+ } for
+ pop
+ counttomark array astore
+ 1 dict dup begin exch /Nums exch def end
+ .pdfcvs
+ mark /pdfpagelabels 3 -1 roll .pdfputparams
+ dup type /booleantype ne {
+ /pdfpagelabels .pdfparamerror
+ } if cleartomark
+ }{
+ /Kids knownoget {
+ dup .CountLeafs dup 1000 ge {
+ (PageLabel tree too complex, ignoring PageLabels\n) print flush
+ pop pop
+ }{
+ dict exch .ExtractLeafs mark exch dup length 0 1 3 -1 roll {
+ dup 20 string cvs cvn %% mark dict index name
+ 2 index exch .knownget{
+ %% mark ... dict index object
+ 3 -1 roll %% mark ... index object dict
+ }{
+ pop
+ }ifelse
+ } for
+ pop
+ counttomark array astore
+ 1 dict dup begin exch /Nums exch def end
+ .pdfcvs
+ mark /pdfpagelabels 3 -1 roll .pdfputparams
+ dup type /booleantype ne {
+ /pdfpagelabels .pdfparamerror
+ } if cleartomark
+ }ifelse
+ }{
+ (Invalid number tree in PageLabels, ignoring PageLabels\n) print flush
+ }ifelse
+ }ifelse
+ }{
+ /pdfpagelabels .pdfparamerror
+ } ifelse
+} bind def
+
+/pdfmark { % -mark- <key> <value> ... <markname> pdfmark -
+ counttomark 0 eq {
+ /pdfmark /stackunderflow signalerror
+ } if
+ dup type /nametype eq not {
+ /pdfmark /typecheck signalerror
+ } if
+ dup /SP eq {
+ % A hack for synchronizing the clipping path.
+ gsave
+ [1 0 0 1 0 0] setmatrix 0 setlinewidth
+ newpath -3 -3 moveto closepath stroke % Paints outside the device bbox.
+ grestore
+ } if
+ dup /PS eq systemdict /PDFX .knownget not { //false } if
+ systemdict /PDFA .knownget not { //false }{0 eq {//false}{//true} ifelse} ifelse or and {
+ % Execute it since PDF/X doesn't allow to embed it.
+ pop
+ { dup mark eq {
+ pop exit
+ } if
+ 1 index /DataSource eq {
+ exch pop
+ cvx exec
+ } {
+ pop pop
+ } ifelse
+ } loop
+ } {
+ counttomark 1 add copy
+ //.pdfmarkparams 1 index .knownget { exec } { .pdfcvsall } ifelse
+ mark /pdfmark 3 -1 roll .pdfputparams
+ dup type /booleantype ne {
+ /pdfmark .pdfparamerror
+ } if cleartomark
+ } ifelse
+} odef
+userdict /pdfmark .undef
+currentdict /.pdfmarkparams .undef
+
+% <dict> .hook_DSC_Creator -
+/.pdf_hook_DSC_Creator
+{
+ % If the Creator is PScript5.dll, disable the 32 /FontType resource for
+ % handling GlyphNames2Unicode. Since /FontType category can't redefine,
+ % we can do only with redefining the operator 'resourcestatus'.
+ systemdict /.pdf_hooked_DSC_Creator .knownget
+ {
+ {//false}{//true} ifelse
+ }
+ {
+ //true
+ } ifelse
+
+ {
+ /WantsToUnicode /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //true
+ }ifelse
+ {
+ /Creator .knownget {
+ (PScript5.dll) search {
+ pop pop
+ systemdict /resourcestatus dup
+ { dup /FontType eq 2 index 32 eq and {
+ pop pop //false
+ } {
+ resourcestatus
+ } ifelse
+ } bind .makeoperator .forceput
+ systemdict /.pdf_hooked_DSC_Creator //true .forceput
+ } if
+ pop
+ } if
+ } {
+ pop
+ } ifelse
+ }
+ {
+ pop
+ } ifelse
+}
+bind def
+
+% Use the DSC processing hook to pass DSC comments to the driver.
+% We use a pseudo-parameter named DSC whose value is an array:
+% /key1 (value1) ... /type
+/.pdfdsc_dict 2 dict def
+/.pdfdsc { % <file> <DSC string> <dsc dict> [<prev proc>] .pdfdsc -
+ 0 get dup //null ne { 4 copy exch pop exec pop } { pop } ifelse 3 -1 roll pop
+ % Stack: <dsc string> <dsc dict>
+ 20 .localvmdict 1 index { 3 copy put pop pop } forall
+ 3 -1 roll .parse_dsc_comments % <dsc dict> <dict> <type>
+ 1 index //.pdf_hook_DSC_Creator exec
+ dup /NOP ne 2 index length 1 gt or { % Skip unparsed comments
+ PDFWRDEBUG { (**** DSC comment: ) print dup //== exec 1 index === flush } if
+ exch mark 4 1 roll {
+ % mark <key1> <value1> ... <dsc dict> <type> <key> <value>
+ 3 index 2 index known { % Skip the DSC_struct entry
+ pop pop
+ } {
+ .pdfcvs 4 -2 roll
+ } ifelse
+ } forall exch pop counttomark .localvmarray astore
+ mark /DSC 3 -1 roll .pdfputparams
+ dup type /booleantype ne {
+ /DSC .pdfparamerror
+ } {
+ cleartomark
+ } ifelse
+ } {
+ pop pop pop
+ } ifelse
+} bind def
+currentdict /.pdf_hook_DSC_Creator undef
+/.initialize_dsc_parser where {
+ pop
+ 3000 % priority
+ {
+ currentglobal //true setglobal
+ 2 dict dup .initialize_dsc_parser readonly
+ currentuserparams /ProcessDSCComment get
+ 1 array astore % in case the value is executable
+ //.pdfdsc /exec load 4 array astore cvx readonly
+ << /ProcessDSCComment 3 -1 roll >> setuserparams
+ setglobal
+ } bind .schedule_init
+} if
+
+% ---------------- {set,current}distillerparams ---------------- %
+
+% Define setdistillerparams / currentdistillerparams.
+% Distiller parameters are currently treated as device parameters.
+/.distillerparamkeys mark
+ % General parameters -- all distillers
+ /ASCII85EncodePages { }
+ /AutoRotatePages { }
+ /Binding { }
+ /CompressPages { }
+ /DefaultRenderingIntent { }
+ /DetectBlends { }
+ /DoThumbnails { }
+ /ImageMemory { }
+ /LockDistillerParams { }
+ /LZWEncodePages { }
+ /OPM { }
+ /PreserveHalftoneInfo { }
+ /PreserveOPIComments { }
+ /PreserveOverprintSettings { }
+ /TransferFunctionInfo { }
+ /UCRandBGInfo { }
+ /UseFlateCompression { }
+ % General parameters -- PDF writer
+ % StartPage and EndPage are renamed because EndPage
+ % clashes with a page device parameter.
+ /CoreDistVersion { }
+ /CompatibilityLevel { }
+ % ****** NOTE: StartPage and EndPage are disabled because
+ % ****** EndPage clashes with a page device parameter.
+% /EndPage { exch pop /PDFEndPage exch }
+ /PDFEndPage { pop pop }
+% /StartPage { exch pop /PDFStartPage exch }
+ /PDFStartPage { pop pop }
+ /Optimize { }
+ /ParseDSCCommentsForDocInfo { }
+ /ParseDSCComments { }
+ /EmitDSCWarnings { }
+ /CreateJobTicket { }
+ /PreserveEPSInfo { }
+ /AutoPositionEPSFiles { }
+ /PreserveCopyPage { }
+ /UsePrologue { }
+ /OffOptimizations { }
+ % PDF/X parameters
+ /PDFXTrimBoxToMediaBoxOffset { }
+ /PDFXSetBleedBoxToMediaBox { }
+ /PDFXBleedBoxToTrimBoxOffset { }
+ % Color sampled image parameters
+ /ColorACSImageDict { }
+ /AntiAliasColorImages { }
+ /AutoFilterColorImages { }
+ /ColorImageDepth { }
+ /ColorImageDict { }
+ /DownsampleColorImages { }
+ /ColorImageDownsampleThreshold { }
+ /ColorImageDownsampleType { }
+ /ColorImageAutoFilterStrategy { }
+ /EncodeColorImages { }
+ /ColorImageFilter { }
+ /ColorImageResolution { }
+ % Color processing parameters
+ /CalCMYKProfile { }
+ /CalGrayProfile { }
+ /CalRGBProfile { }
+ /sRGBProfile { }
+ /ColorConversionStrategy { }
+ /ConvertCMYKImagesToRGB { }
+ /ConvertImagesToIndexed { }
+ % Grayscale sampled image parameters
+ /GrayACSImageDict { }
+ /AntiAliasGrayImages { }
+ /AutoFilterGrayImages { }
+ /GrayImageDepth { }
+ /GrayImageDict { }
+ /DownsampleGrayImages { }
+ /GrayImageDownsampleThreshold { }
+ /GrayImageDownsampleType { }
+ /GrayImageAutoFilterStrategy { }
+ /EncodeGrayImages { }
+ /GrayImageFilter { }
+ /GrayImageResolution { }
+ % Monochrome sampled image parameters
+ /AntiAliasMonoImages { }
+ /MonoImageDepth { }
+ /MonoImageDict { }
+ /DownsampleMonoImages { }
+ /MonoImageDownsampleThreshold { }
+ /MonoImageDownsampleType { }
+ /EncodeMonoImages { }
+ /MonoImageFilter { }
+ /MonoImageResolution { }
+ % Font embedding parameters
+ /AlwaysEmbed
+ { dup length 0 gt
+ { dup 0 get type /booleantype eq } { //false } ifelse
+ { dup 0 get
+ { dup length 1 sub 1 exch getinterval
+ }
+ { dup length 1 sub 1 exch getinterval exch pop /~AlwaysEmbed exch
+ } ifelse
+ }
+ { exch pop /.AlwaysEmbed exch
+ } ifelse
+ }
+ /NeverEmbed
+ { dup length 0 gt
+ { dup 0 get type /booleantype eq } { //false } ifelse
+ { dup 0 get
+ { dup length 1 sub 1 exch getinterval
+ }
+ { dup length 1 sub 1 exch getinterval exch pop /~NeverEmbed exch
+ } ifelse
+ }
+ { exch pop /.NeverEmbed exch
+ } ifelse
+ }
+ /CannotEmbedFontPolicy { }
+ /EmbedAllFonts { }
+ /MaxSubsetPct { }
+ /SubsetFonts { }
+ /DSCEncodingToUnicode { }
+ /PSDocOptions { }
+ /PSPageOptions { }
+.dicttomark readonly def
+/.distillerdevice
+ {
+ % Check to see if the current device is a Distiller
+ % and return it if so.
+ /IsDistiller /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ { currentdevice }
+ { /pdfwrite finddevice }
+ ifelse
+ } bind def
+
+% Some badly designed PostScript files only expect the current/set
+% distillerparams operators to exist in a distiller. Since we have
+% this as a runtime option, we enable these operators IFF the
+% currentdevice is pdfwrite. Also, we mask their existence in
+% systemdict so that 'where' and 'known' don't show them unless
+% the currentdevice is pdfwrite.
+/.setdistillerparams { % <dict> setdistillerparams -
+ .distillerdevice //null //false mark 4 index {
+ //.distillerparamkeys 2 index .knownget { exec } { pop pop } ifelse
+ } forall .putdeviceparamsonly
+ dup type /booleantype ne {
+ /setdistillerparams .pdfparamerror
+ } {
+ pop pop pop
+ } ifelse
+} odef
+/.currentdistillerparams { % - currentdistillerparams <dict>
+ .distillerdevice //.distillerparamkeys .getdeviceparams .dicttomark
+ % Patch StartPage and EndPage
+ % ****** NOTE: StartPage and EndPage are disabled because
+ % ****** EndPage clashes with a page device parameter.
+% begin /StartPage PDFStartPage /EndPage PDFEndPage
+% currentdict dup /PDFStartPage undef /PDFEndPage undef
+% def def currentdict end
+} odef
+/setdistillerparams {
+ % Check to see if the current device is a Distiller
+ /IsDistiller /GetDeviceParam .special_op {
+ exch pop not
+ }{
+ //true
+ }ifelse
+ {
+ /setdistillerparams /undefined signalerror
+ } if
+ .setdistillerparams
+} bind odef
+/currentdistillerparams {
+ % Check to see if the current device is a Distiller
+ /IsDistiller /GetDeviceParam .special_op {
+ exch pop not
+ }{
+ //true
+ }ifelse
+ {
+ /currentdistillerparams /undefined signalerror
+ } if
+ .currentdistillerparams
+} bind odef
+
+% Patch 'where' so that the distiller operators are only visible
+% if the pdfwrite device is the current one.
+{
+ % Check to see if the current device is a Distiller
+ /IsDistiller /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ {
+ .where
+ } {
+ .where pop dup //systemdict eq { pop //false } { //true } ifelse
+ } ifelse
+} bind
+{ /currentdistillerparams /setdistillerparams /pdfmark }
+{ .wheredict exch 2 index put } forall pop
+
+% Patch 'known' to hide the systemdict version of distiller operators
+% unless the currentdevice is pdfwrite.
+/known {
+ /currentdistillerparams 1 index eq /setdistillerparams 2 index eq or
+ /pdfmark 2 index eq or {
+ systemdict 2 index eq { % only mask the operator in systemdict
+ known
+ % Check to see if the current device is a Distiller
+ /IsDistiller /GetDeviceParam .special_op {
+ exch pop not
+ }{
+ //true
+ }ifelse
+ { pop false } if
+ } {
+ known
+ } ifelse
+ } {
+ known
+ } ifelse
+} .bind odef
+
+% Create a table for translation DSC comments into Unicode UTF-16
+/.make_DSC_translation_table { % <encoding> .make_DSC_translation_table <array>
+ dup type /stringtype eq {
+ cvn
+ } if
+ dup type /nametype eq {
+ /Encoding findresource
+ } if
+ dup length array exch % [out] [in]
+ 0 1 2 index length 1 sub { % [out] [in] i
+ dup 2 index exch get % [out] [in] i n
+ dup dup //null eq exch /.notdef eq or {
+ pop -1
+ } {
+ dup //AdobeGlyphList exch .knownget { % [out] [in] i n c
+ dup type dup /arraytype eq exch /packedarraytype eq or {
+ 0 get % fixme: using the 1st char
+ } if
+ exch pop % [out] [in] i c
+ } { % [out] [in] i n
+ (DSCEncoding defines a character that is not in AdobeGlyphList : )
+ exch .namestring concatstrings =
+ /.make_DSC_translation_table cvx /undefined signalerror
+ } ifelse
+ } ifelse
+ 3 index % [out] [in] i c [out]
+ 3 1 roll put % [out] [in]
+ } for
+ pop % [out]
+} bind def
+
+1000 % priority
+{
+ % Note, this may not work if the initial device is not pdfwrite
+ % and may require the use of -dProvideUnicode on the command line.
+ % Check to see if the current device wants ToUnicode info
+ /WantsToUnicode /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ systemdict /ProvideUnicode .knownget not { //false } if or
+ {
+ currentglobal true setglobal
+ systemdict /.setupUnicodeDecoder known {
+ /Unicode /Decoding resourcestatus {
+ pop pop
+ /Unicode /Decoding findresource
+ .setupUnicodeDecoder
+ } {
+ QUIET not {
+ (WARNING: /Unicode /Decoding resource is not accessible but it is useful for generating ToUnicode CMap.) =
+ } if
+ } ifelse
+ } if
+ setglobal
+ } if
+} bind .schedule_init
+
+1010 % priority
+{
+ % Set a predefined configuration in the distiller device (pdfwrite)
+ /PDFSETTINGS where {
+ pop /PDFSETTINGS load
+ } {
+ % We use the presence of the OPDFRead key as a proxy for a pdfwrite-family device
+ /ForOPDFRead /GetDeviceParam .special_op {
+ % Get rid of the OPDFRead key
+ exch pop
+ % and then check the value to see if its pdfwrite or ps2write
+ { /PSL2Printer } { /default } ifelse
+ } {
+ /default
+ } ifelse
+ } ifelse
+ .distillersettings exch get
+ % Don't override parameters defined on the command line.
+ dup length .distillercommon length add dict begin
+ .distillercommon 2 {
+ {
+ systemdict 2 index known { pop pop } { def } ifelse
+ } forall
+ } repeat
+ % We use the presence of the OPDFRead key as a proxy for a pdfwrite-family device
+ /ForOPDFRead /GetDeviceParam .special_op {
+ % Get rid of the OPDFRead key
+ exch pop
+ % Then check to see if OPDFRead is true or not
+ not {
+ systemdict /PDFX known systemdict /PDFA known or {
+ /DSCEncoding where {
+ /DSCEncoding get .make_DSC_translation_table
+ /DSCEncodingToUnicode exch def
+ } if
+ } if
+ } if
+ } if
+ currentdict end .setdistillerparams
+ .distillerdevice //null //false mark .putdeviceparams
+ dup type /booleantype eq not { cleartomark pop } if pop pop
+} bind .schedule_init
+
+2000 % priority
+{ % Note, this may not work if the initial device is not pdfwrite
+ % We use the presence of the OPDFRead key as a proxy for a pdfwrite-family device
+ /ForOPDFRead /GetDeviceParam .special_op {
+ % Get rid of the OPDFRead key and value
+ pop pop
+ % Inform the device with initial graphic state. See gdev_pdf_fill_path.
+ newpath fill
+ } if
+} bind .schedule_init
+
+.setlanguagelevel
+
+%END PDFWR
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_res.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_res.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_res.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1161 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Initialization file for Level 2 resource machinery.
+% When this is run, systemdict is still writable,
+% but (almost) everything defined here goes into level2dict.
+
+level2dict begin
+
+(BEGIN RESOURCES) VMDEBUG
+
+% We keep track of (global) instances with another entry in the resource
+% dictionary, an .Instances dictionary. For categories with implicit
+% instances, the values in .Instances are the same as the keys;
+% for other categories, the values are [instance status size].
+
+% Note that the dictionary that defines a resource category is stored
+% in global VM. The PostScript manual says that each category must
+% manage global and local instances separately. However, objects in
+% global VM other than systemdict can't reference objects in local VM.
+% This means that the resource category dictionary, which would otherwise be
+% the obvious place to keep track of the instances, can't be used to keep
+% track of local instances. Instead, we define a dictionary in local VM
+% called localinstancedict, in which the key is the category name and
+% the value is the analogue of .Instances for local instances.
+
+% We don't currently implement automatic resource unloading.
+% When and if we do, it should be hooked to the garbage collector.
+% However, Ed Taft of Adobe says their interpreters don't implement this
+% either, so we aren't going to worry about it for a while.
+
+currentglobal //false setglobal systemdict begin
+ /localinstancedict 5 dict
+ .forcedef % localinstancedict is local, systemdict is global
+end //true setglobal
+/.emptydict 0 dict readonly def
+setglobal
+
+% Resource category dictionaries have the following keys (those marked with
+% * are optional):
+% Standard, defined in the Red Book:
+% Category (name)
+% *InstanceType (name)
+% DefineResource
+% <key> <instance> DefineResource <instance>
+% UndefineResource
+% <key> UndefineResource -
+% FindResource
+% <key> FindResource <instance>
+% ResourceStatus
+% <key> ResourceStatus <status> <size> true
+% <key> ResourceStatus false
+% ResourceForAll
+% <template> <proc> <scratch> ResourceForAll -
+% *ResourceFileName
+% <key> <scratch> ResourceFileName <filename>
+% Additional, specific to our implementation:
+% .Instances (dictionary)
+% .LocalInstances
+% - .LocalInstances <dict>
+% .GetInstance
+% <key> .GetInstance <instance> -true-
+% <key> .GetInstance -false-
+% .CheckResource
+% <key> <value> .CheckResource <key> <value> <ok>
+% (or may give an error if not OK)
+% .DoLoadResource
+% <key> .DoLoadResource <key> (may give an error)
+% .LoadResource
+% <key> .LoadResource - (may give an error)
+% .ResourceFile
+% <key> .ResourceFile <file> -true-
+% <key> .ResourceFile <key> -false-
+% .ResourceFileStatus
+% <key> .ResourceFileStatus 2 <vmusage> -true-
+% <key> .ResourceFileStatus -false-
+% All the above procedures expect that the top dictionary on the d-stack
+% is the resource dictionary.
+
+% Define enough of the Category category so we can define other categories.
+% The dictionary we're about to create will become the Category
+% category definition dictionary.
+
+% .findcategory and .resourceexec are only called from within the
+% implementation of the resource 'operators', so they don't have to worry
+% about cleaning up the stack if they fail (the interpreter's stack
+% protection machinery for pseudo-operators takes care of this).
+% Note that all places that look up categories must use .findcategory
+% so that the command in case of error will be correct rather than an
+% internal invocation of findresource.
+/.findcategory { % <name> .findcategory -
+ % (pushes the category on the dstack)
+ /Category .findresource begin % note: *not* findresource
+} bind def
+
+% If an error occurs within the logic of a resource operator (after operand
+% acquisition and checking), the Adobe interpreters report the operator name,
+% not the operator object, as the command in $error. For this reason, and
+% this reason only, all resource operators must wrap their logic code in
+% /<opername> cvx { ...logic... } .errorexec
+
+% The Category resource signals /undefined rather than /undefinedresource,
+% both when referenced implicitly (to look up the category for a general
+% resource operation) and when it is accessed directly (/Category /xxx
+% findresource). Because of this, all resource operators must use
+% .undefinedresource rather than signalling undefinedresource directly.
+/.undefinedresource { % <command> .undefinedresource -
+ /Category dup load eq { /undefined } { /undefinedresource } ifelse
+ signaloperror
+} bind def
+
+/.resourceexec { % <key> /xxxResource .resourceexec -
+ % (also pops the category from the dstack)
+ load exec end
+} bind def
+
+% .getvminstance treats instances on disk as undefined.
+/.getvminstance { % <key> .getvminstance <instance> -true-
+ % <key> .getvminstance -false-
+ .GetInstance {
+ dup 1 get 2 ne { //true } { pop //false } ifelse
+ } {
+ //false
+ } ifelse
+} bind def
+
+20 dict begin
+
+ % Standard entries
+
+/Category /Category def
+/InstanceType /dicttype def
+
+/DefineResource {
+ .CheckResource {
+ dup /Category 3 index cvlit .growput
+ dup [ exch 0 -1 ] exch
+ .Instances 4 2 roll put
+ % Make the Category dictionary read-only. We will have to
+ % use .forceput / .forcedef later to replace the dummy,
+ % empty .Instances dictionary with the real one later.
+ readonly
+ } {
+ /defineresource cvx /typecheck signaloperror
+ } ifelse
+} bind def
+/FindResource % (redefined below)
+ { .Instances exch get 0 get
+ } bind def
+
+ % Additional entries
+
+/.Instances 30 dict def
+.Instances /Category [currentdict 0 -1] put
+
+/.LocalInstances 0 dict def
+/.GetInstance
+ { .Instances exch .knownget
+ } bind def
+/.CheckResource
+ { dup gcheck currentglobal and
+ { /DefineResource /FindResource /ResourceForAll /ResourceStatus
+ /UndefineResource }
+ { 2 index exch known and }
+ forall
+ not { /defineresource cvx /invalidaccess signaloperror } if
+ //true
+ } bind def
+
+.Instances end begin % for the base case of findresource
+
+(END CATEGORY) VMDEBUG
+
+% Define the resource operators. We use the "stack protection" feature of
+% odef to make sure the stacks are restored properly on an error.
+% This requires that the operators not pop anything from the stack until
+% they have executed their logic successfully. We can't make this
+% work for resourceforall, because the procedure it executes mustn't see
+% the operands of resourceforall on the stack, but we can make it work for
+% the others.
+
+% findresource is the only operator that needs to bind //Category.
+% We define its contents as a separate procedure so that .findcategory
+% can use it without entering another level of pseudo-operator.
+/.findresource { % <key> <category> findresource <instance>
+ 2 copy dup /Category eq
+ { pop //Category 0 get begin } { .findcategory } ifelse
+ /FindResource .resourceexec exch pop exch pop
+} bind
+end % .Instances of Category
+def
+/findresource {
+ % See above re .errorexec.
+ 1 .argindex % also catch stackunderflow
+ dup type /stringtype eq { cvn } if % for CET 23-13-04
+ 3 1 roll exch pop
+ dup type /nametype ne {
+ /findresource .systemvar /typecheck signalerror
+ } if
+ /findresource cvx //.findresource .errorexec
+} odef
+
+/defineresource { % <key> <instance> <category> defineresource <instance>
+ 2 .argindex 2 index 2 index % catch stackunderflow
+ % See above re .errorexec.
+ /defineresource cvx {
+ .findcategory
+ currentdict /InstanceType known {
+ dup type InstanceType ne {
+ dup type /packedarraytype eq InstanceType /arraytype eq and
+ not { /defineresource cvx /typecheck signaloperror } if
+ } if
+ } if
+ /DefineResource .resourceexec
+ 4 1 roll pop pop pop
+ } .errorexec
+} bind odef
+% We must prevent resourceforall from automatically restoring the stacks,
+% because we don't want the stacks restored if proc causes an error or
+% executes a 'stop'. On the other hand, resourceforall is defined in the
+% PLRM as an operator, so it must have type /operatortype. We hack this
+% by taking advantage of the fact that the interpreter optimizes tail
+% calls, so stack protection doesn't apply to the very last token of an
+% operator procedure.
+/resourceforall1 { % <template> <proc> <scratch> <category> resourceforall1 -
+ dup .findcategory
+ /ResourceForAll load
+ % Stack: <template> <proc> <scratch> <category> proc
+ exch pop % pop the category
+ exec end
+} bind def
+/resourceforall { % <template> <proc> <scratch> <category> resourceforall1 -
+ //resourceforall1 exec % see above
+} bind odef
+/resourcestatus { % <key> <category> resourcestatus <status> <size> true
+ % <key> <category> resourcestatus false
+ {
+ 0 .argindex type /nametype ne {
+ % CET 23-26 wants typecheck here, not undefineresource that happens
+ % without the check.
+ /resourcestatus cvx /typecheck signalerror
+ } if
+ 2 copy .findcategory /ResourceStatus .resourceexec
+ { 4 2 roll pop pop //true } { pop pop //false } ifelse
+ } stopped {
+ % Although resourcestatus is an operator, Adobe uses executable name
+ % for error reporting. CET 23-26
+ /resourcestatus cvx $error /errorname get signalerror
+ } if
+} bind odef
+/undefineresource { % <key> <category> undefineresource -
+ 0 .argindex type /nametype ne {
+ /undefinedresource cvx /typecheck signaloperror
+ } if
+ 1 .argindex 1 index % catch stackunderflow
+
+ { .findcategory /UndefineResource .resourceexec pop pop
+ } stopped {
+ % Although undefineresource is an operator, Adobe uses executable name
+ % here but uses operator for the errors above. CET 23-33
+ /undefineresource cvx $error /errorname get signalerror
+ } if
+} bind odef
+
+% Define the system parameters used for the Generic implementation of
+% ResourceFileName.
+systemdict begin
+
+% - .default_resource_dir <string>
+/.default_resource_dir {
+ /LIBPATH .systemvar {
+ dup .file_name_current eq {
+ pop
+ } {
+ (Resource) search {
+ exch concatstrings
+ exch pop
+ .file_name_separator concatstrings exit
+ } {
+ pop
+ } ifelse
+ } ifelse
+ } forall
+} bind def
+
+% <path> <name> <string> .resource_dir_name <path> <name> <string>
+/.resource_dir_name
+{ systemdict 2 index .knownget {
+ exch pop
+ systemdict 1 index undef
+ } {
+ dup () ne {
+ .file_name_directory_separator concatstrings
+ } if
+ 2 index exch //false .file_name_combine not {
+ (Error: .default_resource_dir returned ) print exch print ( that can't combine with ) print =
+ /.default_resource_dir cvx /configurationerror signalerror
+ } if
+ } ifelse
+} bind def
+
+currentdict /pssystemparams known not {
+ /pssystemparams 10 dict readonly def
+} if
+pssystemparams begin
+ .default_resource_dir
+ /FontResourceDir (Font) .resource_dir_name
+ readonly .forcedef % pssys'params is r-o
+ /GenericResourceDir () .resource_dir_name
+ readonly .forcedef % pssys'params is r-o
+ pop % .default_resource_dir
+ /GenericResourcePathSep
+ .file_name_separator readonly .forcedef % pssys'params is r-o
+ (%diskFontResourceDir) cvn (/Resource/Font/) readonly .forcedef % pssys'params is r-o
+ (%diskGenericResourceDir) cvn (/Resource/) readonly .forcedef % pssys'params is r-o
+end
+end
+
+% Check if GenericResourceDir presents in LIBPATH.
+
+% The value of GenericResourceDir must end with directory separator.
+% We use .file_name_combine to check it.
+% Comments use OpenVMS syntax, because it is the most complicated case.
+(x) pssystemparams /GenericResourcePathSep get
+(y) concatstrings concatstrings dup length % (x]y) l1
+pssystemparams /GenericResourceDir get dup length exch % (x]y) l1 l2 (dir)
+3 index //true .file_name_combine not {
+ exch
+ (File name ) print print ( cant combine with ) print =
+ /GenericResourceDir cvx /configurationerror signaloperror
+} if
+dup length % (x]y) l1 l2 (dir.x]y) l
+4 2 roll add % (x]y) (dir.x]y) l ll
+ne {
+ (GenericResourceDir value does not end with directory separator.\n) =
+ /GenericResourceDir cvx /configurationerror signaloperror
+} if
+pop pop
+
+pssystemparams dup /GenericResourceDir get exch /GenericResourcePathSep get
+(Init) exch (gs_init.ps) concatstrings concatstrings concatstrings
+status {
+ pop pop pop pop
+} {
+ (\n*** Warning: GenericResourceDir doesn't point to a valid resource directory.) =
+ ( the -sGenericResourceDir=... option can be used to set this.\n) =
+ flush
+} ifelse
+
+% Define the generic algorithm for computing resource file names.
+/.rfnstring 8192 string def
+/.genericrfn % <key> <scratch> <prefix> .genericrfn <filename>
+ { 3 -1 roll //.rfnstring cvs concatstrings exch copy
+ } bind def
+
+% Define the Generic category.
+
+/Generic mark
+
+ % Standard entries
+
+% We're still running in Level 1 mode, so dictionaries won't expand.
+% Leave room for the /Category entry.
+/Category //null
+
+% Implement the body of Generic resourceforall for local, global, and
+% external cases. 'args' is [template proc scratch resdict].
+/.enumerateresource { % <key> [- <proc> <scratch>] .enumerateresource -
+ 1 index type dup /stringtype eq exch /nametype eq or {
+ exch 1 index 2 get cvs exch
+ } if
+ % Use .setstackprotect to prevent the stacks from being restored if
+ % an error occurs during execution of proc.
+ 1 get //false .setstackprotect exec //true .setstackprotect
+} bind def
+/.localresourceforall { % <key> <value> <args> .localr'forall -
+ exch pop
+ 2 copy 0 get .stringmatch { .enumerateresource } { pop pop } ifelse
+} bind def
+/.globalresourceforall { % <key> <value> <args> .globalr'forall -
+ exch pop
+ 2 copy 0 get .stringmatch {
+ dup 3 get begin .LocalInstances end 2 index known not {
+ .enumerateresource
+ } {
+ pop pop
+ } ifelse
+ } {
+ pop pop
+ } ifelse
+} bind def
+/.externalresourceforall { % <filename> <len> <args> .externalr'forall -
+ 3 1 roll 1 index length 1 index sub getinterval exch
+ dup 3 get begin .Instances .LocalInstances end
+ % Stack: key args insts localinsts
+ 3 index known {
+ pop pop pop
+ } {
+ 2 index known { pop pop } { .enumerateresource } ifelse
+ } ifelse
+} bind def
+
+/DefineResource {
+ .CheckResource
+ { dup [ exch 0 -1 ]
+ % Stack: key value instance
+ currentglobal
+ { //false setglobal 2 index UndefineResource % remove local def if any
+ //true setglobal
+ .Instances dup //.emptydict eq {
+ pop 3 dict
+ % As noted above, Category dictionaries are read-only,
+ % so we have to use .forcedef here.
+ /.Instances 1 index .forcedef % Category dict is read-only
+ } if
+ }
+ { .LocalInstances dup //.emptydict eq
+ { pop 3 dict localinstancedict Category 2 index put
+ }
+ if
+ }
+ ifelse
+ % Stack: key value instance instancedict
+ 3 index 2 index .growput
+ % Now make the resource value read-only.
+ 0 2 copy get { readonly } .internalstopped pop
+ dup 4 1 roll put exch pop exch pop
+ }
+ { /defineresource cvx /typecheck signaloperror
+ }
+ ifelse
+} .bind executeonly % executeonly to prevent access to .forcedef
+/UndefineResource
+ { { dup 2 index .knownget
+ { dup 1 get 1 ge
+ { dup 0 //null put 1 2 put pop pop }
+ { pop exch .undef }
+ ifelse
+ }
+ { pop pop
+ }
+ ifelse
+ }
+ currentglobal
+ { 2 copy .Instances exch exec
+ }
+ if .LocalInstances exch exec
+ } bind
+% Because of some badly designed code in Adobe's CID font downloader that
+% makes findresource and resourcestatus deliberately inconsistent with each
+% other, the default FindResource must not call ResourceStatus if there is
+% an instance of the desired name already defined in VM.
+/FindResource {
+ dup //null eq {
+ % CET 13-06 wants /typecheck for "null findencoding" but
+ % .knownget doesn't fail on null
+ /findresource cvx /typecheck signaloperror
+ } if
+ dup .getvminstance {
+ exch pop 0 get
+ } {
+ dup ResourceStatus {
+ pop 1 gt {
+ .DoLoadResource .getvminstance not {
+ /findresource cvx .undefinedresource
+ } if 0 get
+ } {
+ .GetInstance pop 0 get
+ } ifelse
+ } {
+ /findresource cvx .undefinedresource
+ } ifelse
+ } ifelse
+} bind
+% Because of some badly designed code in Adobe's CID font downloader, the
+% definition of ResourceStatus for Generic and Font must be the same (!).
+% We patch around this by using an intermediate .ResourceFileStatus procedure.
+/ResourceStatus {
+ dup .GetInstance {
+ exch pop dup 1 get exch 2 get //true
+ } {
+ .ResourceFileStatus
+ } ifelse
+} bind
+/.ResourceFileStatus {
+ .ResourceFile { closefile 2 -1 //true } { pop //false } ifelse
+} bind
+/ResourceForAll {
+ % Construct a new procedure to hold the arguments.
+ % All objects constructed here must be in local VM to avoid
+ % a possible invalidaccess.
+ currentdict 4 .localvmpackedarray % [template proc scratch resdict]
+ % We must pop the resource dictionary off the dict stack
+ % when doing the actual iteration, and restore it afterwards.
+ .currentglobal not {
+ .LocalInstances length 0 ne {
+ % We must do local instances, and do them first.
+ //.localresourceforall {exec} 0 get 3 .localvmpackedarray cvx
+ .LocalInstances exch {forall} 0 get 1 index 0 get
+ currentdict end 3 .execn begin
+ } if
+ } if
+ % Do global instances next.
+ //.globalresourceforall {exec} 0 get 3 .localvmpackedarray cvx
+ .Instances exch cvx {forall} 0 get 1 index 0 get
+ currentdict end 3 .execn begin
+ mark % args [
+ Category .namestring .file_name_separator concatstrings
+ 2 index 0 get % args [ (c/) (t)
+ 1 index length 3 1 roll % args [ l (c/) (t)
+ concatstrings % args [ l (c/t)
+ [
+ //true /LIBPATH .systemvar 3 index
+ .generate_dir_list_templates_with_length % args (t) [ l [(pt) Lp ...]
+ % also add on the Resources as specified by the GenericResourceDir
+ //true [ currentsystemparams /GenericResourceDir get]
+ counttomark 1 add index .generate_dir_list_templates_with_length
+ ] exch pop
+ dup length 1 sub 0 exch 2 exch { % args [ l [] i
+ 2 copy get % args [ l [] i (pt)
+ exch 2 index exch 1 add get % args [ l [] (pt) Lp
+ 3 index add
+ exch % args [ l [] Lp (pt)
+
+ { % args [ l [] Lp (pf)
+ dup length % args [ l [] Lp (pf) Lpf
+ 2 index sub % args [ l [] Lp (pf) Lf
+ 2 index exch % args [ l [] Lp (pf) Lp Lf
+ getinterval cvn dup % args [ l [] Lp /n /n
+ 5 2 roll % args [ /n /n l [] Lp
+ } //.rfnstring filenameforall
+ pop % args [ /n1 /n1 ... /nN /nN l []
+ } for % args [ /n1 /n1 ... /nN /nN l []
+ pop pop
+ .dicttomark % An easy way to exclude duplicates. % args <</n/n>>
+ % {
+ { pop } 0 get
+ 2 index 2 get { cvs 0 } aload pop 5 index
+ //.externalresourceforall {exec} 0 get
+ % }
+ 7 .localvmpackedarray cvx
+ 3 2 roll pop % args
+ { forall } 0 get
+ currentdict end 2 .execn begin
+} bind
+
+/ResourceFileName { % /in (scr) --> (p/c/n)
+ exch //.rfnstring cvs % (scr) (n)
+ /GenericResourcePathSep getsystemparam exch % (scr) (/) (n)
+ Category .namestring % (scr) (/) (n) (c)
+ 3 1 roll % (scr) (c) (/) (n)
+ concatstrings concatstrings % (scr) (c/n)
+ /GenericResourceDir getsystemparam 1 index % (scr) (c/n) (p/) (c/n)
+ concatstrings % (scr) (c/n) (p/c/n)
+ dup status {
+ pop pop pop pop exch pop % (scr) (p/c/n)
+ } {
+ exch
+ .libfile
+ {//true}
+ {
+ pop dup .libfile
+ {//true}
+ {//false}
+ ifelse
+ } ifelse
+
+ {
+ dup .filename pop
+ exch closefile
+ exch pop
+ }
+ {pop}
+ ifelse
+ } ifelse
+ exch copy % (p/c/n)
+} bind
+
+ % Additional entries
+
+% Unfortunately, we can't create the real .Instances dictionary now,
+% because if someone copies the Generic category (which pp. 95-96 of the
+% 2nd Edition Red Book says is legitimate), they'll wind up sharing
+% the .Instances. Instead, we have to create .Instances on demand,
+% just like the entry in localinstancedict.
+% We also have to prevent anyone from creating instances of Generic itself.
+/.Instances //.emptydict
+
+/.LocalInstances
+ { localinstancedict Category .knownget not { //.emptydict } if
+ } bind
+/.GetInstance
+ { currentglobal
+ { .Instances exch .knownget }
+ { .LocalInstances 1 index .knownget
+ { exch pop //true }
+ { .Instances exch .knownget }
+ ifelse
+ }
+ ifelse
+ } bind
+/.CheckResource
+ { //true
+ } bind
+/.vmused {
+ % - .vmused <usedvalue>
+ % usedvalue = vmstatus in global + vmstatus in local.
+ 0 2 {
+ .currentglobal not .setglobal
+ vmstatus pop exch pop add
+ } repeat
+} bind def
+/.DoLoadResource {
+ % .LoadResource may push entries on the operand stack.
+ % It is an undocumented feature of Adobe implementations,
+ % which we must match for the sake of some badly written
+ % font downloading code, that such entries are popped
+ % automatically.
+ count 1 index cvlit .vmused
+ % Stack: key count litkey memused
+ {.LoadResource} 4 1 roll 4 .execn
+ % Stack: ... count key memused
+ .vmused exch sub
+ 1 index .getvminstance not {
+ pop dup .undefinedresource % didn't load
+ } if
+ dup 1 1 put
+ 2 3 -1 roll put
+ % Stack: ... count key
+ exch count 1 sub exch sub {exch pop} repeat
+} bind
+/.LoadResource
+ { dup .ResourceFile
+ { exch pop currentglobal
+ { .runresource }
+ { //true setglobal { .runresource } stopped //false setglobal { stop } if }
+ ifelse
+ }
+ { dup .undefinedresource
+ }
+ ifelse
+ } bind
+/.ResourceFile
+ {
+ Category //.rfnstring cvs length % key l
+ dup //.rfnstring dup length 2 index sub % key l l (buf) L-l
+ 3 2 roll exch getinterval % key l ()
+ .file_name_directory_separator exch copy length add % key l1
+ dup //.rfnstring dup length 2 index sub % key l1 l1 (buf) L-l
+ 3 2 roll exch getinterval % key l1 ()
+ 2 index exch cvs length add % key l2
+ //.rfnstring exch 0 exch getinterval % key (relative_path)
+ .libfile {
+ exch pop //true
+ } {
+ pop
+ currentdict /ResourceFileName known {
+ mark 1 index //.rfnstring { ResourceFileName } .internalstopped {
+ cleartomark //false
+ } {
+ (r) { file } .internalstopped {
+ cleartomark //false
+ } {
+ exch pop exch pop //true
+ } ifelse
+ } ifelse
+ } {
+ pop //false
+ } ifelse
+ } ifelse
+ } bind
+
+.dicttomark
+/Category defineresource pop
+
+% Fill in the rest of the Category category.
+/Category /Category findresource dup
+/Generic /Category findresource begin {
+ /FindResource /ResourceForAll /ResourceStatus /.ResourceFileStatus
+ /UndefineResource /ResourceFileName
+ /.ResourceFile /.LoadResource /.DoLoadResource
+} { dup load put dup } forall
+pop readonly pop end
+
+(END GENERIC) VMDEBUG
+
+% Define the fixed categories.
+
+mark
+ % Non-Type categories with existing entries.
+ /ColorSpaceFamily
+ { } % These must be deferred, because optional features may add some.
+ /Emulator
+ mark EMULATORS { <00> search { exch pop cvn exch }{ cvn exit } ifelse } .bind loop .packtomark
+ /Filter
+ { } % These must be deferred, because optional features may add some.
+ /IODevice
+ % Loop until the .getiodevice gets a rangecheck.
+ errordict /rangecheck 2 copy get
+ errordict /rangecheck { pop stop } put % pop the command
+ mark 0 { {
+ dup .getiodevice dup //null eq { pop } { exch } ifelse 1 add
+ } loop} .internalstopped
+ pop pop pop .packtomark
+ 4 1 roll put
+ .clearerror
+ % Type categories listed in the Red Book.
+ /ColorRenderingType
+ { } % These must be deferred, because optional features may add some.
+ /FMapType
+ { } % These must be deferred, because optional features may add some.
+ /FontType
+ { } % These must be deferred, because optional features may add some.
+ /FormType
+ { } % These must be deferred, because optional features may add some.
+ /HalftoneType
+ { } % These must be deferred, because optional features may add some.
+ /ImageType
+ { } % Deferred, optional features may add some.
+ /PatternType
+ { } % Deferred, optional features may add some.
+ % Type categories added since the Red Book.
+ /setsmoothness where {
+ pop /ShadingType { } % Deferred, optional features may add some.
+ } if
+counttomark 2 idiv
+ { mark
+
+ % Standard entries
+
+ % We'd like to prohibit defineresource,
+ % but because optional features may add entries, we can't.
+ % We can at least require that the key and value match.
+ /DefineResource
+ { currentglobal not
+ { /defineresource cvx /invalidaccess signaloperror }
+ { 2 copy ne
+ { /defineresource cvx /rangecheck signaloperror }
+ { dup .Instances 4 -2 roll .growput }
+ ifelse
+ }
+ ifelse
+ } bind
+ /UndefineResource
+ { /undefineresource cvx /invalidaccess signaloperror } bind
+ /FindResource
+ { .Instances 1 index .knownget
+ { exch pop }
+ { /findresource cvx .undefinedresource }
+ ifelse
+ } bind
+ /ResourceStatus
+ { .Instances exch known { 0 0 //true } { //false } ifelse } bind
+ /ResourceForAll
+ /Generic .findcategory /ResourceForAll load end
+
+ % Additional entries
+
+ counttomark 2 add -1 roll
+ dup length dict dup begin exch { dup def } forall end
+ % We'd like to make the .Instances readonly here,
+ % but because optional features may add entries, we can't.
+ /.Instances exch
+ /.LocalInstances % used by ResourceForAll
+ 0 dict def
+
+ .dicttomark /Category defineresource pop
+ } repeat pop
+
+(END FIXED) VMDEBUG
+
+% Define the other built-in categories.
+
+/.definecategory % <name> -mark- <key1> ... <valuen> .definecategory -
+ { counttomark 2 idiv 2 add % .Instances, Category
+ /Generic /Category findresource dup maxlength 3 -1 roll add
+ dict .copydict begin
+ counttomark 2 idiv { def } repeat pop % pop the mark
+ currentdict end /Category defineresource pop
+ } bind def
+
+/ColorRendering mark /InstanceType /dicttype .definecategory
+% ColorSpace is defined below
+% Encoding is defined below
+% Font is defined below
+/Form mark /InstanceType /dicttype .definecategory
+/Halftone mark /InstanceType /dicttype .definecategory
+/Pattern mark /InstanceType /dicttype .definecategory
+/ProcSet mark /InstanceType /dicttype .definecategory
+% Added since the Red Book:
+/ControlLanguage mark /InstanceType /dicttype .definecategory
+/HWOptions mark /InstanceType /dicttype .definecategory
+/Localization mark /InstanceType /dicttype .definecategory
+/PDL mark /InstanceType /dicttype .definecategory
+% CIDFont, CIDMap, and CMap are defined in gs_cidfn.ps
+% FontSet is defined in gs_cff.ps
+% IdiomSet is defined in gs_ll3.ps
+% InkParams and TrapParams are defined in gs_trap.ps
+
+(END MISC) VMDEBUG
+
+% Define the OutputDevice category.
+/OutputDevice mark
+/InstanceType /dicttype
+/.Instances mark
+%% devicedict is not created yet so here we employ a technique similar to
+%% that used to create it, in order to get the device names. We run a loop
+%% executing .getdevice with incremental numbers until we get an error.
+%% The devicedict creation only stops on a rangecheck, we stop on any error.
+%% We need to use .internalstopped, not stopped or we get an invalidacces
+%% later in this file. Instances of /OutputDevice are dictionaries, and the
+%% only required key is a /PageSize. The array of 4 numbers are minimum to
+%% maximum and are matches for the Adobe Acrobat Distiller values.
+0
+{
+ {dup .getdevice .devicename cvn 1 dict dup /PageSize [1 1 14400 14400] put [exch readonly 0 -1] 3 -1 roll 1 add} loop
+} .internalstopped pop
+%% Remove the count, and the duplicate, from the stack
+pop pop
+.dicttomark
+.definecategory
+
+% Define the ColorSpace category.
+
+/.defaultcsnames mark
+ /DefaultGray 0
+ /DefaultRGB 1
+ /DefaultCMYK 2
+.dicttomark readonly def
+
+% The "hooks" are no-ops here, redefined in LL3.
+/.definedefaultcs { % <index> <value> .definedefaultcs -
+ pop pop
+} bind def
+/.undefinedefaultcs { % <index> .undefinedefaultcs -
+ pop
+} bind def
+
+/ColorSpace mark
+
+/InstanceType /arraytype
+
+% We keep track of whether there are any local definitions for any of
+% the Default keys. This information must get saved and restored in
+% parallel with the local instance dictionary, so it must be stored in
+% local VM.
+userdict /.localcsdefaults //false put
+
+/DefineResource {
+ 2 copy /Generic /Category findresource /DefineResource get exec
+ exch pop
+ exch //.defaultcsnames exch .knownget {
+ 1 index .definedefaultcs
+ currentglobal not { .userdict /.localcsdefaults //true put } if
+ } if
+} bind
+
+/UndefineResource {
+ dup /Generic /Category findresource /UndefineResource get exec
+ //.defaultcsnames 1 index .knownget {
+ % Stack: resname index
+ currentglobal {
+ .undefinedefaultcs pop
+ } {
+ % We removed the local definition, but there might be a global one.
+ exch .GetInstance {
+ 0 get .definedefaultcs
+ } {
+ .undefinedefaultcs
+ } ifelse
+ % Recompute .localcsdefaults by scanning. This is rarely needed.
+ .userdict /.localcsdefaults //false //.defaultcsnames {
+ pop .LocalInstances exch known { pop //true exit } if
+ } forall put
+ } ifelse
+ } {
+ pop
+ } ifelse
+} bind
+
+.definecategory % ColorSpace
+
+% Define the Encoding category.
+
+/Encoding mark
+
+/InstanceType /arraytype
+
+% Handle already-registered encodings, including lazily loaded encodings
+% that aren't loaded yet.
+
+/.Instances mark
+ EncodingDirectory
+ { dup length 256 eq { [ exch readonly 0 -1 ] } { pop [//null 2 -1] } ifelse
+ } forall
+.dicttomark
+
+/.ResourceFileDict mark
+ EncodingDirectory
+ { dup length 256 eq { pop pop } { 0 get } ifelse
+ } forall
+.dicttomark
+
+/ResourceFileName
+ { .ResourceFileDict 2 index .knownget
+ { exch copy exch pop }
+ { /Generic /Category findresource /ResourceFileName get exec }
+ ifelse
+ } bind
+
+.definecategory % Encoding
+
+% Make placeholders in level2dict for the redefined Encoding operators,
+% so that they will be swapped properly when we switch language levels.
+
+/.findencoding /.findencoding load def
+/findencoding /findencoding load def
+/.defineencoding /.defineencoding load def
+
+(END ENCODING) VMDEBUG
+
+% Define the Font category.
+
+/.fontstatusaux { % <fontname> .fontstatusaux <fontname> <found>
+ { % Create a loop context just so we can exit it early.
+ % Check Fontmap.
+ Fontmap 1 index .knownget
+ { //true }
+ { .nativeFontmap 1 index .knownget } ifelse
+
+ {
+ {
+ dup type /nametype eq {
+ .fontstatus { pop //null exit } if
+ } {
+ dup type /stringtype eq {
+ findlibfile { closefile pop //null exit } if pop
+ } {
+ % Procedure, assume success.
+ pop //null exit
+ } ifelse
+ } ifelse
+ } forall dup //null eq { pop //true exit } if
+ } if
+
+
+ dup / eq { //false exit } if % / throws an error from findlibfile
+ % Convert names to strings; give up on other types.
+ dup type /nametype eq { .namestring } if
+ dup type /stringtype ne { //false exit } if
+ % Check the resource directory.
+ dup .fonttempstring /FontResourceDir getsystemparam .genericrfn
+ status {
+ pop pop pop pop //true exit
+ } if
+ % Check for a file on the search path with the same name
+ % as the font.
+ findlibfile { closefile //true exit } if
+ % Scan a FONTPATH directory and try again.
+ .scannextfontdir not { //false exit } if
+ } loop
+} bind def
+
+/.fontstatus { % <fontname> .fontstatus <fontname> <found>
+ //.fontstatusaux exec
+ { //true }
+ {
+ .buildnativefontmap
+ { //.fontstatusaux exec }
+ { //false } ifelse
+ } ifelse
+} bind def
+currentdict /.fontstatusaux .undef
+
+/Font mark
+
+/InstanceType /dicttype
+
+/DefineResource
+ { 2 copy //definefont exch pop
+ /Generic /Category findresource /DefineResource get exec
+ } bind
+/UndefineResource
+ { dup //undefinefont
+ /Generic /Category findresource /UndefineResource get exec
+ } bind
+/FindResource {
+ dup .getvminstance {
+ exch pop 0 get
+ } {
+ dup ResourceStatus {
+ pop 1 gt { .loadfontresource } { .GetInstance pop 0 get } ifelse
+ } {
+ .loadfontresource
+ } ifelse
+ } ifelse
+} bind
+/ResourceForAll {
+ { .scannextfontdir not { exit } if } loop
+ /Generic /Category findresource /ResourceForAll get exec
+} bind
+/.ResourceFileStatus {
+ .fontstatus { pop 2 -1 //true } { pop //false } ifelse
+} bind
+
+/.loadfontresource {
+ dup .vmused exch
+ % Hack: rebind .currentresourcefile so that all calls of
+ % definefont will know these are built-in fonts.
+ currentfile {pop //findfont exec} .execasresource % (findfont is a procedure)
+ exch .vmused exch sub
+ % stack: name font vmused
+ % findfont has the prerogative of not calling definefont
+ % in certain obscure cases of font substitution.
+ 2 index .getvminstance {
+ dup 1 1 put
+ 2 3 -1 roll put
+ } {
+ pop
+ } ifelse exch pop
+} bind
+
+/.Instances FontDirectory length 2 mul dict
+
+.definecategory % Font
+
+% Redefine font "operators".
+/.definefontmap
+ { /Font /Category findresource /.Instances get
+ dup 3 index known
+ { pop
+ }
+ { 2 index
+ % Make sure we create the array in global VM.
+ .currentglobal //true .setglobal
+ [//null 2 -1] exch .setglobal
+ .growput
+ }
+ ifelse
+ //.definefontmap exec
+ } bind def
+
+% Make sure the old definitions are still in systemdict so that
+% they will get bound properly.
+systemdict begin
+ /.origdefinefont /definefont load def
+ /.origundefinefont /undefinefont load def
+ /.origfindfont /findfont load def
+end
+/definefont {
+ { /Font defineresource } stopped {
+ /definefont cvx $error /errorname get signalerror
+ } if
+} bind odef
+/undefinefont {
+ /Font undefineresource
+} bind odef
+% The Red Book requires that findfont be a procedure, not an operator,
+% but it still needs to restore the stacks reliably if it fails.
+/.findfontop {
+ { /Font findresource } stopped {
+ pop /findfont $error /errorname get signalerror
+ } if
+} bind odef
+/findfont {
+ .findfontop
+} bind def % Must be a procedure, not an operator
+
+% Remove initialization utilities.
+currentdict /.definecategory .undef
+currentdict /.emptydict .undef
+
+end % level2dict
+
+% Convert deferred resources after we finally switch to Level 2.
+
+/.fixresources {
+ % Encoding resources
+ EncodingDirectory
+ { dup length 256 eq
+ { /Encoding defineresource pop }
+ { pop pop }
+ ifelse
+ } forall
+ /.findencoding {
+ { /Encoding findresource } stopped {
+ pop /findencoding $error /errorname get signalerror
+ } if
+ } bind def
+ /findencoding /.findencoding load def % must be a procedure
+ /.defineencoding { /Encoding defineresource pop } bind def
+ % ColorRendering resources and ProcSet
+ systemdict /ColorRendering .knownget {
+ /ColorRendering exch /ProcSet defineresource pop
+ systemdict /ColorRendering undef
+ /DefaultColorRendering currentcolorrendering /ColorRendering defineresource pop
+ } if
+ % ColorSpace resources
+ systemdict /CIEsRGB .knownget {
+ /sRGB exch /ColorSpace defineresource pop
+ systemdict /CIEsRGB undef
+ } if
+ systemdict /CIEsRGBICC .knownget {
+ /sRGBICC exch /ColorSpace defineresource pop
+ systemdict /CIEsRGBICC undef
+ } if
+ systemdict /CIEsGRAYICC .knownget {
+ /sGrayICC exch /ColorSpace defineresource pop
+ systemdict /CIEsGRAYICC undef
+ } if
+ % ColorSpaceFamily resources
+ colorspacedict { pop dup /ColorSpaceFamily defineresource pop } forall
+ % Filter resources
+ filterdict { pop dup /Filter defineresource pop } forall
+ % FontType and FMapType resources
+ buildfontdict { pop dup /FontType defineresource pop } forall
+ mark
+ buildfontdict 0 known { 2 3 4 5 6 7 8 } if
+ buildfontdict 9 known { 9 } if
+ counttomark { dup /FMapType defineresource pop } repeat pop
+ % FormType resources
+ .formtypes { pop dup /FormType defineresource pop } forall
+ % HalftoneType resources
+ .halftonetypes { pop dup /HalftoneType defineresource pop } forall
+ % ColorRenderingType resources
+ .colorrenderingtypes {pop dup /ColorRenderingType defineresource pop} forall
+ % ImageType resources
+ .imagetypes { pop dup /ImageType defineresource pop } forall
+ % PatternType resources
+ .patterntypes { pop dup /PatternType defineresource pop } forall
+ % Make the fixed resource categories immutable.
+ /.shadingtypes where {
+ pop .shadingtypes { pop dup /ShadingType defineresource pop } forall
+ } if
+ [ /ColorSpaceFamily /Emulator /Filter /IODevice /ColorRenderingType
+ /FMapType /FontType /FormType /HalftoneType /ImageType /PatternType
+ /.shadingtypes where { pop /ShadingType } if
+ ] {
+ /Category findresource
+ dup /.Instances get readonly pop
+ .LocalInstances readonly pop
+ readonly pop
+ } forall
+ % clean up
+ systemdict /.fixresources undef
+} bind def
+
+%% Replace 1 (gs_resmp.ps)
+(gs_resmp.ps) dup runlibfile VMDEBUG
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_resmp.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,529 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% A procset to redefine a resource category with a resource map.
+
+% Public entries :
+
+% Redefine - a procedure for redefining a resource category with a map.
+% Methods for interpreting the resource map to be provided by client
+% in the argument dictionary.
+%
+% Note that the procedure Redefine is idempotential :
+% consequtive calls to it will not replace the category methods,
+% but will merge resource maps. If an interleaving redefinition
+% needs to cancel the idempotentity, it must remove the entry
+% /.IsRedefinedWithMap from the category dictionary.
+
+% MakeResourceEnumerator - this procedure is useful for
+% redefining any category. It provides a proper order of instances
+% and proper stacks during resourceforall.
+
+% BindWithCurrentdict - a procedure for generating temporary procedures
+% from templates, binding them with a local dictionary.
+
+% execstack_lookup - a procedure for communicating through the execution stack.
+% It allows for a callee to get an information from an indirect caller.
+
+% The procedures are designed for exeution witout putting
+% the procset instance onto the dictionary stack.
+
+languagelevel 2 .setlanguagelevel
+currentglobal //true setglobal
+
+/MappedCategoryRedefiner 10 dict begin % The procset.
+
+currentpacking //false setpacking
+
+/InstanceEnumeratorPattern % - InstanceEnumeratorPattern ...
+{
+ % This is a pattern for enumeration procedure to be built dynamically,
+ % applying BindWithCurrentdict with a temporary dictionary.
+ % The following names will be replaced with specific objects
+ % during BindWithCurrentdict :
+ % en_local_dict - a dictionary for storing the local integer variable 'status'.
+ % scr - the scratch string argument of resourceforall;
+ % proc - the procedure argument of resourceforall;
+ % InstancesStatus - a dictionary that maps resource instance names to their status value;
+ % Category - the category to be enumerated.
+
+ % When this procedure is called from ResourceForAll, the category is the current dictionary.
+ % We remove it from the dictionary stack before performing the enumeration
+ % to provide the <proc> to write to the underlying dictionary,
+ % and put it back after the enumeration is completed.
+ end
+ {
+ 0 1 2 {
+ en_local_dict exch /status exch put
+ InstancesStatus {
+ en_local_dict /status get eq {
+ scr cvs % ... (Font)
+ proc exec %
+ } {
+ pop
+ } ifelse % ...
+ } forall
+ } for % ...
+ } stopped
+ Category begin
+ { stop } if
+} bind def
+
+% An auxiliary proc for BindWithCurrentdict :
+/.BindAux % <proc> BindAux <proc>
+{ 0 exec
+} bind def
+
+setpacking
+
+/BindWithCurrentdict % <proc> BindWithCurrentdict <proc>
+{
+ % Make a copy of the given procedure, binding in the values of all names
+ % defined in currentdict.
+ % Caution1 : this code cannot handle procedures that were already
+ % bound recursively.
+ % Caution2 : this code don't bind packedarrays. This was done
+ % intentionally for a termination of the procedure tree.
+
+ dup length array copy
+ dup length 1 sub -1 0 {
+ 2 copy get % {precopy} i {elem}
+ dup dup type /arraytype eq exch xcheck and {
+ % {precopy} i {elem}
+ //.BindAux exec % {precopy} i {elem_copy}
+ 2 index 3 1 roll put % {precopy}
+ } {
+ dup dup type /nametype eq exch xcheck and {
+ % {precopy} i {elem}
+ currentdict exch .knownget {
+ 2 index 3 1 roll put % {precopy}
+ } {
+ pop
+ } ifelse
+ } {
+ pop pop
+ } ifelse
+ } ifelse % {precopy}
+ } for % {copy}
+ cvx
+} bind def
+
+//.BindAux 0 //BindWithCurrentdict put % bind the recursive call in 'Bind'.
+
+/MakeResourceEnumerator % <proc> <scr> <InstancesStatus> MakeResourceEnumerator <Enumerator>
+{
+ % Build the enumeration procedure :
+
+ % Since the resourceforall procedure may leave values on the operand stack,
+ % we cannot simply store the enumerator's local data on the stack.
+ % We also cannot use a static dictionary to store local variables,
+ % because of possible recursion in the resourceforall procedure.
+ % To work around this, we create a copy of the enumeration procedure and
+ % bind it dynamically with a temporary dictionary, which contains
+ % local variables for the currently executing instance of resourceforall.
+
+ % Always place the enumerator in local VM,
+ % because its elements may be in local VM.
+
+ currentglobal 4 1 roll
+ //false setglobal
+ currentdict % Category
+ 6 dict begin % the temporary dictionary
+ /Category exch def
+ /InstancesStatus exch def
+ /scr exch def
+ /proc exch def
+ /en_local_dict currentdict def
+ //InstanceEnumeratorPattern //BindWithCurrentdict exec % Enumerator
+ /status 0 def % variable for the current status to enumerate - do not bind with it !
+ end
+ exch setglobal
+} bind def
+
+/execstack_lookup % <object> execstack_lookup <object1>
+ % <object> execstack_lookup null
+{ % Checks whether execution stack contains a procedure starting with <object>,
+ % and retrives the 2nd element of the procedure,
+ % or null if the procedure was not found.
+ %
+ % Since 'execstack' actually renders subarrays of procedures,
+ % the pattern for recognition must be like this :
+ %
+ % { <object> <object1>
+ % CallSomething
+ % } loop
+ %
+ % The solution with 'loop' depends on how GS implements cycles,
+ % so it must not appear in documents, which are required to be interpreter independent.
+ % Any other type of cycles are also acceptable.
+ % If no repitition is really needed, just insert 'exit' into its body.
+ % If <object> <object1> are not needed for the caller, insert "pop pop" after them.
+ % If <object1> is really unuseful, the pattern may be simplified :
+ %
+ % { <object> pop
+ % CallSomething
+ % exit
+ % } loop
+ %
+ % It will retrieve 'pop' or 'null'.
+ %
+ % Note that 2 topmost execstack elements are the execstack_lookup procedure and its caller.
+ % We don't check them.
+
+ currentglobal //false setglobal % <object> bGlobal
+ countexecstack array execstack % <object> bGlobal [execstack]
+ dup //null exch % <object> bGlobal [execstack] null [execstack]
+ length 3 sub -1 0 { % <object> bGlobal [execstack] null i
+ 2 index exch get % <object> bGlobal [execstack] null proc
+ dup type dup /packedarraytype eq exch /arraytype eq or {
+ dup rcheck {
+ dup length 1 gt { % <object> bGlobal [execstack] null proc
+ dup 0 get % <object> bGlobal [execstack] null proc elem0
+ 5 index eq { % <object> bGlobal [execstack] null proc
+ 1 get % <object> bGlobal [execstack] null object1
+ exch pop exit % <object> bGlobal [execstack] object1
+ } {
+ pop
+ } ifelse
+ } {
+ pop % <object> bGlobal [execstack] false
+ } ifelse
+ } {
+ pop % <object> bGlobal [execstack] false
+ } ifelse
+ } {
+ pop % <object> bGlobal [execstack] false
+ } ifelse
+ } for % <object> bGlobal [execstack] bResult
+ exch pop exch setglobal exch pop % bResult
+} bind def
+
+currentpacking //false setpacking
+/MethodsToRedefine 5 dict begin
+
+ % Procedures in this dictionary really are patterns for new category methods.
+ % The following names will be replaced with specific objects during BindWithCurrentdict :
+ % .map - the map dictionary;
+ % DefineResource, ResourceStatus, ResourceFileName, FindResource, ResourceForAll
+ % - procedures from the original resource category.
+
+ /FindResource % <Name> FindResource <dict>
+ { RESMPDEBUG { (resmp FindResource beg ) print dup = } if
+ dup ResourceStatus exec {
+ pop 2 lt
+ } {
+ //false
+ } ifelse % bInVirtualMemory
+ { FindResource exec
+ } {
+ dup dup .map exch .knownget { % /Name /Name <<record>>
+ dup dup /RecordVirtualMethods get /IsActive get exec {
+ 1 index .getvminstance { % /Name /Name <<record>> holder
+ 1 get 1 eq
+ } {
+ //true
+ } ifelse % /Name /Name <<record>> bStatusIs1
+ 4 1 roll % bStatusIs1 /Name /Name <<record>>
+ dup /RecordVirtualMethods get /MakeInstance get exec
+ % bStatusIs1 /Name /Name Instance size
+ 5 1 roll % size bStatusIs1 /Name /Name Instance
+ DefineResource exec % size bStatusIs1 /Name Instance
+ % Make ResourceStatus to return correct values for this instance :
+ % Hack: we replace status values in the instance holder :
+ exch .getvminstance pop % size bStatusIs1 Instance holder
+ dup 5 -1 roll 2 exch put % bStatusIs1 Instance holder
+ 3 2 roll { % Instance holder
+ 1 1 put % Instance
+ } {
+ pop
+ } ifelse % Instance
+ } { % /Name /Name <<record>>
+ pop pop FindResource exec
+ } ifelse
+ } { % /Name /Name
+ pop FindResource exec
+ } ifelse
+ } ifelse
+ RESMPDEBUG { (resmp FindResource end) = } if
+ } bind def
+
+ /ResourceStatus % <Name> ResourceStatus <status> <size> true
+ % <Name> ResourceStatus false
+ { RESMPDEBUG { (resmp ResourceStatus beg ) print dup //== exec } if
+ dup ResourceStatus exec { % /Name status size
+ 1 index 2 lt {
+ % In VM - return with it.
+ 3 2 roll pop //true
+ } {
+ % Not in VM.
+ exch pop exch % size /Name
+ dup .map exch .knownget { % size /Name <<record>>
+ dup dup /RecordVirtualMethods get /IsActive get exec {
+ 3 2 roll pop % /Name <<record>>
+ dup /RecordVirtualMethods get /GetSize get exec 2 exch //true
+ } { % size /Name <<record>>
+ pop pop 2 exch //true
+ } ifelse
+ } { % size /Name
+ pop 2 exch //true
+ } ifelse
+ } ifelse
+ } { % /Name
+ dup .map exch .knownget { % /Name <<record>>
+ dup dup /RecordVirtualMethods get /IsActive get exec {
+ dup /RecordVirtualMethods get /GetSize get exec 2 exch //true
+ } { % /Name <<record>>
+ pop pop //false
+ } ifelse
+ } { % /Name
+ pop //false
+ } ifelse
+ } ifelse
+ RESMPDEBUG { (resmp ResourceStatus end) = } if
+ } bind def
+
+ /ResourceFileName % <Name> <scratch> ResourceFileName <string>
+ { RESMPDEBUG { (resmp ResourceFileName beg ) print 1 index = } if
+ exch % (scratch) /Name
+ .map 1 index .knownget { % (scratch) /Name <<record>>
+ RESMPDEBUG { (resmp ResourceFileName : have a map record.) = } if
+ dup dup /RecordVirtualMethods get /IsActive get exec {
+ RESMPDEBUG { (resmp ResourceFileName : record is active.) = } if
+ dup /RecordVirtualMethods get /GetFilePath get exec % (string)
+ RESMPDEBUG { (resmp ResourceFileName : retrieving ) print dup = } if
+ } { % (scratch) /Name <<record>>
+ RESMPDEBUG { (resmp ResourceFileName : record is NOT active.) = } if
+ pop exch ResourceFileName exec
+ RESMPDEBUG { (resmp ResourceFileName : retrieving ) print dup = } if
+ } ifelse
+ } {
+ RESMPDEBUG { (resmp ResourceFileName : have NO map record.) = } if
+ exch ResourceFileName exec
+ RESMPDEBUG { (resmp ResourceFileName : retrieving ) print dup = } if
+ } ifelse
+ RESMPDEBUG { (resmp ResourceFileName end) = } if
+ } bind def
+
+ /ResourceForAll % <template> <proc> <scratch> ResourceForAll -
+ { RESMPDEBUG { (resmp ResourceForAll beg ) print CategoryName =string cvs print ( ) print 2 index = } if
+ % Create InstancesStatus dictionary :
+ 20 dict % IS - Instances Status
+ 4 1 roll % <<IS>> (templ) {proc} (sctarch)
+ % Check if we are under another ResourceForAll :
+ /.DisableResourceOrdering //execstack_lookup exec //null eq 4 1 roll
+ % <<IS>> bOrder (templ) {proc} (sctarch)
+
+ % Put underlying resources to the InstancesStatus dictionary :
+ currentdict % the category
+ begin % ResourceForAll removes it locally.
+ 2 index
+ { cvn % <<IS>> bOrder (templ) {proc} (sctarch) /Name
+ 4 index {
+ dup ResourceStatus exec {pop 6 index 3 1 roll put} {pop} ifelse
+ } {
+ 5 index exch 2 put % Don't need the ordering, put '2' as a scratch.
+ } ifelse
+ }
+ 2 index ResourceForAll exec % <<IS>> bOrder (templ) {proc} (sctarch)
+ 4 3 roll pop % <<IS>> (templ) {proc} (sctarch)
+ end
+
+ % Put .map entries to the InstancesStatus dictionary :
+ 4 -1 roll begin % (templ) {proc} (sctarch)
+ .map { % (templ) {proc} (sctarch) /Name record
+ dup dup /RecordVirtualMethods get /IsActive get exec {
+ pop % (templ) {proc} (sctarch) /Name
+ dup currentdict exch known {
+ pop
+ } {
+ dup 2 index cvs % (templ) {proc} (sctarch) /Name (Name)
+ 4 index .stringmatch { % (templ) {proc} (sctarch) /Name
+ 2 def % It is not in VM.
+ } {
+ pop
+ } ifelse
+ } ifelse
+ } { % (templ) {proc} (sctarch) /Name record
+ pop pop
+ } ifelse
+ } forall % (templ) {proc} (sctarch)
+
+ % prepare stacks for the enumeration :
+ 3 2 roll pop % {proc} (sctarch)
+ currentdict end % {proc} (scratch) <<IS>>
+
+ % Make the enumerator and apply it :
+ //MakeResourceEnumerator exec exec
+ RESMPDEBUG { (resmp ResourceForAll end)= } if
+ } bind def
+
+ /GetCIDSystemInfoFromMap % <Name> GetCIDSystemInfoFromMap <Name>
+ % <Name> GetCIDSystemInfoFromMap <dict>
+ { RESMPDEBUG { (resmp GetCIDSystemInfoFromMap beg ) print dup = } if
+ % This is a special function for communicating with GetCIDSystemInfo in gs_cidcm.ps .
+ dup .map exch .knownget {
+ RESMPDEBUG { (resmp GetCIDSystemInfoFromMap : have a map record.) = } if
+ dup /RecordVirtualMethods get /GetCSI get exec
+ dup //null ne {
+ RESMPDEBUG { (resmp GetCIDSystemInfoFromMap : retrieving a dict.) = } if
+ exch
+ } if
+ pop
+ } if
+ RESMPDEBUG { (resmp GetCIDSystemInfoFromMap end) = } if
+ } bind def
+
+currentdict end def
+setpacking
+
+/Redefine % <OptionsDict> Redefine -
+{ % Before calling this proc, the OptionsDict must specify options for
+ % the catregory to be redefined :
+ % CategoryName - a name of category to redefine;
+ % MapFileName - a string for the resource map file name;
+ % VerifyMap - a procedure :
+ % <raw_map> VerifyMap -
+ % - checks the map for consistency
+ % PreprocessRecord - a procedure :
+ % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> true
+ % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <raw_record> false
+ % - converts a map record into a dictionary;
+ % It must add RecordVirtualMethods dictionary to the record :
+ % MakeInstance - a procedure :
+ % <Name> <record> MakeInstance <Name> <Instance> <size>
+ % - converts the record to resource instance;
+ % GetFilePath - a procedure for ResourceFileName :
+ % <scratch> <Name> <record> GetFilePath <filepath>
+ % GetSize - a procedure for ResourceStatus :
+ % <Name> <record> GetSize <size>
+ % GetCSI - a procedure for obtaining CIDSystemInfo dictionary from the record :
+ % <record> GetCSI <CSI>
+ % <record> GetCSI null
+ % IsActive - a procedure for skipping records depending on the current device :
+ % <record> IsActive <bool>
+ % Also it is allowed to contain additional entries for client's needs.
+ % The OptionsDict is also used for storing some local variables.
+
+ % If a category is being redefined several times with this function,
+ % each redefinition must either use an unique map file,
+ % or the map file should be scanned by the last redefinition
+ % (and must be defined in the last one with /MapFileName).
+ % This happens so because we must accumulate all variants of
+ % methods before scanning the map. We would like to delay
+ % the scanning until all redefinitions are done, but it requires
+ % to implement a queue of "refinish" methods and execute it
+ % at very end of the prelude.
+
+ begin % OptionsDict
+ CategoryName /Category findresource /OldCategory exch def
+ OldCategory /.IsRedefinedWithMap known {
+ % Already redefined with map - don't redefine, but enhance the map.
+ OldCategory /NewCategory exch def
+ } {
+ % Redefine with a new category instance.
+ OldCategory dup length dict
+ dup /.PreprocessRecord 4 dict put
+ copy /NewCategory exch def
+ } ifelse
+
+ % Provide the 'or' logic for PreprocessRecord,
+ % to allow different record types to be mixed in a single map file.
+ % We do this with building a dictionary of PreprocessRecord procedures,
+ % which come from different calls to Redefine :
+ NewCategory /.PreprocessRecord get dup length % <<pr>> l
+ currentdict /PreprocessRecord get .growput
+
+ currentdict /MapFileName known {
+ MapFileName .libfile {
+ 1 dict begin
+ /; {} def
+ mark exch cvx exec .dicttomark % <<map>>
+ end
+ dup VerifyMap % <<map>>
+ } {
+ QUIET not {
+ currentdict /IsMapFileOptional .knownget not { //false } if not {
+ (Warning: the map file ) print dup =string cvs print ( was not found.) =
+ } if
+ } if
+ pop 0 dict % <<map>>
+ } ifelse
+ } {
+ currentdict /.map .knownget not {
+ 0 dict % <<map>>
+ } if
+ } ifelse
+
+ % Preprocess entries :
+ dup NewCategory /.PreprocessRecord get % <<map>> <<map>> <<pr>>
+ 3 1 roll { % <<pr>> <<map>> /Name raw_record
+ //false 3 1 roll % <<pr>> <<map>> false /Name raw_record
+ 4 index { % <<pr>> <<map>> false /Name raw_record i {pr}
+ exch pop % <<pr>> <<map>> false /Name raw_record {pr}
+ exec { % <<pr>> <<map>> false /Name record
+ 3 -1 roll pop //true 3 1 roll % <<pr>> <<map>> true /Name record
+ exit
+ } if % <<pr>> <<map>> false /Name raw_record
+ } forall
+ 3 2 roll { % <<pr>> <<map>> /Name record
+ 2 index 3 1 roll put % <<pr>> <<map>>
+ } {
+ exch % <<pr>> <<map>> raw_record /Name
+ (Incorrect record ) print =string cvs print ( of the map file ) print MapFileName =string cvs print (.) =
+ end % Pops OptionsDict from dstack.
+ pop pop pop %
+ /Redefine cvx /undefinedresource signalerror
+ } ifelse
+ } forall % <<pr>> <<map>>
+ exch pop % <<map>>
+
+ % Add the map :
+ OldCategory /.IsRedefinedWithMap known { % <<map>>
+ % Just add to the old map :
+ OldCategory /.map get copy pop %
+ } { % <<map>>
+ % Store the map to both the category and OptionsDict :
+ dup NewCategory exch /.map exch put
+ /.map exch def %
+ } ifelse
+ OldCategory /.IsRedefinedWithMap known not {
+ % Copy old methods to OptionsDict :
+ [ /DefineResource /ResourceStatus /ResourceFileName
+ /FindResource /ResourceForAll
+ ] {
+ dup OldCategory exch get def
+ } forall
+
+ % Build new methods :
+ //MethodsToRedefine {
+ //BindWithCurrentdict exec NewCategory 3 1 roll put
+ } forall
+ CategoryName /CIDFont ne {
+ NewCategory /GetCIDSystemInfoFromMap undef
+ % This is some ugly, sorry.
+ } if
+ % Redefine the category :
+ NewCategory /.IsRedefinedWithMap //true put
+ CategoryName NewCategory /Category defineresource pop
+ } if
+ end % OptionsDict
+} bind executeonly def
+
+currentdict /PutPreprocessRecord .undef
+
+currentdict end
+/ProcSet defineresource pop
+
+setglobal .setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_setpd.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1031 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% The current implementation of setpagedevice has the following limitations:
+% - It doesn't attempt to "interact with the user" for Policy = 2.
+
+languagelevel 1 .setlanguagelevel
+level2dict begin
+
+% ---------------- Redefinitions ---------------- %
+
+% Redefine .beginpage and .endpage so that they call BeginPage and
+% EndPage respectively if appropriate.
+
+% We have to guard against the BeginPage procedure not popping its operand.
+% This is really stupid, but the Genoa CET does it.
+/.beginpage { % - .beginpage -
+ .currentshowpagecount {
+ .currentpagedevice pop
+ dup //null ne { /BeginPage .knownget } { pop //false } ifelse {
+ % Stack: ... pagecount proc
+ count 2 .execn
+ % Stack: ... ..???.. oldcount
+ count 1 add exch sub { pop } repeat
+ } {
+ pop
+ } ifelse
+ } if
+} bind odef
+
+% Guard similarly against EndPage not popping its operand.
+/.endpage { % <reason> .endpage <print_bool>
+ .currentshowpagecount {
+ 1 index .currentpagedevice pop
+ dup //null ne { /EndPage .knownget } { pop //false } ifelse {
+ % Stack: ... reason pagecount reason proc
+ count 2 .execn
+ % Stack: ... ..???.. print oldcount
+ count 2 add exch sub { exch pop } repeat
+ } {
+ pop pop 2 ne
+ } ifelse
+ } {
+ 2 ne
+ } ifelse
+} bind odef
+
+% Define interpreter callouts for handling gstate-saving operators,
+% to make sure that they create a page device dictionary for use by
+% the corresponding gstate-restoring operator.
+% We'd really like to avoid the cost of doing this, but we don't see how.
+% The names %gsavepagedevice, %savepagedevice, %gstatepagedevice,
+% %copygstatepagedevice, and %currentgstatepagedevice are known to the
+% interpreter.
+
+(%gsavepagedevice) cvn
+ { currentpagedevice pop gsave
+ } bind def
+
+(%savepagedevice) cvn
+ { currentpagedevice pop save
+ } bind def
+
+(%gstatepagedevice) cvn
+ { currentpagedevice pop gstate
+ } bind def
+
+(%copygstatepagedevice) cvn
+ { currentpagedevice pop copy
+ } bind def
+
+(%currentgstatepagedevice) cvn
+ { currentpagedevice pop currentgstate
+ } bind def
+
+% Define interpreter callouts for handling gstate-restoring operators
+% when the current page device needs to be changed.
+% The names %grestorepagedevice, %grestoreallpagedevice,
+% %restorepagedevice, %restore1pagedevice, and %setgstatepagedevice
+% are known to the interpreter.
+
+/.installpagedevice
+ { % Since setpagedevice doesn't create new device objects,
+ % we must (carefully) reinstall the old parameters in
+ % the same device.
+ .currentpagedevice pop //null currentdevice //null .trysetparams
+ dup type /booleantype eq
+ { pop pop }
+ { % This should never happen!
+ SETPDDEBUG { (Error in .trysetparams!) = pstack flush } if
+ cleartomark pop pop pop
+ /.installpagedevice cvx /rangecheck signalerror
+ }
+ ifelse pop pop
+ % A careful reading of the Red Book reveals that an erasepage
+ % should occur, but *not* an initgraphics.
+ erasepage .beginpage
+ } bind def
+
+/.uninstallpagedevice
+ { 2 .endpage { .currentnumcopies //false .outputpage } if
+ nulldevice
+ } bind def
+
+(%grestorepagedevice) cvn
+ { .uninstallpagedevice grestore .installpagedevice
+ } bind def
+
+(%grestoreallpagedevice) cvn
+ { .uninstallpagedevice grestore .installpagedevice grestoreall
+ } bind def
+
+(%restore1pagedevice) cvn
+ { .uninstallpagedevice grestore .installpagedevice restore
+ } bind def
+
+(%restorepagedevice) cvn
+ { .uninstallpagedevice restore .installpagedevice
+ } bind def
+
+(%setgstatepagedevice) cvn
+ { .uninstallpagedevice setgstate .installpagedevice
+ } bind def
+
+% Redefine .currentnumcopies so it consults the NumCopies device parameter.
+/.numcopiesdict mark
+ /NumCopies dup
+.dicttomark readonly def
+
+/.currentnumcopies
+ { currentdevice //.numcopiesdict .getdeviceparams
+ dup type /integertype eq
+ { exch pop exch pop }
+ { cleartomark #copies }
+ ifelse
+ } bind odef
+
+% Redefine .currentpagedevice and .setpagedevice so they convert between
+% null and a fixed empty directionary.
+/.nullpagedevice 0 dict readonly def
+/.currentpagedevice {
+ //.currentpagedevice exch dup //null eq { pop //.nullpagedevice } if exch
+} bind odef
+/.setpagedevice {
+ dup //.nullpagedevice eq { pop //null } if //.setpagedevice
+} bind odef
+
+% ---------------- Auxiliary definitions ---------------- %
+
+% Define the required attributes of all page devices, and their default values.
+% We don't include attributes such as .MediaSize, which all devices
+% are guaranteed to supply on their own.
+/.defaultpolicies mark
+ % M. Sweet, Easy Software Products
+ %
+ % Due to the fact that it is not possible to properly implement
+ % the selection policies from a Ghostscript driver, we have changed
+ % the default policy to "7" (impose) to avoid numerous problems with
+ % printing within CUPS...
+ %
+ % If NOMEDIAATTRS is false, the set the default depending on whether
+ % PSFitPage is true. Policy 13 does best fit with page scaling up or down
+ % so it is only useful if FIXEDMEDIA is also specified, or if the set of
+ % media in the InputAttributes dictionary is the actual available choices
+ % and does not include any "range" page sizes.
+ /PageSize NOMEDIAATTRS { 7 } { //systemdict /PSFitPage known { 13 } { 0 } ifelse } ifelse
+ /PolicyNotFound 1
+ /PolicyReport {
+ dup /.LockSafetyParams known {
+ % Only possible error is invalidaccess
+ /setpagedevice .systemvar /invalidaccess signalerror
+ }
+ if
+ pop
+ } bind
+.dicttomark readonly def
+% Note that the values of .requiredattrs are executed, not just fetched.
+/.requiredattrs mark
+ /PageDeviceName //null
+ /PageOffset [0 0] readonly
+% We populate InputAttributes with all of the known page sizes
+% followed by a dummy media type that handles pages of any size.
+% This will create some duplicates, but that only slightly slows
+% down the media selection (loop is in zmedia2.c).
+%
+% Some PostScript creators assume that slot 0 is the default media
+% size and some can't handle a non-standard 4-element array which
+% is a 'range' type page size (always put last).
+%
+% Real Devices that can only handle specific page sizes will override this.
+ /InputAttributes {
+ mark
+ % First put the device's default page size in slot 0
+ % This satifies those that have devices built with a4 as the default
+ 0 mark /PageSize currentdevice /PageSize gsgetdeviceprop .dicttomark
+
+ % Only populate the other entries if we aren't FIXEDMEDIA
+ FIXEDMEDIA not {
+ statusdict /.pagetypenames get {
+ statusdict /.pagetypeprocs get
+ exch get 0 2 getinterval cvlit
+ counttomark 1 sub 2 idiv exch mark exch /PageSize exch
+ % stack: mark --dict-- --dict-- ... key mark /PageSize [x y]
+ % see note above about pagetype executable array contents.
+ .dicttomark
+ } forall
+ % If NORANGEPAGESIZE is defined, (-dNORANGEPAGESIZE), then don't add
+ % the 'match any' PageSize entry
+ systemdict /NORANGEPAGESIZE known not {
+ % Add one last entry which is the 4 element range array (non-standard)
+ counttomark 2 idiv
+ % PageSize with either dimension 0 will be detected in
+ % match_page_size, so we can allow it here
+ mark /PageSize [0 dup 16#7ffff dup] .dicttomark
+ } if
+ } if % FIXEDMEDIA false
+ .dicttomark
+ }
+ (%MediaSource) 0
+ /OutputAttributes {
+ mark 0 mark .dicttomark readonly .dicttomark
+ }
+ (%MediaDestination) 0
+ /Install {{.callinstall}} bind
+ /BeginPage {{.callbeginpage}} bind
+ /EndPage {{.callendpage}} bind
+ /Policies .defaultpolicies
+ /ImagingBBox //null % default value
+ /UseCIEColor /.getuseciecolor load
+.dicttomark readonly def
+
+% Define currentpagedevice so it creates the dictionary on demand if needed,
+% adding all the required entries defined just above.
+
+% We have to deal specially with entries that the driver may change
+% on its own. We also have to deal specially with parameters which the device may
+% change on its own but which we *also* want to transmit to the device. Previously
+% any parameter which was 'dynamic' would not be sent to the device, making it
+% impossible to set a parameter, and later have the device change it. Currently
+% only OutputICCProfile fits this category.
+% This whole area is broken its completely the wrong way round from the way the spec says it should work.
+
+% This dictionary contains the keys we never want to set.
+/.readonlypdkeys mark
+ /.MediaSize dup % because it changes when PageSize is set
+ /PageCount dup
+ /Colors dup
+ /BitsPerPixel dup
+ /ColorValues dup
+.dicttomark readonly def
+
+% Bonkers, but needed by our ridiculous setpagedevice implementation. There are
+% some keys (at the moment, RedValues, GreenValues and BlueValues are known) which
+% only exist in the page device dictionary under some conditions (ProcessColorModel == DeviceRGB)
+% If we change the conditions, so that these keys are no longer present in the params
+% returned by the device, sending these keys to the device can trigger a fault.
+% This is a problem because of our stored dictionary:
+%
+% 1) Set up the inital dictioanry by retrieving the params from the device
+% 2) Change the conditions (ProcessColorModel == DeviceGray)
+% 3) merge any volatile keys from the device. Note that RedValues etc no longer defined.
+% 4) Call .installpagdevice, use the stored dicitonary to set the params
+% 5) The stored RedValues etc, cause an error.
+%
+% The stored dictioanry is readonly (we use forceput to wedge new keys into it) so
+% we can't 'undef' keys from it. (the dictionary is made readonly by the action of zsetpagedevice
+% '.setpagedevice' in PostScrfipt)
+%
+% So the only solution is to have 'write only' keys. These can be written to the device
+% but are not stored in the saved page device dictionary. This means PostScript programs
+% can't interrogate and take action on these, but there's no solution to that except to
+% rewrite this stuff completely so that it actually works properly.
+
+/.writeonlykeys mark
+ /RedValues dup % Set by the device when ProcessColorModel changes
+ /GreenValues dup % Set by the device when ProcessColorModel changes
+ /BlueValues dup % Set by the device when ProcessColorModel changes
+ /GrayValues dup % Set by the device when ProcessColorModel changes
+.dicttomark readonly def
+
+% This dictionary contains the keys we always want to read back from the device.
+/.volatilepdkeys mark
+ /.MediaSize dup % because it changes when PageSize is set
+ /RedValues dup % Set by the device when ProcessColorModel changes
+ /GreenValues dup % Set by the device when ProcessColorModel changes
+ /BlueValues dup % Set by the device when ProcessColorModel changes
+ /GrayValues dup % Set by the device when ProcessColorModel changes
+ /PageCount dup
+ /Colors dup
+ /BitsPerPixel dup
+ /ColorValues dup
+ /OutputICCProfile dup % ColorConversionStrategy can change this
+.dicttomark readonly def
+
+/.makecurrentpagedevice { % - .makecurrentpagedevice <dict>
+ currentdevice //null .getdeviceparams
+ % Make the dictionary large enough to add defaulted entries.
+ counttomark 2 idiv .requiredattrs length add dict
+ counttomark 2 idiv { dup 4 2 roll put } repeat exch pop
+ % Add any missing required attributes.
+ % Make a writable and (if possible) local copy of any default
+ % dictionaries, to work around a bug in the output of WordPerfect,
+ % which assumes that these dictionaries are writable and local.
+ .currentglobal exch dup gcheck .setglobal
+ .requiredattrs {
+ 2 index 2 index known {
+ 1 index /Policies eq {
+ % Merge policies from the device driver with defaults
+ 2 index % <<>> /key value <<>>
+ 3 2 roll get % <<>> value <<policies>>
+ exch {
+ 2 index 2 index known {
+ pop pop
+ } {
+ 2 index 3 1 roll put
+ } ifelse
+ } forall
+ pop
+ } {
+ pop pop
+ } ifelse
+ } {
+ exec 2 index 3 1 roll put
+ } ifelse
+ } forall exch .setglobal
+
+ % Remove any keys we don't want to be stored, before .setpagedevice
+ % makes the dictionary read only
+ .writeonlykeys {2 index exch undef pop} forall
+ dup .setpagedevice
+} bind def
+/currentpagedevice {
+ .currentpagedevice {
+ dup length 0 eq {
+ pop .makecurrentpagedevice
+ } {
+ % If any of the dynamic keys have changed,
+ % we must update the page device dictionary.
+ currentdevice //.volatilepdkeys .getdeviceparams .dicttomark {
+ % Stack: current key value
+ 2 index 2 index .knownget { 1 index ne } { //true } ifelse
+ { 2 index wcheck not
+ { % This is the first entry being updated.
+ % Copy the dictionary to make it writable.
+ 3 -1 roll
+ currentglobal 1 index dup gcheck currentglobal and setglobal
+ length dict
+ exch setglobal
+ .copydict
+ 3 1 roll
+ }
+ if
+ 2 index 3 1 roll put
+ }
+ { pop pop
+ }
+ ifelse
+ } forall
+ % If the device is the distiller device, update distillerparams that
+ % may have been changed by setdistillerparams
+ /IsDistiller /GetDeviceParam .special_op {
+ exch pop
+ }{
+ //false
+ }ifelse
+ {
+ currentdistillerparams {
+ % Stack: current key value
+ 2 index 2 index .knownget { 1 index ne } { //true } ifelse
+ { 2 index 3 1 roll put } { pop pop } ifelse
+ } forall
+ } if
+ % If the dictionary was global and is now local, copy
+ % any global subsidiary dictionaries to local VM. This
+ % too is to work around the Word Perfect bug (see above).
+ dup gcheck not {
+ dup {
+ dup type /dicttype eq { dup gcheck } { //false } ifelse {
+ % Copy-on-write, see above.
+ 2 index wcheck not {
+ 3 -1 roll dup length dict .copydict
+ 3 1 roll
+ } if
+ .copytree 2 index 3 1 roll put
+ } {
+ pop pop
+ } ifelse
+ } forall
+ } if
+ % We would like to do a .setpagedevice so we don't keep
+ % re-creating the dictionary. Unfortunately, the effect
+ % of this is that if any dynamic key changes (PageCount
+ % in particular), we will do the equivalent of a
+ % setpagedevice at the next restore or grestore.
+ % Therefore, we make the dictionary read-only, but
+ % we don't store it away. I.e., NOT:
+ % dup wcheck { .setpagedevice .currentpagedevice pop } if
+ readonly
+ } ifelse
+ } if
+} bind odef
+
+% Copy a dictionary recursively.
+/.copytree { % <dict> .copytree <dict'>
+ dup length dict exch {
+ dup type /dicttype eq { .copytree } if 2 index 3 1 roll put
+ } forall
+} bind def
+
+% The implementation of setpagedevice is quite complex. Currently,
+% everything but the media matching algorithm is implemented here.
+
+% By default, we only present the requested changes to the device,
+% but there are some parameters that require special merging action.
+% Define those parameters here, with the procedures that do the merging.
+% The procedures are called as follows:
+% <merged> <key> <new_value> -proc- <merged> <key> <new_value'>
+/.mergespecial mark
+ /InputAttributes
+ { dup //null eq
+ { pop //null
+ }
+ { 3 copy pop .knownget
+ { dup //null eq
+ { pop dup length dict }
+ { dup length 2 index length add dict .copydict }
+ ifelse
+ }
+ { dup length dict
+ }
+ ifelse .copydict readonly
+ }
+ ifelse
+ } bind
+ /OutputAttributes 1 index
+ /Policies
+ { 3 copy pop .knownget
+ { dup length 2 index length add dict .copydict }
+ { dup length dict }
+ ifelse copy readonly
+ } bind
+.dicttomark readonly def
+
+% M. Sweet, Easy Software Products:
+%
+% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
+% selection policies for setpagedevice. This is used by CUPS to support
+% the standard Adobe media attributes.
+NOMEDIAATTRS {
+ % Define only PageSize for input attribute matching.
+ /.inputattrkeys [
+ /PageSize
+ ] readonly def
+ % Define no other keys used in media selection.
+ /.inputselectionkeys [
+ /noInputSelectionsKeys
+ ] readonly def
+
+ % Define no keys used in output attribute matching.
+ /.outputattrkeys [
+ /noOutputAttrKeys
+ ] readonly def
+} {
+ % Define the keys used in input attribute matching.
+ /.inputattrkeys [
+ /PageSize /MediaColor /MediaWeight /MediaType /InsertSheet /ManualFeed
+ % The following are documented in Adobe's supplement for v2017.
+ /LeadingEdge /MediaClass
+ ] readonly def
+ % Define other keys used in media selection.
+ /.inputselectionkeys [
+ /MediaPosition /Orientation
+ ] readonly def
+
+ % Define the keys used in output attribute matching.
+ /.outputattrkeys [
+ /OutputType
+ ] readonly def
+} ifelse
+
+% Define all the parameters that should always be copied to the merged
+% dictionary.
+/.copiedkeys [
+ /OutputDevice
+ .mergespecial { pop } forall
+ .inputattrkeys aload pop
+ .inputselectionkeys aload pop
+ .outputattrkeys aload pop
+] readonly def
+
+% Define the parameters that should not be presented to the device.
+% The procedures are called as follows:
+% <merged> <key> <value> -proc-
+% The procedure leaves all its operands on the stack and returns
+% true iff the key/value pair should be presented to .putdeviceparams.
+/.presentspecial mark
+ .readonlypdkeys
+ { pop //false }
+ forall
+ % We must ignore an explicit request for .MediaSize,
+ % because media matching always handles this.
+ /.MediaSize //false
+ /Name //false
+ /OutputDevice //false
+ /PageDeviceName //false
+ /PageOffset //false
+ /PageSize //false % obsolete alias for .MediaSize
+ /InputAttributes //false
+ .inputattrkeys
+ { dup dup /PageSize eq exch /LeadingEdge eq or
+ { pop }
+ { { 2 index /InputAttributes .knownget { //null eq } { //true } ifelse } }
+ ifelse
+ }
+ forall
+ .inputselectionkeys { //false } forall
+ /OutputAttributes //false
+ .outputattrkeys
+ { { 2 index /OutputAttributes .knownget { //null eq } { //true } ifelse } }
+ forall
+ /Install //false
+ /BeginPage //false
+ /EndPage //false
+ /Policies //false
+ % Our extensions:
+ /HWColorMap
+ { % HACK: don't transmit the color map, because
+ % window systems can change the color map on their own
+ % incrementally. Someday we'll have a better
+ % solution for this....
+ //false
+ }
+ /ViewerPreProcess //false
+ /ImagingBBox //false % This prevents the ImagingBBox value in the setpagedevice
+ % from affecting the device's ImagingBBox parameter, but
+ % does retain a 'shadow' copy at the PostScript level.
+ % This is done for Adobe compatibility since Adobe does
+ % render marks outside the ImagingBBox (and QuarkXpress
+ % relies on it).
+.dicttomark readonly def
+
+% Define access to device defaults.
+/.defaultdeviceparams
+ { finddevice //null .getdeviceparams
+ } bind def
+
+% Select media (input or output). The hard work is done in an operator:
+% <pagedict> <attrdict> <policydict> <keys> .matchmedia <key> true
+% <pagedict> <attrdict> <policydict> <keys> .matchmedia false
+% <pagedict> null <policydict> <keys> .matchmedia null true
+/.selectmedia % <orig> <request> <merged> <failed> <-- retained
+ % <attrdict> <policydict> <attrkeys> <mediakey>
+ % .selectmedia
+ { 5 index 5 -2 roll 4 index .matchmedia
+ % Stack: orig request merged failed attrkeys mediakey
+ % (key true | false)
+ { 4 index 3 1 roll put pop
+ }
+ { % Adobe's implementations have a "big hairy heuristic"
+ % to choose the set of keys to report as having failed the match.
+ % For the moment, we report any keys that are in the request
+ % and don't have the same value as in the original dictionary.
+ 5 index 1 index .knownget
+ { 4 index 3 1 roll put }
+ { 3 index exch .undef }
+ ifelse
+ { % Stack: <orig> <request> <merged> <failed> <attrkey>
+ 3 index 1 index .knownget
+ { 5 index 2 index .knownget { ne } { pop //true } ifelse }
+ { //false }
+ ifelse % Stack: ... <failed> <attrkey> <report>
+ { 2 copy /rangecheck put }
+ if pop
+ }
+ forall
+ }
+ ifelse
+ } bind def
+
+% Apply Policies to any unprocessed failed requests.
+% As we process each request entry, we replace the error name
+% in the <failed> dictionary with the policy value,
+% and we replace the key in the <merged> dictionary with its prior value
+% (or remove it if it had no prior value).
+/.policyprocs mark
+% These procedures are called with the following on the stack:
+% <orig> <merged> <failed> <Policies> <key> <policy>
+% They are expected to consume the top 2 operands.
+% NOTE: we currently treat all values other than 0, 1, or 7 (for PageSize)
+% the same as 0, i.e., we signal an error.
+%
+% M. Sweet, Easy Software Products:
+%
+% Define NOMEDIAATTRS to turn off the default (but unimplementable) media
+% selection policies for setpagedevice. This is used by CUPS to support
+% the standard Adobe media attributes.
+ 0 { % Set errorinfo and signal a configurationerror.
+ NOMEDIAATTRS {
+ % NOMEDIAATTRS means that the default policy is 7...
+ pop 2 index exch 7 put
+ } {
+ pop dup 4 index exch get 2 array astore
+ $error /errorinfo 3 -1 roll put
+ cleartomark
+ /setpagedevice .systemvar /configurationerror signalerror
+ } ifelse
+ } bind
+ 1 { % Roll back the failed request to its previous status.
+SETPDDEBUG { (Rolling back.) = pstack flush } if
+ 3 index 2 index 3 -1 roll .forceput
+ 4 index 1 index .knownget
+ { 4 index 3 1 roll .forceput }
+ { 3 index exch .undef }
+ ifelse
+ } .bind
+ 7 { % For PageSize only, just impose the request.
+ 1 index /PageSize eq
+ { pop pop 1 index /PageSize 7 put }
+ { .policyprocs 0 get exec }
+ ifelse
+ } bind
+.dicttomark readonly def
+/.applypolicies % <orig> <merged> <failed> .applypolicies
+ % <orig> <merged'> <failed'>
+ { 1 index /Policies get 1 index
+ { type /integertype eq
+ { pop % already processed
+ }
+ { 2 copy .knownget not { 1 index /PolicyNotFound get } if
+ % Stack: <orig> <merged> <failed> <Policies> <key>
+ % <policy>
+ .policyprocs 1 index .knownget not { .policyprocs 0 get } if exec
+ }
+ ifelse
+ }
+ forall pop
+ } bind def
+
+% Prepare to present parameters to the device, by spreading them onto the
+% operand stack and removing any that shouldn't be presented.
+/.prepareparams % <params> .prepareparams -mark- <key1> <value1> ...
+ { mark exch dup
+ { % Stack: -mark- key1 value1 ... merged key value
+ .presentspecial 2 index .knownget
+ { exec { 3 -1 roll } { pop pop } ifelse }
+ { 3 -1 roll }
+ ifelse
+ }
+ forall pop
+ } bind def
+
+% Put device parameters without resetting currentpagedevice.
+% (.putdeviceparams clears the current page device.)
+/.putdeviceparamsonly % <device> <Policies|null> <require_all> -mark-
+ % <key1> <value1> ... .putdeviceparamsonly
+ % On success: <device> <eraseflag>
+ % On failure: <device> <Policies|null> <req_all> -mark-
+ % <key1> <error1> ...
+ { .currentpagedevice
+ { counttomark 4 add 1 roll .putdeviceparams
+ dup type /booleantype eq { 3 } { counttomark 5 add } ifelse -1 roll
+ .setpagedevice
+ }
+ { pop .putdeviceparams
+ }
+ ifelse
+ } bind def
+
+% Try setting the device parameters from the merged request.
+/.trysetparams % <merged> <(ignored)> <device> <Policies>
+ % .trysetparams
+ { //true 4 index .prepareparams
+ % Add the computed .MediaSize.
+ % Stack: merged (ignored) device Policies -true-
+ % -mark- key1 value1 ...
+ counttomark 5 add index .computemediasize
+ exch pop exch pop /.MediaSize exch
+SETPDDEBUG { (Putting.) = pstack flush } if
+ .putdeviceparamsonly
+SETPDDEBUG { (Result of putting.) = pstack flush } if
+ } bind def
+
+% Compute the media size and initial matrix from a merged request (after
+% media selection).
+/.computemediasize % <request> .computemediasize
+ % <request> <matrix> <[width height]>
+ { dup /PageSize get % requested page size
+ 1 index /InputAttributes get
+ 2 index (%MediaSource) get get /PageSize get % media size
+ % (may be a range)
+ 2 index /Policies get
+ dup /PageSize .knownget
+ { exch pop } { /PolicyNotFound get } ifelse % PageSize policy,
+ % affects scaling
+ 3 index /Orientation .knownget not { //null } if
+ 4 index /RollFedMedia .knownget not { //false } if
+ matrix .matchpagesize not {
+ % This is a "can't happen" condition!
+ /setpagedevice .systemvar /rangecheck signalerror
+ } if
+ 2 array astore
+ } bind def
+
+% ---------------- setpagedevice itself ---------------- %
+
+/setpagedevice
+ {
+ % To avoid VM mismatches caused by copying subsidiary
+ % dictionaries to local VM (see WorPerfect bug in
+ % .makecurrentpagedevice) we want to make the dict
+ % returned by currentpagedevice local. However, if we
+ % run with -dSAFER we get a call to setpagedevice from
+ % .setsafe in gs_init.ps during startup. The dict returned
+ % by currentpagdevice is stored to the graphics state by
+ % .setpagedevice below, and returned by currentpagdevice.
+ % The Display PostScript code insists that the savedinitialgstate
+ % not have any pointers to local VM objects, so if we simply
+ % make the dict local then we fail in gs_dps.ps. The only
+ % solution is to make sure the VM mode is global during
+ % startup (to satisfy gs_dps.ps) and local thereafter
+ % (to satisfy the WordPerfect bug).
+ dup /..StartupGlobal known
+ {
+ currentglobal exch true setglobal
+ dup /..StartupGlobal undef
+ } {
+ % ensure that we are always in local VM mode to avoid
+ % mismatches. This is because we always create child
+ % dictionaries in local VM, regardless of the current VM state,
+ % (see .makecurrentpagdevice) and we can't store local objects
+ % in a global object, so we must ensure teh dictionary returned
+ % from currentpagedevice is in local VM.
+ currentglobal exch false setglobal
+ } ifelse
+
+ %% We used to execute endpage after .tsrysetparams, but that actually alters
+ %% the page device dictionary (in particular /PageSize) this is not correct.
+ %% Testing with Adobe Acrobat Distiller shows that EndPage is ececuted if the
+ %% page device dictionary is empty, and indeed even if setpagedevice returns
+ %% an error (caught by stopped), so it seems pretty clear that we should
+ %% run any required EndPage very early in the setpagedevice process.
+ %% Bug 690667.
+ 2 .endpage
+ { 1 //true .outputpage
+ (>>setpagedevice, press <return> to continue<<\n) .confirm
+ }
+ if
+ % We mustn't pop the argument until the very end,
+ % so that the pseudo-operator machinery can restore the stack
+ % if an error occurs.
+ mark 1 index currentpagedevice
+
+ % Check whether we are changing OutputDevice;
+ % also handle the case where the current device
+ % is not a page device.
+ % Stack: mark <request> <current>
+SETPDDEBUG { (Checking.) = pstack flush } if
+
+ dup /OutputDevice .knownget
+ { % Current device is a page device.
+ 2 index /OutputDevice .knownget
+ { % A specific OutputDevice was requested.
+ 2 copy eq
+ { pop pop //null }
+ { exch pop }
+ ifelse
+ }
+ { pop //null
+ }
+ ifelse
+ }
+ { % Current device is not a page device.
+ % Use the default device.
+ 1 index /OutputDevice .knownget not { .defaultdevicename } if
+ }
+ ifelse
+ dup //null eq
+ { pop
+ }
+ { exch pop .defaultdeviceparams
+ % In case of duplicate keys, .dicttomark takes the entry
+ % lower on the stack, so we can just append the defaults here.
+ .requiredattrs { exec } forall .dicttomark
+ }
+ ifelse
+
+ % Check whether a viewer wants to intervene.
+ % We must check both the request (which takes precedence)
+ % and the current dictionary.
+ % Stack: mark <request> <orig>
+ exch dup /ViewerPreProcess .knownget
+ { exec }
+ { 1 index /ViewerPreProcess .knownget { exec } if }
+ ifelse exch
+
+ % Construct a merged request from the actual request plus
+ % any keys that should always be propagated.
+ % Stack: mark <request> <orig>
+SETPDDEBUG { (Merging.) = pstack flush } if
+
+ exch 1 index length 1 index length add dict
+ .copiedkeys
+ { % Stack: <orig> <request> <merged> <key>
+ 3 index 1 index .knownget { 3 copy put pop } if pop
+ }
+ forall
+ % Stack: <orig> <request> <merged>
+ dup 2 index
+ { % stack: <orig> <request> <merged> <merged> <rkey> <rvalue>
+ .mergespecial 2 index .knownget { exec } if
+ put dup
+ }
+ forall pop
+ % Hack: if FIXEDRESOLUTION is true, discard any attempt to
+ % change HWResolution.
+ FIXEDRESOLUTION { dup /HWResolution .undef } if
+ % Hack: if FIXEDMEDIA is true, discard any attempt to change
+ % PageSize or HWSize unless the PageSize Policy 13 (for FitPage).
+ dup /Policies get /PageSize get 13 ne FIXEDMEDIA and
+ { dup /PageSize 4 index /PageSize get put
+ dup /HWSize 4 index /HWSize get put
+ } if
+ % Hack: to work around some files that take a PageSize
+ % from InputAttributes and impose it, discard any attempt
+ % to set PageSize to a 4-element value.
+ % Stack: mark <orig> <request> <merged>
+ dup /PageSize .knownget {
+ length 2 ne {
+ dup /PageSize 4 index /PageSize get put
+ } if
+ } if
+
+ % Select input and output media.
+ % Stack: mark <orig> <request> <merged>
+SETPDDEBUG { (Selecting.) = pstack flush } if
+
+ 0 dict % <failed>
+ 1 index /InputAttributes .knownget
+ { 2 index /Policies get
+ .inputattrkeys (%MediaSource) cvn .selectmedia
+ } if
+ 1 index /OutputAttributes .knownget
+ { 2 index /Policies get
+ .outputattrkeys (%MediaDestination) cvn .selectmedia
+ } if
+ 3 -1 roll 4 1 roll % temporarily swap orig & request
+ .applypolicies
+ 3 -1 roll 4 1 roll % swap back
+
+ % Construct the new device, and attempt to set its attributes.
+ % Stack: mark <orig> <request> <merged> <failed>
+SETPDDEBUG { (Constructing.) = pstack flush } if
+
+ currentdevice .devicename 2 index /OutputDevice get eq
+ { currentdevice }
+ { 1 index /OutputDevice get finddevice }
+ ifelse
+ %**************** We should copy the device here,
+ %**************** but since we can't close the old device,
+ %**************** we don't. This is WRONG.
+ %****************copydevice
+ 2 index /Policies get
+ .trysetparams
+ dup type /booleantype ne
+ { % The request failed.
+ % Stack: ... <orig> <request> <merged> <failed> <device>
+ % <Policies> true mark <name> <errorname> ...
+SETPDDEBUG { (Recovering.) = pstack flush } if
+ counttomark 4 add index
+ counttomark 2 idiv { dup 4 -2 roll put } repeat
+ pop pop pop
+ % Stack: mark ... <orig> <request> <merged> <failed> <device>
+ % <Policies>
+ 6 2 roll 3 -1 roll 4 1 roll
+ .applypolicies
+ 3 -1 roll 4 1 roll 6 -2 roll
+ .trysetparams % shouldn't fail!
+ dup type /booleantype ne
+ { 2 { counttomark 1 add 1 roll cleartomark } repeat
+ /setpagedevice .systemvar exch signalerror
+ }
+ if
+ }
+ if
+
+ % The attempt succeeded. Install the new device.
+ % Stack: mark ... <merged> <failed> <device> <eraseflag>
+SETPDDEBUG { (Installing.) = pstack flush } if
+
+ pop
+ % .setdevice clears the current page device!
+ .currentpagedevice pop exch
+ .setdevice pop
+ .setpagedevice
+
+ % Implement UseCIEColor directly if this is a LL3 system.
+ % The color substitution feature is now implemented in
+ % the interpreter, and this is used as an optimization.
+ %
+ % NB: This shoud be the only use of the .setuseciecolor
+ % operator anywhere.
+ %
+ % Set some color space other than /DeviceGray, to insure
+ % that initgraphics will actually perform a setcolorspace
+ % operation (there is an optimization in setcolorspace
+ % that does nothing if the operand and current color
+ % spaces are the same)
+
+ /.setuseciecolor where
+ {
+ pop 1 index /UseCIEColor .knownget
+ {
+ .setuseciecolor /DeviceRGB setcolorspace
+ }
+ if
+ }
+ if
+
+ % Merge the request into the current page device,
+ % unless we're changing the OutputDevice.
+ % Stack: mark ... <merged> <failed>
+ exch currentpagedevice dup length 2 index length add dict
+ % Stack: mark ... <failed> <merged> <current> <newdict>
+ 2 index /OutputDevice .knownget {
+ 2 index /OutputDevice .knownget not { //null } if eq
+ } {
+ //true
+ } ifelse {
+ % Same OutputDevice, merge the dictionaries.
+ .copydict
+ } {
+ % Different OutputDevice, discard the old dictionary.
+ exch pop
+ } ifelse .copydict
+ % Initialize the default matrix, taking media matching
+ % into account.
+ .computemediasize pop initmatrix concat
+ dup /PageOffset .knownget
+ { % Translate by the given number of 1/72" units in device X/Y.
+ dup 0 get exch 1 get
+ 2 index /HWResolution get dup 1 get exch 0 get
+ 4 -1 roll mul 72 div 3 1 roll mul 72 div
+ idtransform translate
+ }
+ if
+ % We must install the new page device dictionary
+ % before calling the Install procedure.
+ dup .setpagedevice
+ /HighLevelDevice /GetDeviceParam .special_op {
+ exch pop not
+ }{
+ //true
+ }ifelse
+ {
+ .setdefaulthalftone % Set the default screen before calling Install.
+ } if
+ dup /Install .knownget {
+ { .execinstall } stopped {
+ pop % Install procedure failed. One element will have been left on the stack.
+ % stack: mark <orig> <request> <failed> <merged>
+ 1 index /Install $error /errorname get put % Put it in the "failed" dict
+ % .applypolicies needs stack: <orig> <merged> <failed>
+ exch 4 2 roll exch 4 2 roll .applypolicies exch 4 2 roll exch 4 2 roll
+ % Now execute the old Install -- failures after this are not handled
+ dup /Install .knownget { { .execinstall } stopped { pop } if } if
+ .postinstall stop
+ } {
+ .postinstall
+ } ifelse
+ } {
+ .postinstall
+ } ifelse
+ setglobal % return to original VM allocation mode
+} odef
+
+% We break out the code after calling the Install procedure into a
+% separate procedure, since it is executed even if Install causes an error.
+% By making .execinstall a separate operator procedure, we get the stacks
+% mostly restored if it fails, except for one element (the operand).
+% Thus if it fails, there will be one element left on the op stack.
+
+/.execinstall { % <proc> .execinstall -
+ dup % element left on the stack if the exec fails.
+
+ % Because the interpreter optimizes tail calls, we can't just let
+ % the body of this procedure be 'exec', because that would lose
+ % the stack protection that is the whole reason for having the
+ % procedure in the first place. The 'pop' for the dummy element
+ % on the op stack suffices.
+ exec
+ pop % See above.
+} odef
+
+/.postinstall { % mark ... <failed> <merged> .postinstall -
+ matrix currentmatrix .setdefaultmatrix
+ % Erase and initialize the page.
+ initgraphics
+ currentoverprint //false setoverprint 1 setcolor
+ .fillpage
+ 0 setcolor setoverprint
+ .beginpage
+
+ % Clean up, calling PolicyReport if needed.
+ % Stack: mark ... <failed> <merged>
+SETPDDEBUG { (Finishing.) = pstack flush } if
+
+ exch dup length 0 ne
+ { 1 index /Policies get /PolicyReport get
+ counttomark 1 add 2 roll cleartomark
+ exec
+ }
+ { cleartomark
+ }
+ ifelse pop
+
+} odef
+
+end % level2dict
+.setlanguagelevel
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_statd.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,373 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% This file provides statusdict, serverdict, and assorted LaserWriter
+% operators, mostly for the benefit of poorly designed PostScript programs
+% that 'know' they are running on a LaserWriter.
+
+systemdict begin
+ % We make statusdict a little larger for Level 2 stuff.
+ % Note that it must be allocated in local VM.
+ .currentglobal //false .setglobal
+ /statusdict 91 dict .forcedef % statusdict is local, sys'dict global
+ % To support the Level 2 job control features,
+ % serverdict must also be in local VM.
+ /serverdict 10 dict .forcedef % serverdict is local, sys'dict global
+ .setglobal
+end
+
+statusdict begin
+
+% Keep the table of named paper sizes as procedures. Reuse them later
+% as compatibility operators.
+/.pagetypeprocs 70 dict begin
+
+% Define various paper formats. The Adobe documentation defines only these:
+% 11x17, a3, a4, a4small, b5, ledger, legal, letter, lettersmall, note.
+% These procedures are also accessed as data structures during initialization,
+% so the page dimensions must be the first two elements of the procedure.
+
+/.setpagesize { /statusdict .systemvar begin .setpagesize end } bind def
+
+ % Page sizes defined by Adobe documentation
+ % Note: these executable arrays should all begin with two
+ % integers which are the width and height (see gs_setpd.ps).
+ /11x17 {792 1224 //.setpagesize exec} bind def % 11x17 portrait
+ /a3 {842 1191 //.setpagesize exec} bind def
+ /a4 {595 842 //.setpagesize exec} bind def
+% a4small should be a4 with an ImagingBBox of [25 25 570 817].
+ /a4small /a4 load def
+% b5 see below.
+ /ledger {1224 792 //.setpagesize exec} bind def % 11x17 landscape
+ /legal {612 1008 //.setpagesize exec} bind def
+ /letter {612 792 //.setpagesize exec} bind def
+% lettersmall should be letter with an ImagingBBox of [25 25 587 767].
+ /lettersmall /letter load def
+% note should be letter (or some other size) with the ImagingBBox
+% shrunk by 25 units on all 4 sides.
+ /note /letter load def
+ % End of Adobe-defined page sizes
+STRICT { (%END SIZES) .skipeof } if
+ % Other page sizes
+ % ISO standard paper sizes
+ /a0 {2384 3370 //.setpagesize exec} bind def
+ /a1 {1684 2384 //.setpagesize exec} bind def
+ /a2 {1191 1684 //.setpagesize exec} bind def
+% /a3 {842 1191 //.setpagesize exec} bind def % defined by Adobe
+% /a4 {595 842 //.setpagesize exec} bind def % defined by Adobe
+ /a5 {420 595 //.setpagesize exec} bind def
+ /a6 {297 420 //.setpagesize exec} bind def
+ /a7 {210 297 //.setpagesize exec} bind def
+ /a8 {148 210 //.setpagesize exec} bind def
+ /a9 {105 148 //.setpagesize exec} bind def
+ /a10 {73 105 //.setpagesize exec} bind def
+% ISO and JIS B sizes are different....
+ /isob0 {2835 4008 //.setpagesize exec} bind def
+ /b0 /isob0 load def
+ /isob1 {2004 2835 //.setpagesize exec} bind def
+ /b1 /isob1 load def
+ /isob2 {1417 2004 //.setpagesize exec} bind def
+ /b2 /isob2 load def
+ /isob3 {1001 1417 //.setpagesize exec} bind def
+ /b3 /isob3 load def
+ /isob4 {709 1001 //.setpagesize exec} bind def
+ /b4 /isob4 load def
+ /isob5 {499 709 //.setpagesize exec} bind def
+ /b5 /isob5 load def
+ /isob6 {354 499 //.setpagesize exec} bind def
+ /b6 /isob6 load def
+ /jisb0 {2920 4127 //.setpagesize exec} bind def
+ /jisb1 {2064 2920 //.setpagesize exec} bind def
+ /jisb2 {1460 2064 //.setpagesize exec} bind def
+ /jisb3 {1032 1460 //.setpagesize exec} bind def
+ /jisb4 {729 1032 //.setpagesize exec} bind def
+ /jisb5 {516 729 //.setpagesize exec} bind def
+ /jisb6 {363 516 //.setpagesize exec} bind def
+ /c0 {2599 3677 //.setpagesize exec} bind def
+ /c1 {1837 2599 //.setpagesize exec} bind def
+ /c2 {1298 1837 //.setpagesize exec} bind def
+ /c3 {918 1298 //.setpagesize exec} bind def
+ /c4 {649 918 //.setpagesize exec} bind def
+ /c5 {459 649 //.setpagesize exec} bind def
+ /c6 {323 459 //.setpagesize exec} bind def
+ % U.S. CAD standard paper sizes
+ /archE {2592 3456 //.setpagesize exec} bind def
+ /archD {1728 2592 //.setpagesize exec} bind def
+ /archC {1296 1728 //.setpagesize exec} bind def
+ /archB {864 1296 //.setpagesize exec} bind def
+ /archA {648 864 //.setpagesize exec} bind def
+ % Other paper sizes
+ /flsa {612 936 //.setpagesize exec} bind def % U.S. foolscap
+ /flse {612 936 //.setpagesize exec} bind def % European foolscap
+ /halfletter {396 612 //.setpagesize exec} bind def
+ % minimum of a4 and letter (a4 width, letter length)
+ /pa4 {595 792 //.setpagesize exec} bind def
+ % Japanese postcard size, 100mm x 148mm
+ /hagaki {283 420 //.setpagesize exec} bind def
+ % U.S. ANSI/ASME Y14.1 paper sizes
+ /ANSI_A //letter def
+ /ANSI_B //11x17 def
+ /tabloid //11x17 def
+ /ANSI_C {1224 1585 //.setpagesize exec} bind def
+ /ANSI_D {1585 2448 //.setpagesize exec} bind def
+ /ANSI_E {2448 3168 //.setpagesize exec} bind def
+ /ANSI_F {2016 2880 //.setpagesize exec} bind def
+%END SIZES
+currentdict end
+dup /.setpagesize .undef
+userdict begin dup { def } forall end % reuse!
+readonly def
+
+% Define the pagetype values for the known page formats.
+% This array is now used for deterministic enumeration of .pagetypeprocs
+/.pagetypenames [ .pagetypeprocs { pop } bind forall ]
+ { .namestring exch .namestring gt } bind .sort
+ readonly def
+
+%%%%%% The following items were suggested by a user as useful.
+
+% Permanent definitions
+
+/ramsize 4194304 def
+/hardwareiomode 0 def
+ /sethardwareiomode {pop} bind def
+/softwareiomode 0 def
+ /setsoftwareiomode {pop} bind def
+/dosysstart //false def
+ /setdosysstart {pop} bind def
+/allowjobreset //true def
+ /setallowjobreset {pop} bind def
+/defaultpaperfamily 0 def
+ /setdefaultpaperfamily {pop} bind def
+/defaultpapertray 0 def
+ /setdefaultpapertray {pop} bind def
+/defaulttrayswitch //false def
+ /setdefaulttrayswitch {pop} bind def
+
+% Tray and format selection
+
+ /11x17tray {/11x17 .uservar exec} bind def
+ /a3tray {/a3 .uservar exec} bind def
+ /a4tray {/a4 .uservar exec} bind def
+ /a5tray {/a5 .uservar exec} bind def
+ /a6tray {/a6 .uservar exec} bind def
+ /b4tray {/b4 .uservar exec} bind def
+ /b5tray {/b5 .uservar exec} bind def
+ /flsatray {/flsa .uservar exec} bind def
+ /flsetray {/flse .uservar exec} bind def
+ /halflettertray {/halfletter .uservar exec} bind def
+ /ledgertray {/ledger .uservar exec} bind def
+ /legaltray {/legal .uservar exec} bind def
+ /lettertray {/letter .uservar exec} bind def
+
+% Per-job parameters
+
+/paperfamily 0 def % 0 is US, 1 is European
+/papertray 1 def
+ /setpapertray {statusdict exch /papertray exch put} bind def
+/trayswitch //false def % paperout feeds from another tray
+% We don't implement the (undocumented by Adobe) papersize 'operator',
+% because it's very awkward to make it interact properly with all the
+% different ways of setting the paper size.
+%/papersize {/letter //true} bind def % <name of paper size>, <short-edge-first-p>
+/appletalktype (LaserWriter) def
+
+%%%%%% The following items are defined in the PostScript Language
+%%%%%% Reference Manual, First Edition, and subsequent 'compatibility'
+%%%%%% documentation from Adobe.
+
+ /checkpassword {statusdict begin .password eq end} bind def
+ /defaulttimeouts {statusdict begin .timeouts aload pop end} bind def
+ /diskonline {
+ //false (%disk*%) { pop not exit } 8192 string /IODevice resourceforall
+ } bind def
+ /diskstatus {10240 2097152 } bind odef % - diskstatus <free> <total> (in 1024 byte pages)
+
+%/dostartpage
+ /eescratch {pop 0} bind def
+ /idlefonts {statusdict begin mark .idlefonts aload pop end} bind def
+ /jobname () def
+%/jobtimeout
+ /manualfeed //false def
+ /manualfeedtimeout 60 def
+ /margins {statusdict begin .topmargin .leftmargin end} bind def
+ /pagecount {4711} bind def
+ /pagestackorder {//false} bind def
+ /pagetype 0 def
+ /prefeed //false def
+ /printererror {pop pop} bind def
+ /printername {statusdict /.printername get exch copy} bind def
+ /processcolors /processcolors load def % defined in systemdict
+ /product product def % product is defined in systemdict
+ /revision revision def % revision is defined in systemdict
+ /sccbatch {pop 9600 0} bind def
+ /sccinteractive {pop 9600 0} bind def
+ /setdefaulttimeouts {statusdict begin .timeouts astore pop end} bind def
+ /setdostartpage {statusdict exch /dostartpage exch put} bind def
+ /setduplexmode {mark /Duplex 3 -1 roll currentdevice putdeviceprops} bind def
+ /seteescratch {pop pop} bind def
+ /setidlefonts {] statusdict exch /.idlefonts exch put} bind def
+ /setjobtimeout {statusdict exch /jobtimeout exch put} bind def
+ /setmargins
+ { statusdict begin
+ /.leftmargin exch def /.topmargin exch def
+ end
+ } bind def
+
+% The following compatibility operators are only documented by Adobe in a
+% supplement to the Red Book.
+%
+% - pagemargin <offset>
+% - pageparams <width> <height> <offset> <orientation>
+% <width> <height> <orientation> setpage -
+% <offset> setpagemargin -
+% <width> <height> <offset> <orientation> setpageparams -
+%
+% width and height are in default units (and if orientation is odd, are
+% exchanged!). offset is the x margin, also in default units.
+% Unfortunately, because orientation is relative to the device paper feed,
+% it does not have a consistent meaning in terms of image orientation.
+% We follow the convention that ORIENT1 determines the orientation value
+% that means portait: false means 0, true means 1.
+
+ /pagemargin { 0 } bind def
+ /pageparams
+ { currentdevice 1 dict dup /.MediaSize dup put .getdeviceparams
+ exch pop exch pop aload pop 0 ORIENT1 { 1 } { 0 } ifelse
+ } bind def
+ /setpage
+ { ORIENT1 { 1 } { 0 } ifelse ne {exch} if
+ statusdict /.setpagesize get exec
+ } bind def
+ /setpagemargin {pop} bind def % can't do better without setpagedevice
+ /setpageparams
+ { exch pop ORIENT1 { 1 } { 0 } ifelse ne {exch} if
+ statusdict /.setpagesize get exec
+ } bind def
+ /setpagetype
+ { statusdict begin
+ % The Adobe documentation only defines setpagetype
+ % (a Level 1 operator) as accepting the values 0 and 1,
+ % so we do too.
+ {/letter /note} 1 index get
+ //systemdict /userdict get exch get cvx exec
+ /pagetype exch def
+ end
+ } bind def
+
+ /setpassword
+ {exch checkpassword
+ {statusdict exch /.password exch put //true}
+ {pop //false}
+ ifelse} bind def
+ /setprintername
+ {dup length string copy statusdict exch /.printername exch put} bind def
+
+% setresolution is not documented by Adobe, but some applications
+% use it anyway, without testing whether or not it is present.
+%
+% <pixels_per_inch> setresolution -
+%
+% sets the resolution of the device.
+
+ /setresolution
+ { mark /HWResolution [ 4 -1 roll dup ] currentdevice putdeviceprops pop
+ initmatrix erasepage
+ } bind def
+ /setsccbatch {pop pop pop} bind def
+ /setsccinteractive {pop pop pop} bind def
+ /settumble {pop} bind def
+ /waittimeout 300 def
+
+%%%%%% End of documented items.
+
+/.setpagesize
+ { mark /HWSize [
+ 4 index 4 index matrix defaultmatrix dtransform
+ abs ceiling cvi exch abs ceiling cvi exch
+ ] currentdevice putdeviceprops pop pop pop
+ initmatrix initclip erasepage
+ } bind def
+/.password 0 def
+/.timeouts [0 60 30] def
+//true setdostartpage
+mark setidlefonts
+0 setjobtimeout
+0 0 setmargins
+product setprintername
+
+end % statusdict
+
+%%%%%% The following documented compatibility "operators" are in systemdict,
+%%%%%% not in statusdict.
+
+systemdict begin
+.currentglobal //true .setglobal
+
+/devformat //true def
+/devforall { % <pattern> <proc> <scratch> devforall -
+ exch {
+ 1 index currentdevparams
+ /Type .knownget { /FileSystem eq } { //false } ifelse
+ { exec } { pop pop } ifelse
+ } /exec load 3 packedarray cvx exch
+ (*) 3 1 roll /IODevice resourceforall
+} odef
+
+/devstatus { % <(%disk*%)> devstatus <searchable> <writable>
+ % <hasNames> <mounted> <removable> <searchOrder>
+ % <freePages> <size> //true
+ % <string> devstatus //false
+ dup length 5 ge {
+ dup 0 5 getinterval (%disk) eq {
+ dup /IODevice resourcestatus {
+ pop pop dup currentdevparams
+ dup /Searchable get
+ exch dup /Writeable get
+ exch dup /HasNames get
+ exch dup /Mounted get
+ exch dup /Removable get
+ exch dup /SearchOrder get
+ exch dup /Free get
+ exch /LogicalSize get
+ 9 -1 roll pop //true
+ } {
+ pop //false
+ } ifelse
+ } {
+ pop //false
+ } ifelse
+ } {
+ pop //false
+ } ifelse
+} odef
+
+.setglobal end % systemdict
+
+% The following contents of serverdict are a complete guess,
+% based on some observed LaserWriter boilerplate.
+
+serverdict begin
+
+ /execjob { } bind def
+% The Red Book implies that something like the following is
+% an appropriate definition of exitserver.
+ /exitserver { clear stop } bind def
+% However, this interacts badly with our standard error handler,
+% so we override it with the following less appropriate definition.
+ /exitserver { 0 ne { clear cleardictstack } if } bind def
+ /setrealdevice { } bind def
+
+end % serverdict
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_std_e.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,72 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the standard encoding vector.
+/StandardEncoding
+% \00x
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+% \04x
+ /space /exclam /quotedbl /numbersign
+ /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus
+ /comma /hyphen /period /slash
+ /zero /one /two /three
+ /four /five /six /seven
+ /eight /nine /colon /semicolon
+ /less /equal /greater /question
+% \10x
+ /at /A /B /C /D /E /F /G
+ /H /I /J /K /L /M /N /O
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% \14x
+ /quoteleft /a /b /c /d /e /f /g
+ /h /i /j /k /l /m /n /o
+ /p /q /r /s /t /u /v /w
+ /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+% \20x
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+% \24x
+ /.notdef /exclamdown /cent /sterling
+ /fraction /yen /florin /section
+ /currency /quotesingle /quotedblleft /guillemotleft
+ /guilsinglleft /guilsinglright /fi /fl
+ /.notdef /endash /dagger /daggerdbl
+ /periodcentered /.notdef /paragraph /bullet
+ /quotesinglbase /quotedblbase /quotedblright /guillemotright
+ /ellipsis /perthousand /.notdef /questiondown
+% \30x
+ /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent
+ /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
+ /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+% \34x
+ /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef
+ /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef
+ /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef
+ /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef
+% Make an array on large systems, a packed array on small ones.
+256
+vmstatus exch pop exch pop
+100000 ge { array astore readonly } { packedarray } ifelse
+def
+0 StandardEncoding .registerencoding
+/StandardEncoding StandardEncoding .defineencoding
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_sym_e.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,82 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Define the Symbol encoding vector.
+/currentglobal where
+ { pop currentglobal { setglobal } //true setglobal }
+ { { } }
+ifelse
+/SymbolEncoding
+% \000
+ StandardEncoding 0 32 getinterval aload pop % /.notdef
+% \040
+ /space /exclam /universal /numbersign
+ /existential /percent /ampersand /suchthat
+ /parenleft /parenright /asteriskmath /plus
+ /comma /minus /period /slash
+ /zero /one /two /three
+ /four /five /six /seven
+ /eight /nine /colon /semicolon
+ /less /equal /greater /question
+% \100
+ /congruent /Alpha /Beta /Chi
+ /Delta /Epsilon /Phi /Gamma
+ /Eta /Iota /theta1 /Kappa
+ /Lambda /Mu /Nu /Omicron
+ /Pi /Theta /Rho /Sigma
+ /Tau /Upsilon /sigma1 /Omega
+ /Xi /Psi /Zeta /bracketleft
+ /therefore /bracketright /perpendicular /underscore
+% \140
+ /radicalex /alpha /beta /chi
+ /delta /epsilon /phi /gamma
+ /eta /iota /phi1 /kappa
+ /lambda /mu /nu /omicron
+ /pi /theta /rho /sigma
+ /tau /upsilon /omega1 /omega
+ /xi /psi /zeta /braceleft
+ /bar /braceright /similar /.notdef
+% \200
+ StandardEncoding 0 32 getinterval aload pop % /.notdef
+% \240
+ /Euro /Upsilon1 /minute /lessequal
+ /fraction /infinity /florin /club
+ /diamond /heart /spade /arrowboth
+ /arrowleft /arrowup /arrowright /arrowdown
+ /degree /plusminus /second /greaterequal
+ /multiply /proportional /partialdiff /bullet
+ /divide /notequal /equivalence /approxequal
+ /ellipsis /arrowvertex /arrowhorizex /carriagereturn
+% \300
+ /aleph /Ifraktur /Rfraktur /weierstrass
+ /circlemultiply /circleplus /emptyset /intersection
+ /union /propersuperset /reflexsuperset /notsubset
+ /propersubset /reflexsubset /element /notelement
+ /angle /gradient /registerserif /copyrightserif
+ /trademarkserif /product /radical /dotmath
+ /logicalnot /logicaland /logicalor /arrowdblboth
+ /arrowdblleft /arrowdblup /arrowdblright /arrowdbldown
+% \340
+ /lozenge /angleleft /registersans /copyrightsans
+ /trademarksans /summation /parenlefttp /parenleftex
+ /parenleftbt /bracketlefttp /bracketleftex /bracketleftbt
+ /bracelefttp /braceleftmid /braceleftbt /braceex
+ /.notdef /angleright /integral /integraltp
+ /integralex /integralbt /parenrighttp /parenrightex
+ /parenrightbt /bracketrighttp /bracketrightex /bracketrightbt
+ /bracerighttp /bracerightmid /bracerightbt /.notdef
+256 packedarray .defineencoding
+2 SymbolEncoding .registerencoding
+exec
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_trap.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,102 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% PostScript LanguageLevel 3 in-RIP trapping support.
+
+ll3dict begin
+
+% We need LanguageLevel 2 or higher in order to have setuserparams and
+% defineresource.
+languagelevel dup 2 .max .setlanguagelevel
+
+% ------ Trapping ------ %
+
+% The PostScript-level trapping parameters are maintained in userdict,
+% and explicitly reinstalled upon restore.
+
+/Trapping mark
+
+/settrapparams dup { % <paramdict> settrapparams -
+ /.trapparams .uservar dup length dict .copydict
+ dup 2 index {
+ % Stack: paramdict olddict olddict key value
+ 2 index 2 index known { put dup } { pop pop } ifelse
+ } forall pop
+ dup .settrapparams % Let the operator check parameter validity.
+ .userdict /.trapparams 3 -1 roll put pop
+} bind .makeoperator
+
+/.copyparams { % <obj> .copyparams <obj'>
+ dup type /dicttype eq {
+ dup length dict .copydict
+ dup {
+ .copyparams 3 copy put pop pop
+ } forall
+ } {
+ dup type /arraytype eq {
+ [ exch { .copyparams } forall ]
+ } if
+ } ifelse
+} odef
+
+/currenttrapparams dup { % - currenttrapparams <paramdict>
+ /.trapparams .uservar .copyparams
+} bind .makeoperator
+
+/settrapzone dup { % - settrapzone -
+ % ****** DUMMY ******
+ newpath
+} bind .makeoperator
+
+% Define initial (dummy) trapping parameters.
+% These values are mostly complete guesses.
+userdict /.trapparams mark
+ /BlackColorLimit 1.0
+ /BlackDensityLimit 1.0
+ /BlackWidth 1.0
+ /ColorantZoneDetails 0 dict
+ /Enabled //true
+ /HalftoneName //null
+ /ImageInternalTrapping //false
+ /ImagemaskTrapping //true
+ /ImageResolution 1
+ /ImageToObjectTrapping //true
+ /ImageTrapPlacement /Center
+ /SlidingTrapLimit 1.0
+ /StepLimit 1.0
+ /TrapColorScaling 0.0
+ /TrapSetName //null
+ /TrapWidth 1.0
+.dicttomark readonly put
+
+.dicttomark /ProcSet defineresource pop
+
+% Define the InkParams and TrapParams resource categories.
+{ /InkParams /TrapParams } {
+ /Generic /Category findresource dup maxlength 3 add dict .copydict begin
+ /InstanceType /dicttype def
+ currentdict end /Category defineresource pop
+} forall
+
+% Define the TrappingType resource category.
+/Generic /Category findresource dup maxlength 3 add dict .copydict begin
+ /InstanceType /integertype def
+/TrappingType currentdict end /Category defineresource pop
+
+{1001} { dup /TrappingType defineresource pop } forall
+
+.setlanguagelevel
+
+end % ll3dict
Added: trunk/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps
===================================================================
--- trunk/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps (rev 0)
+++ trunk/Master/tlpkg/tlgs/Resource/Init/gs_ttf.ps 2017-04-23 22:15:25 UTC (rev 43997)
@@ -0,0 +1,1987 @@
+% Copyright (C) 2001-2012 Artifex Software, Inc.
+% All Rights Reserved.
+%
+% This software is provided AS-IS with no warranty, either express or
+% implied.
+%
+% This software is distributed under license and may not be copied,
+% modified or distributed except as expressly authorized under the terms
+% of the license contained in the file LICENSE in this distribution.
+%
+% Refer to licensing information at http://www.artifex.com or contact
+% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+% CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+
+% Support code for direct use of TrueType fonts.
+% (Not needed for Type 42 fonts.)
+
+% Note that if you want to use this file without including the ttfont.dev
+% option when you built Ghostscript, you will need to load the following
+% files before this one:
+% lib/gs_mgl_e.ps
+% lib/gs_mro_e.ps
+% lib/gs_wan_e.ps
+
+% Thanks to B. Jackowski and GUST (the Polish TeX Users' Group) for
+% the glyf-splitting code.
+
+% ---------------- Font loading machinery ---------------- %
+
+% Augment the FONTPATH machinery so it recognizes TrueType fonts.
+
+/.scanfontheaders where {
+ pop /.scanfontheaders [
+ .scanfontheaders aload pop (\000\001\000\000*) (true*) (wOFF*)
+ ] def
+} if
+
+% <file> <key> .findfontvalue <value> true
+% <file> <key> .findfontvalue false
+% Closes the file in either case.
+/.findnonttfontvalue /.findfontvalue load def
+/.findfontvalue {
+ 1 index .is_woff {
+ dup /FontType eq {
+ pop closefile 42 //true
+ } {
+ dup /FontName eq { pop .findwoffname } { pop closefile //false } ifelse
+ } ifelse
+ }
+ {
+ 1 index .is_ttf_or_otf {
+ % If this is a font at all, it's a TrueType font.
+ dup /FontType eq {
+ pop closefile 42 //true
+ } {
+ dup /FontName eq { pop .findttfontname } { pop closefile //false } ifelse
+ } ifelse
+ } {
+ % Not a TrueType font.
+ .findnonttfontvalue
+ } ifelse
+ } ifelse
+} bind def
+
+% <file> .findttfontname <fname> true
+% <file> .findttfontname false
+% Closes the file in either case.
+/.findttfontname {
+ //true 0 .loadttfonttables
+ tabdict /name .knownget {
+ dup 8 getu32 f exch setfileposition
+ 12 getu32
+ dup 65535 gt { pop 65535 } if % protect against extremely large name
+ string f exch readstring pop
+ dup
+ 6 findname not {
+ 4 findname % Try FullName
+ } {
+ exch pop //true
+ }
+ ifelse
+ } {
+ //false
+ } ifelse
+ f closefile end end
+} bind def
+
+/.findwoffname {
+ //true 0 .loadwofftables
+ tabdict /name .knownget {
+ dup /clen exch 8 getu32 def
+ dup /olen exch 12 getu32 def
+ 4 getu32 f exch setfileposition
+ olen dup 65535 gt { pop 65535 } if % protect against extremely large name
+ /fs
+ clen olen ne
+ {f clen () /SubFileDecode filter /FlateDecode filter}
+ {f clen () /SubFileDecode filter}
+ ifelse def
+ string fs exch readstring pop
+ fs closefile
+ dup
+ 6 findname not {
+ 4 findname % Try FullName
+ } {
+ exch pop //true
+ }
+ ifelse
+ } {
+ //false
+ } ifelse
+ f closefile end end
+} bind def
+
+
+% Load a font file that might be a TrueType font.
+
+/tt_tag_dict << <00010000> 0 (true) 0 (typ1) 0 (ttcf) 0 >> readonly def
+/ttf_otf_tag_dict << <00010000> 0 (true) 0 (typ1) 0 (ttcf) 0 (OTTO) 0>> readonly def
+% The wOFF tag is immediately followed by the sfnt "flavour" so for simplicity
+% combine them
+/woff_tag_dict <<
+ (wOFF) 0
+ <774F464600010000> 0 % (wOFF)<00010000> .concatstrings
+ (wOFFtrue) 0
+ (wOFFtyp1) 0
+>> readonly def
+
+% <file> .loadfontfile -
+/.loadnonttfontfile /.loadfontfile load def
+/.loadfontfile {
+ dup (12345678) .peekstring { //woff_tag_dict exch known } { //false } ifelse
+ {
+ .loadwofffont pop
+ }
+ {
+ dup (1234) .peekstring { //tt_tag_dict exch known } { //false } ifelse {
+ % If this is a font at all, it's a TrueType font.
+ .loadttfont pop
+ } {
+ % Not a TrueType font.
+ .loadnonttfontfile
+ } ifelse
+ } ifelse
+} bind def
+
+% <file> .is_ttf_or_otf <bool>
+/.is_ttf_or_otf {
+ dup 0 setfileposition (1234) .peekstring { //ttf_otf_tag_dict exch known } { //false } ifelse
+} bind def
+
+/.is_woff {
+ dup 0 setfileposition (1234) .peekstring { //woff_tag_dict exch known } { //false } ifelse
+} bind def
+
+currentdict /tt_tag_dict .undef
+currentdict /ttf_otf_tag_dict .undef
+currentdict /woff_tag_dict .undef
+
+% ---------------- Automatic Type 42 generation ---------------- %
+
+% Load a TrueType font from a file as a Type 42 PostScript font.
+% The thing that makes this really messy is the handling of encodings.
+% There are 2 interacting tables that affect the encoding:
+% 'cmap' provides multiple maps from character codes to glyph indices
+% 'post' maps glyph indices to glyph names (if present)
+% What we need to get out of this is:
+% Encoding mapping character codes to glyph names
+% (the composition of cmap and post)
+% CharStrings mapping glyph names to glyph indices
+% (the inverse of post)
+% If the post table is missing, we have to take a guess based on the cmap
+% table.
+
+/.loadttfontdict 50 dict dup begin
+
+/orgXUID AladdinEnterprisesXUID def
+/maxstring 32764 def % half the maximum length of a PostScript string,
+ % must be a multiple of 4 (for hmtx / loca / vmtx)
+
+/.invert_encoding % <array> invert_encoding <dict>
+{ dup 256 dict exch
+ 0 exch 1 exch length 1 sub { % [] <> i
+ dup 3 index exch get % [] <> i v
+ dup /.notdef ne {
+ exch 2 index 2 index .knownget {
+ dup type /arraytype eq {
+ [ exch aload pop counttomark 2 add -1 roll ]
+ } {
+ exch 2 array astore
+ } ifelse
+ } if 2 index 3 1 roll put
+ } {
+ pop pop
+ } ifelse
+ } for
+ exch pop
+} bind def
+
+% Make /MacRomanEncodingForTrueType including additional
+% characters in Mac OS Roman encoding, which is missing
+% in /MacRomanEncoding. See PDF spec 1.7, p. 431 or
+% "Inside Macintosh: Text" 1-55, Figure 1-36.
+% This is useful to exploit the glyphs via Apple Roman
+% TrueType cmap subtable, but not appropriate for information
+% interchange.
+
+/MacRomanEncodingForTrueType
+ /MacRomanEncoding .findencoding
+ dup length array copy
+ <<
+ /notequal 173
+ /infinity 176
+ /lessequal 178
+ /greaterequal 179
+ /partialdiff 182
+ /summation 183
+ /product 184
+ /pi 185
+ /integral 186
+ /Omega 189
+ /radical 195
+ /approxequal 197
+ /Delta 198
+ /lozenge 215
+ /Euro 219
+ /apple 240
+ >> {
+ TTFDEBUG { (Extend MacRomanEncodingForTrueType for TrueType: ) =only } if
+
+ % check /.notdef to avoid overwriting
+ 2 index 1 index get dup /.notdef eq {
+ TTFDEBUG { (insert /) =only 2 index =only ( @ ) =only 1 index //== exec } if
+ pop
+ exch 2 index 3 1 roll put
+ } {
+ TTFDEBUG { (cannot insert /) =only 2 index =only ( @ ) =only 1 index =only ( used for ) =only dup //== exec } if
+ pop
+ pop pop
+ } ifelse
+ } forall
+ aload pop
+ 256 packedarray
+ 5 1 index .registerencoding
+.defineencoding
+
+% Define the Macintosh standard mapping from characters to glyph indices.
+/MacRomanEncoding dup .findencoding def
+/MacGlyphEncoding dup .findencoding def
+/MacRomanEncodingForTrueType dup .findencoding def
+
+% Invert the MacRomanEncoding.
+/.romanmacdict MacRomanEncodingForTrueType .invert_encoding def
+/.latin1isodict ISOLatin1Encoding .invert_encoding def
+
+% Define remapping for misnamed glyphs in TrueType 'post' tables.
+% There are probably a lot more than this!
+/postremap mark
+ /Eoverdot /Edotaccent
+ /eoverdot /edotaccent
+.dicttomark readonly def
+
+% Array used for fast pre-filling of cmap array
+/.array1024z [ 1024 { 0 } repeat ] def
+
+% ---- Utilities ---- %
+
+% Define a serial number for creating unique XUIDs for TrueType fonts.
+% We used to use the checkSumAdjustment value from the font, but this is
+% not reliable, since some fonts don't set it correctly.
+% Note that we must do this in a string to make it immune to save/restore.
+
+% handle 64 bit integer objects
+/xuidstring 16#ffffffff 0 gt
+{
+ <8000000000000000>
+}
+{
+ <80000000>
+} ifelse def
+/curxuid { % - curxuid <int>
+ .getCPSImode
+ //false .setCPSImode
+ 0 xuidstring { exch 8 bitshift exch add } forall
+ % for tbe benefit of pdfwrite/ps2write we want the resulting XUID contents
+ % to fit into a 32 bit value
+ 16#ffffffff 0 gt
+ {
+ 16#ffffffff idiv
+ } if
+ exch .setCPSImode
+} bind def
+/nextxuid { % - nextxuid -
+ 3 -1 0 {
+ xuidstring 1 index 2 copy get dup 255 ne {
+ 1 add put pop exit
+ } if pop 0 put pop
+ } for
+} bind def
+
+% <string> <index> getu16 <integer>
+/getu16 {
+ 2 copy get 8 bitshift 3 1 roll 1 add get add
+} bind def
+
+% <string> <index> gets16 <integer>
+/gets16 {
+ getu16 16#8000 xor 16#8000 sub
+} bind def
+
+% <string> <index> getu32 <integer>
+/getu32 {
+ 2 copy getu16 16 bitshift 3 1 roll 2 add getu16 add
+} bind def
+
+% <string> <index> gets32 <integer>
+/gets32 {
+ 2 copy gets16 16 bitshift 3 1 roll 2 add getu16 add
+} bind def
+
+% <string|array> <index> getu16 <integer>
+/getu16a {
+ 2 getinterval_from_stringarray 0 getu16
+} bind def
+
+% <string|array> <index> gets16 <integer>
+/gets16a {
+ 2 getinterval_from_stringarray 0 gets16
+} bind def
+
+% <string|array> <index> getu32a <integer>
+/getu32a {
+ 4 getinterval_from_stringarray 0 getu32
+} bind def
+
+% <string|array> <index> gets32a <integer>
+/gets32a {
+ 4 getinterval_from_stringarray 0 gets32
+} bind def
+
+16#ffffffff 0 gt { % 64-bit sign extension
+ { /gets32 /gets32a} {
+ mark 1 index load aload pop { 16#80000000 xor 16#80000000 sub } aload pop
+ .packtomark cvx def
+ } bind forall
+} if
+
+% <string> <index> <integer> putu16 -
+/putu16 {
+ 3 copy -8 bitshift put
+ exch 1 add exch 16#ff and put
+} bind def
+
+% <string> <index> <integer> putu32 -
+/putu32 {
+ 3 copy -16 bitshift putu16
+ exch 2 add exch 16#ffff and putu16
+} bind def
+
+% <nametable> <nameid> findname <string> true
+% <nametable> <nameid> findname false
+/findname {
+ TTFDEBUG { (findname: ) print dup =only } if
+ //false 3 1 roll
+ 1 index length 0 gt { % check for zero length name table
+ 0 1 3 index 2 getu16 1 sub {
+ % Stack: false table id index
+ 12 mul 6 add 2 index exch 12 getinterval
+ dup 6 getu16 2 index eq 1 index 8 getu16 0 ne and {
+ % We found the name we want.
+ exch pop
+ % Stack: false table record
+ dup 10 getu16 2 index 4 getu16 add
+ 1 index 8 getu16 4 -1 roll 3 1 roll
+ 3 copy add 1 index length
+ le {
+ pop
+ getinterval exch
+ % Stack: false string record
+ % Check for 8- vs. 16-bit characters.
+ is2byte { //true } { dup is2byte2 } ifelse { string2to1 } if //true //null 4 -1 roll exit
+ } {
+ pop pop pop pop
+ //false
+ exit
+ } ifelse
+ } if pop
+ } for
+ } if
+ pop pop
+ TTFDEBUG {
+ dup { ( = ) print 1 index //== exec } { ( not found) = } ifelse
+ } if
+} bind def
+
+% <namerecord> is2byte <bool>
+/is2byte {
+ dup 0 getu16
+ {
+ { pop //true } % Apple Unicode
+ { pop //false } % Macintosh Script manager
+ { 1 getu16 1 eq } % ISO
+ { 1 getu16 1 eq } % Microsoft
+ { pop //false } % default - *MUST* be last
+ }
+ % check for a valid Platform ID, if we don't get one, assume single byte encoding
+ dup length 1 sub
+ 2 index lt {exch pop dup length 1 sub}{exch} ifelse
+ get exec
+} bind def
+
+% <string> is2byte2 <bool>
+/is2byte2 {
+ dup length
+ dup 2 mod 0 ne {
+ pop pop //false
+ } { % s l
+ //true exch % s b l
+ 1 sub 0 exch 2 exch {
+ 2 index exch get 0 ne {
+ pop //false exit
+ } if
+ } for
+ exch pop
+ } ifelse
+} bind def
+
+% <string2> string2to1 <string>
+/string2to1 {
+ dup length 2 idiv string dup
+ 0 1 3 index length 1 sub {
+ 3 index 1 index 2 mul 1 add get put dup
+ } for pop exch pop
+} bind def
+
+% Each procedure in this dictionary is called as follows:
+% <encodingtable> proc <glypharray>
+/cmapformats mark
+ 0 { % Apple standard 1-to-1 mapping.
+ 6 256 getinterval_from_stringarray
+ mark 0 3 -1 roll
+ { 1 index 1 add } forall pop
+ .dicttomark
+ } bind
+ 2 { % Apple 16bit CJK (ShiftJIS etc)
+
+ % /sHK_sz subHeaderKey_size % 1 * uint16
+ % /sH_sz subHeader_size % 4 * uint16
+ % /sH_len subHeader_length
+ % /cmapf2_tblen total table length
+ % /cmapf2_lang language code (not used)
+ % /sHKs subHeaderKeys
+
+ /sHK_sz 2 def
+ /sH_sz 8 def
+ dup 2 getu16a /cmapf2_tblen exch def
+
+ dup 4 getu16a /cmapf2_lang exch def
+
+ dup 6 256 sHK_sz mul getinterval_from_stringarray /sHKs exch def
+
+ 0 % initialization value for /sH_len
+ 0 1 255 {
+ sHKs exch
+ 2 mul getu16a
+ 1 index % get current max
+ 1 index % get current subHeaderKey
+ lt {exch} if pop
+ } for
+ /sH_len exch def
+
+ dup 6 256 sHK_sz mul add
+ cmapf2_tblen 1 index sub getinterval_from_stringarray
+ /sH_gIA exch def
+
+ /cmapf2_glyph_array 0 dict def
+
+ /.cmapf2_putGID {
+ /cmapf2_ch cmapf2_ch_hi 8 bitshift cmapf2_ch_lo add def
+ firstCode cmapf2_ch_lo le
+ cmapf2_ch_lo firstCode entryCount add lt
+ and { % true: j is inside
+ sH_offset idRangeOffset add % offset to gI
+ cmapf2_ch_lo firstCode sub 2 mul % rel. pos. in range
+ add 6 add % offset in sH_gIA
+ sH_gIA exch getu16a
+ dup 0 gt { %
+ idDelta add
+ cmapf2_glyph_array exch cmapf2_ch exch put
+ } {
+ pop
+ % cmapf2_glyph_array cmapf2_ch 0 put
+ } ifelse
+ } { % false: j is outside
+ % cmapf2_glyph_array cmapf2_ch 0 put
+ } ifelse
+ } def
+
+ 16#00 1 16#ff { % hi_byte scan
+ /cmapf2_ch_hi exch def
+ sHKs cmapf2_ch_hi sHK_sz mul getu16a
+ /sH_offset exch def
+ sH_gIA sH_offset sH_sz getinterval
+ dup 0 getu16a /firstCode exch def
+ dup 2 getu16a /entryCount exch def
+ dup 4 gets16a /idDelta exch def
+ dup 6 getu16a /idRangeOffset exch def
+ pop
+ sH_offset 0 eq {
+ /cmapf2_ch_lo cmapf2_ch_hi def
+ /cmapf2_ch_hi 0 def
+ .cmapf2_putGID
+ } {
+ 16#00 1 16#ff { % lo_byte scan
+ /cmapf2_ch_lo exch def
+ .cmapf2_putGID
+ } for
+ } ifelse
+ } for
+ pop
+ cmapf2_glyph_array
+ } bind
+ 4 { % Microsoft/Adobe segmented mapping.
+ /etab exch def
+ /nseg2 etab 6 getu16a def
+ 14 /endc etab 2 index nseg2 getinterval_from_stringarray def
+ % The Apple TrueType documentation omits the 2-byte
+ % 'reserved pad' that follows the endCount vector!
+ 2 add
+ nseg2 add /startc etab 2 index nseg2 getinterval_from_stringarray def
+ nseg2 add /iddelta etab 2 index nseg2 getinterval_from_stringarray def
+ nseg2 add /idroff etab 2 index nseg2 getinterval_from_stringarray def
+ % The following hack allows us to properly handle
+ % idiosyncratic fonts that start at 0xf000:
+ pop
+ /firstcode startc 0 getu16a 16#ff00 and dup 16#f000 ne { pop 0 } if def
+ /putglyph {
+ glyphs code 3 -1 roll put /code code 1 add def
+ } bind def
+ % Do a first pass to compute the size of the glyphs array.
+ /numcodes 0 def
+ /glyphs 0 dict def
+ 0 0 2 nseg2 3 sub {
+ % Stack: /glyphs numglyphs i2
+ /i2 exch def
+ /scode startc i2 getu16a def
+ /ecode endc i2 getu16a def
+
+ % Bug 693538: More undocumented nonsense: in cases where scode == ecode,
+ % see Bug 691326 below *except*, it seems when both are zero
+ scode 0 eq ecode 0 eq and not {
+ scode ecode 1 add gt { % Bug 691326.
+ /ecode scode 1 add def % Acrobat does this contrary to TTF spec that
+ } if % requires such intervals to be ignored.
+
+ numcodes scode firstcode sub
+ % Hack for fonts that have only 0x0000 and 0xf000 ranges
+ %dup 16#e000 ge { 255 and } if
+ % the previous line is obstructive to CJK fonts, so it was removed
+ exch sub 0 .max ecode scode sub 1 add add
+ exch 1 index add exch
+ numcodes add /numcodes exch def
+ } if
+ } for pop
+
+ % Now fill in the array.
+ /numcodes 0 def /code 0 def
+ 0 2 nseg2 3 sub {
+ /i2 exch def
+ /scode startc i2 getu16a def
+ /ecode endc i2 getu16a def
+ % Bug 693538: see above
+ scode 0 eq ecode 0 eq and not {
+ scode ecode 1 add gt { /ecode scode 1 add def } if % Bug 691326. See above.
+
+ numcodes scode firstcode sub
+ % Hack for fonts that have only 0x0000 and 0xf000 ranges
+ %dup 16#e000 ge { 255 and } if
+ % the previous line is obstructive to CJK fonts, so it was removed
+ exch sub 0 .max dup /code exch code exch add def
+ ecode scode sub 1 add add numcodes add /numcodes exch def
+ /delta iddelta i2 gets16a def
+ TTFDEBUG {
+ (scode=) print scode =only
+ ( ecode=) print ecode =only
+ ( delta=) print delta =only
+ ( droff=) print idroff i2 getu16 =
+ } if
+ idroff i2 getu16a dup 0 eq {
+ pop scode delta add 65535 and 1 ecode delta add 65535 and
+ { putglyph } for
+ } { % The +2 is for the 'reserved pad'.
+ /gloff exch 14 nseg2 3 mul add 2 add i2 add add def
+ 0 1 ecode scode sub {
+ 2 mul gloff add etab exch getu16a
+ dup 0 ne { delta add 65535 and } if putglyph
+ } for
+ } ifelse
+ } if
+ } for glyphs /glyphs //null def % for GC
+ } bind
+ 6 { % Single interval lookup.
+ dup 6 getu16a /firstcode exch def
+ dup 8 getu16a /ng exch def
+ ng dict
+ dup
+ % Stack: tab dict dict
+ % Fill elements firstcode .. firstcode+nvalue-1 with glyph values
+ 0 1 ng 1 sub {
+ dup firstcode add exch
+ 2 mul 10 add 4 index exch getu16a 3 copy put pop pop
+ } for pop exch pop
+ } bind
+ 12 { % Microsoft/Adobe segmented mapping.
+ /etab exch def
+ /glyphs 0 dict def
+
+ 0 1
+ etab 12 getu32a % nGroups
+ 1 sub {
+ /ind exch def
+ /gid etab 12 ind mul 8 add 16 add getu32a def % startGlyphID
+ etab 12 ind mul 16 add getu32a % startCharCode
+ 1
+ etab 12 ind mul 4 add 16 add getu32a % endCharCode
+ {
+ gid glyphs 3 1 roll put
+ /gid gid 1 add def
+ } for
+ } for
+ glyphs /glyphs //null def % for GC
+ } bind
+.dicttomark readonly def % cmapformats
+
+% <cmaptab> cmaparray <glypharray>
+/cmaparray {
+ dup 0 getu16a cmapformats exch .knownget {
+ TTFDEBUG {
+ (cmap: format ) print 1 index 0 getu16a = flush
+ } if exec
+ } {
+ (Can't handle format ) print 0 getu16a = flush
+ mark 0 1 255 { dup } for .dicttomark
+ } ifelse
+ TTFDEBUG {
+ (cmap: length=) print dup length = dup ===
+ } if
+} bind def
+
+/get_from_stringarray % <array|string> <offset> get_from_stringarray <int>
+{ 1 index type /stringtype eq {
+ get
+ } {
+ exch { % o ()
+ 2 copy length ge {
+ length sub
+ } {
+ exch get exit
+ } ifelse
+ } forall
+ } ifelse
+} bind def
+
+/getinterval_from_stringarray % <array|string> <offset> <length> getinterval_from_stringarray <string>
+{ % May allocate a string in VM.
+ 2 index type /stringtype eq {
+ getinterval
+ } {
+ dup 65535 le {
+ string exch 0 % [] s o p
+ 4 3 roll { % s o p Si
+ dup length % s o p Si lSi
+ dup 4 index lt {
+ 3 index exch sub % s o p Si o'
+ exch pop 3 1 roll exch pop % s o' p
+ } { % s o p Si lSi
+ dup 3 1 roll % s o p lSi Si lSi
+ 4 index sub % s o p lSi Si lSi-o
+ 5 index length 4 index sub % s o p lSi Si lSi-o ls-p
+ 2 copy gt { exch } if pop % s o p lSi Si minl
+ dup 3 1 roll % s o p lSi minl Si minl
+ 5 index exch getinterval % s o p lSi minl from
+ 5 index 4 index 3 index % s o p lSi minl from s p minl
+ getinterval % s o p lSi minl from to
+ copy pop % s o p lSi minl
+ exch pop add exch pop 0 exch % s 0 p'
+ dup 3 index length ge { exit } if
+ } ifelse
+ } forall
+ pop pop % s
+ } {
+ [ 4 1 roll
+ {
+ dup 0 eq {
+ pop pop pop exit
+ } if
+ 3 copy
+ dup 65535 ge {
+ pop 65535
+ } if
+ getinterval_from_stringarray 4 1 roll
+ 3 index length sub
+ exch
+ 3 index length add
+ exch
+ } loop
+ ]
+ } ifelse
+ } ifelse
+} bind def
+
+/string_array_size % <array|string> string_array_size <int>
+{ dup type /stringtype eq {
+ length
+ } {
+ 0 exch { length add } forall
+ } ifelse
+} bind def
+
+% Each procedure in this dictionary is called as follows:
+% posttable <<proc>> glyphencoding
+/postformats mark
+ 16#00010000 { % 258 standard Macintosh glyphs.
+ pop MacGlyphEncoding
+ }
+ 16#00020000 { % Detailed map, required by Microsoft fonts.
+ dup dup type /arraytype eq { 0 get } if length 36 lt {
+ TTFDEBUG { (post format 2.0 invalid.) = flush } if
+ pop [ ]
+ } {
+ /postglyphs exch def
+ /post_first postglyphs dup type /arraytype eq { 0 get } if def
+ post_first 32 getu16 /numglyphs exch def
+ % Build names array in the order they occur in the 'post' table
+ /postpos numglyphs 2 mul 34 add def
+ /total_length postglyphs //string_array_size exec def
+
+ % the number of names in a post table is not declared up front
+ % and there are fonts with more names than glyph indices <sigh>
+ % so we have to pre-process and find the highest index used.
+ % We start with a base value of numglyphs as it's most common,
+ % and we can safely have a array that's too large.
+ % Rather than parse out the indices twice, we store them in an
+ % array on the stack, which we then reuse, overwriting entries
+ % as we go later on.
+ numglyphs array numglyphs postglyphs
+ 0 1 numglyphs 1 sub {
+ dup 2 mul 34 add 2 index exch 2 //getinterval_from_stringarray exec
+ dup 0 get 8 bitshift exch 1 get add
+ dup 5 index exch
+ 4 -1 roll exch put
+ 258 sub dup 3 index gt
+ % if we find a reference to an index higher than the value
+ % already on the stack, replace the value on the stack
+ { 3 -1 roll pop 2 1 roll} {pop} ifelse
+ } for
+ pop
+ 1 add array 0 1 2 index length 1 sub {
+ postpos total_length ge {
+ % Fill the rest with .notdef
+ 1 2 index length 1 sub { 1 index exch /.notdef put } for
+ exit
+ } if
@@ Diff output truncated at 1234567 characters. @@
More information about the tex-live-commits
mailing list