hexapdf 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +68 -0
  3. data/CONTRIBUTERS +1 -1
  4. data/README.md +35 -4
  5. data/Rakefile +1 -0
  6. data/VERSION +1 -1
  7. data/data/hexapdf/cmap/83pv-RKSJ-H +314 -0
  8. data/data/hexapdf/cmap/90ms-RKSJ-H +259 -0
  9. data/data/hexapdf/cmap/90ms-RKSJ-V +156 -0
  10. data/data/hexapdf/cmap/90msp-RKSJ-H +257 -0
  11. data/data/hexapdf/cmap/90msp-RKSJ-V +155 -0
  12. data/data/hexapdf/cmap/90pv-RKSJ-H +355 -0
  13. data/data/hexapdf/cmap/Add-RKSJ-H +738 -0
  14. data/data/hexapdf/cmap/Add-RKSJ-V +135 -0
  15. data/data/hexapdf/cmap/Adobe-CNS1-UCS2 +18209 -0
  16. data/data/hexapdf/cmap/Adobe-GB1-UCS2 +14267 -0
  17. data/data/hexapdf/cmap/Adobe-Japan1-UCS2 +19159 -0
  18. data/data/hexapdf/cmap/Adobe-Korea1-UCS2 +9267 -0
  19. data/data/hexapdf/cmap/B5pc-H +337 -0
  20. data/data/hexapdf/cmap/B5pc-V +90 -0
  21. data/data/hexapdf/cmap/CNS-EUC-H +490 -0
  22. data/data/hexapdf/cmap/CNS-EUC-V +538 -0
  23. data/data/hexapdf/cmap/ETen-B5-H +343 -0
  24. data/data/hexapdf/cmap/ETen-B5-V +91 -0
  25. data/data/hexapdf/cmap/ETenms-B5-H +79 -0
  26. data/data/hexapdf/cmap/ETenms-B5-V +99 -0
  27. data/data/hexapdf/cmap/EUC-H +207 -0
  28. data/data/hexapdf/cmap/EUC-V +105 -0
  29. data/data/hexapdf/cmap/Ext-RKSJ-H +768 -0
  30. data/data/hexapdf/cmap/Ext-RKSJ-V +117 -0
  31. data/data/hexapdf/cmap/GB-EUC-H +173 -0
  32. data/data/hexapdf/cmap/GB-EUC-V +98 -0
  33. data/data/hexapdf/cmap/GBK-EUC-H +4273 -0
  34. data/data/hexapdf/cmap/GBK-EUC-V +97 -0
  35. data/data/hexapdf/cmap/GBK2K-H +5325 -0
  36. data/data/hexapdf/cmap/GBK2K-V +118 -0
  37. data/data/hexapdf/cmap/GBKp-EUC-H +4272 -0
  38. data/data/hexapdf/cmap/GBKp-EUC-V +97 -0
  39. data/data/hexapdf/cmap/GBpc-EUC-H +175 -0
  40. data/data/hexapdf/cmap/GBpc-EUC-V +98 -0
  41. data/data/hexapdf/cmap/H +200 -0
  42. data/data/hexapdf/cmap/HKscs-B5-H +1331 -0
  43. data/data/hexapdf/cmap/HKscs-B5-V +90 -0
  44. data/data/hexapdf/cmap/Identity-H +339 -0
  45. data/data/hexapdf/cmap/Identity-V +73 -0
  46. data/data/hexapdf/cmap/KSC-EUC-H +562 -0
  47. data/data/hexapdf/cmap/KSC-EUC-V +94 -0
  48. data/data/hexapdf/cmap/KSCms-UHC-H +776 -0
  49. data/data/hexapdf/cmap/KSCms-UHC-HW-H +775 -0
  50. data/data/hexapdf/cmap/KSCms-UHC-HW-V +93 -0
  51. data/data/hexapdf/cmap/KSCms-UHC-V +94 -0
  52. data/data/hexapdf/cmap/KSCpc-EUC-H +608 -0
  53. data/data/hexapdf/cmap/LICENSE.txt +26 -0
  54. data/data/hexapdf/cmap/README.txt +9 -0
  55. data/data/hexapdf/cmap/UniCNS-UCS2-H +16992 -0
  56. data/data/hexapdf/cmap/UniCNS-UCS2-V +90 -0
  57. data/data/hexapdf/cmap/UniCNS-UTF16-H +19117 -0
  58. data/data/hexapdf/cmap/UniCNS-UTF16-V +94 -0
  59. data/data/hexapdf/cmap/UniGB-UCS2-H +14321 -0
  60. data/data/hexapdf/cmap/UniGB-UCS2-V +101 -0
  61. data/data/hexapdf/cmap/UniGB-UTF16-H +14381 -0
  62. data/data/hexapdf/cmap/UniGB-UTF16-V +104 -0
  63. data/data/hexapdf/cmap/UniJIS-UCS2-H +8870 -0
  64. data/data/hexapdf/cmap/UniJIS-UCS2-HW-H +81 -0
  65. data/data/hexapdf/cmap/UniJIS-UCS2-HW-V +279 -0
  66. data/data/hexapdf/cmap/UniJIS-UCS2-V +275 -0
  67. data/data/hexapdf/cmap/UniJIS-UTF16-H +14450 -0
  68. data/data/hexapdf/cmap/UniJIS-UTF16-V +299 -0
  69. data/data/hexapdf/cmap/UniKS-UCS2-H +8725 -0
  70. data/data/hexapdf/cmap/UniKS-UCS2-V +95 -0
  71. data/data/hexapdf/cmap/UniKS-UTF16-H +8895 -0
  72. data/data/hexapdf/cmap/UniKS-UTF16-V +99 -0
  73. data/data/hexapdf/cmap/V +105 -0
  74. data/examples/arc.rb +3 -3
  75. data/examples/merging.rb +4 -1
  76. data/examples/optimizing.rb +3 -0
  77. data/examples/show_char_bboxes.rb +2 -2
  78. data/examples/truetype.rb +2 -2
  79. data/lib/hexapdf/cli.rb +40 -1
  80. data/lib/hexapdf/cli/batch.rb +72 -0
  81. data/lib/hexapdf/cli/command.rb +112 -15
  82. data/lib/hexapdf/cli/files.rb +2 -2
  83. data/lib/hexapdf/cli/images.rb +14 -6
  84. data/lib/hexapdf/cli/info.rb +6 -8
  85. data/lib/hexapdf/cli/inspect.rb +5 -8
  86. data/lib/hexapdf/cli/merge.rb +13 -20
  87. data/lib/hexapdf/cli/modify.rb +4 -7
  88. data/lib/hexapdf/cli/optimize.rb +2 -5
  89. data/lib/hexapdf/configuration.rb +32 -3
  90. data/lib/hexapdf/content/canvas.rb +130 -37
  91. data/lib/hexapdf/content/parser.rb +40 -6
  92. data/lib/hexapdf/content/processor.rb +4 -4
  93. data/lib/hexapdf/document.rb +40 -10
  94. data/lib/hexapdf/document/fonts.rb +1 -0
  95. data/lib/hexapdf/encryption/security_handler.rb +8 -12
  96. data/lib/hexapdf/filter/flate_decode.rb +25 -2
  97. data/lib/hexapdf/font/cmap.rb +124 -8
  98. data/lib/hexapdf/font/cmap/parser.rb +65 -15
  99. data/lib/hexapdf/font/encoding/base.rb +2 -2
  100. data/lib/hexapdf/font/encoding/glyph_list.rb +2 -4
  101. data/lib/hexapdf/font/true_type.rb +1 -0
  102. data/lib/hexapdf/font/true_type/builder.rb +75 -0
  103. data/lib/hexapdf/font/true_type/optimizer.rb +65 -0
  104. data/lib/hexapdf/font/true_type/subsetter.rb +9 -22
  105. data/lib/hexapdf/font/true_type_wrapper.rb +9 -21
  106. data/lib/hexapdf/font_loader.rb +1 -1
  107. data/lib/hexapdf/importer.rb +1 -1
  108. data/lib/hexapdf/serializer.rb +5 -3
  109. data/lib/hexapdf/type.rb +2 -0
  110. data/lib/hexapdf/type/cid_font.rb +120 -0
  111. data/lib/hexapdf/type/font.rb +32 -12
  112. data/lib/hexapdf/type/font_simple.rb +34 -42
  113. data/lib/hexapdf/type/font_type0.rb +148 -0
  114. data/lib/hexapdf/type/form.rb +4 -4
  115. data/lib/hexapdf/type/page.rb +12 -11
  116. data/lib/hexapdf/type/resources.rb +14 -0
  117. data/lib/hexapdf/utils/graphics_helpers.rb +77 -0
  118. data/lib/hexapdf/version.rb +1 -1
  119. data/man/man1/hexapdf.1 +43 -1
  120. data/test/hexapdf/content/test_canvas.rb +76 -0
  121. data/test/hexapdf/content/test_parser.rb +20 -1
  122. data/test/hexapdf/content/test_processor.rb +11 -7
  123. data/test/hexapdf/document/test_fonts.rb +3 -1
  124. data/test/hexapdf/font/cmap/test_parser.rb +42 -7
  125. data/test/hexapdf/font/encoding/test_base.rb +1 -1
  126. data/test/hexapdf/font/encoding/test_glyph_list.rb +3 -3
  127. data/test/hexapdf/font/test_cmap.rb +104 -0
  128. data/test/hexapdf/font/test_true_type_wrapper.rb +63 -46
  129. data/test/hexapdf/font/true_type/test_builder.rb +37 -0
  130. data/test/hexapdf/font/true_type/test_optimizer.rb +27 -0
  131. data/test/hexapdf/font/true_type/test_subsetter.rb +6 -13
  132. data/test/hexapdf/test_configuration.rb +12 -7
  133. data/test/hexapdf/test_document.rb +24 -0
  134. data/test/hexapdf/test_importer.rb +9 -1
  135. data/test/hexapdf/test_writer.rb +2 -2
  136. data/test/hexapdf/type/test_cid_font.rb +61 -0
  137. data/test/hexapdf/type/test_font.rb +31 -4
  138. data/test/hexapdf/type/test_font_simple.rb +6 -21
  139. data/test/hexapdf/type/test_font_type0.rb +114 -0
  140. data/test/hexapdf/type/test_resources.rb +17 -1
  141. data/test/hexapdf/utils/test_graphics_helpers.rb +29 -0
  142. metadata +82 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ecec6549dbb8ccc811ea329857ff768bb248d9ca
4
- data.tar.gz: 2e04be0ab4a81fc11491314b18ad95411dc2a0cc
3
+ metadata.gz: 506ca50e79972288ec42dcfb6b31b436500da5c7
4
+ data.tar.gz: ea88dc0891a1ce15cf40a6d8cc4e6a15e9a05583
5
5
  SHA512:
6
- metadata.gz: 4a447429d78977fb78336e4f000d4b53d13bb40fd9e27a4d5a02b9a984d6e2fad76dbbe4d8a069236e24d1295b49ec996eb09d416cbe2668018b3331109e4df1
7
- data.tar.gz: aba92a4c25811ab09146a3dafb544194c4aa42373098137ffe339061c1b779c5239afd092521cfe683d4bc8b9e11e609e108213e94375894c854278dac98be41
6
+ metadata.gz: b9a9fd668aa6a2ad42a93a42c7cd6d1e2864a5841cf21bd1191815916a8cca4a229d3a1ed5657ece44edbadd1b82975f974c2dc10ae10bd8ca9a720649ce4dcf
7
+ data.tar.gz: e2bf96c4158ca5cb440bebe9fb85b3d1a61e7b8caa53a13908ab1ac4b9638488593ff6875382d799477e1fedcea4620f248e71f9970fd6478b1ce94b06a9ed61
data/CHANGELOG.md CHANGED
@@ -1,3 +1,71 @@
1
+ ## 0.4.0 - 2017-03-19
2
+
3
+ ### Added
4
+
5
+ * [HexaPDF::Type::FontType0] and [HexaPDF::Type::CIDFont] for composite font
6
+ support
7
+ * Complete support for CMaps for use with composite fonts; the interface for
8
+ [HexaPDF::Font::CMap] changed to accomodate this
9
+ * CLI command `hexapdf batch` for batch execution of a single command for
10
+ multiple input files
11
+ * CLI option `--verbose` for more verbose output; also changed the default
12
+ verbosity level to only display warnings and not informational messages
13
+ * CLI option `--quiet` for suppressing additional and diagnostic output
14
+ * CLI option `--strict` for enabling strict parsing and validation; also
15
+ changed the default from strict to non-strict parsing/validation
16
+ * CLI optimization option `--optimize-fonts` for optimizing embedded fonts
17
+ * Method `#word_spacing_applicable?` to font types
18
+ * Support for marked-content points and sequences in [HexaPDF::Content::Canvas]
19
+ * Support for property lists in a page's resource dictionary
20
+ * Show file name and size in `hexapdf info` output
21
+ * [HexaPDF::Type::Font#font_file] for getting the embedded font file
22
+ * [HexaPDF::Font::TrueType::Optimizer] for optimizing TrueType fonts
23
+ * Configuration option 'filter.flate_memory' for configuring memory use of the
24
+ [HexaPDF::Filter::FlateDecode] filter
25
+ * Method [HexaPDF::Content::Canvas#show_glyphs_only] for faster glyph showing
26
+ without text matrix calculations
27
+ * Methods for caching expensive computations of PDF objects
28
+ ([HexaPDF::Document#cache] and others)
29
+
30
+ ### Changed
31
+
32
+ * Enabled in-place processing of PDF files for all CLI commands
33
+ * Show warning instead of exiting when extracting images with `hexapdf images`
34
+ and an image format is not supported
35
+ * Handling of character code to Unicode mapping:
36
+ - [HexaPDF::Font::CMap#to_unicode], [HexaPDF::Font::Encoding::Base#unicode]
37
+ and [HexaPDF::Font::Encoding::GlyphList#name_to_unicode] return `nil`
38
+ instead of an empty string
39
+ - Font dictionaries use the new configuration option
40
+ 'font.on_missing_unicode_mapping' in their `#to_utf8` method
41
+ * [HexaPDF::Configuration#constantize] to raise error if constant is not found
42
+ * Extracted TrueType font file building code into new module
43
+ [HexaPDF::Font::TrueType::Builder]
44
+ * [HexaPDF::Filter::FlateDecode] filter to use pools of Zlib inflaters and
45
+ deflaters to conserve memory
46
+
47
+ ### Fixed
48
+
49
+ * Use of wrong glyph IDs for glyph width entries and unicode mapping for subset
50
+ TrueType fonts
51
+ * Invalid document reference when importing wrapped direct objects with
52
+ [HexaPDF::Importer]
53
+ * Invalid type of /DW key in CIDFont dictionary when embedding TrueType fonts
54
+ * Caching problem in [HexaPDF::Document::Fonts] which lead to multiple instances
55
+ of the same font
56
+ * Bug in handling of word spacing with respect to offset calculations when
57
+ showing or extracting text
58
+ * Incorrect handling of page rotation values in `hexapdf merge`
59
+ * Missing handling of certain rotation values in `hexapdf modify`
60
+ * Removal of unused pages in `hexapdf modify`
61
+ * Handling of invalid page numbers in CLI commands
62
+ * Useless multiple extraction of the same image in `hexapdf images`
63
+ * Type of /VP entry of [HexaPDF::Type::Page]
64
+ * Parsing of inline images that contain the end-of-image marker
65
+ * High memory usage due to not closing `Zlib::Stream` objects in
66
+ [HexaPDF::Filter::FlateDecode]
67
+
68
+
1
69
  ## 0.3.0 - 2017-01-25
2
70
 
3
71
  ### Added
data/CONTRIBUTERS CHANGED
@@ -1,3 +1,3 @@
1
1
  Count Name
2
2
  ======= ====
3
- 682 Thomas Leitner <t_leitner@gmx.at>
3
+ 741 Thomas Leitner <t_leitner@gmx.at>
data/README.md CHANGED
@@ -28,7 +28,7 @@ PDF file:
28
28
  require 'hexapdf'
29
29
 
30
30
  doc = HexaPDF::Document.new
31
- canvas = doc.pages.add_page.canvas
31
+ canvas = doc.pages.add.canvas
32
32
  canvas.font('Helvetica', size: 100)
33
33
  canvas.text("Hello World!", at: [20, 400])
34
34
  doc.write("hello-world.pdf")
@@ -57,10 +57,23 @@ hexapdf`.
57
57
 
58
58
  ## Difference to Prawn
59
59
 
60
- [Prawn] is a Ruby library that can be used for creating PDF files. It has been in development since
61
- 2008 and currently provides more features in regard to PDF content creation than HexaPDF.
60
+ The main difference between HexaPDF and [Prawn] is that HexaPDF is a **full PDF library** whereas
61
+ Prawn is a **library for generating content**.
62
62
 
63
- So why use HexaPDF? Because it differs significantly from Prawn in how it is implemented:
63
+ To be more specific, it is easily possible to read an existing PDF with HexaPDF and modify parts of
64
+ it before writing it out again. The modifications can be to the PDF object structure like removing
65
+ superfluous annotations or the the content itself.
66
+
67
+ Prawn has no such functionality. There is basic support for using a PDF as a template using the
68
+ `pdf-reader` and `prawn-template` gems but support is very limited. However, Prawn has a very
69
+ featureful API when it comes to creating content, for individual pages as well as across pages.
70
+
71
+ Such functionality will be incorporated into HexaPDF in the near future. The main functionality for
72
+ providing such a feature is already available in HexaPDF (the [page canvas API]). What's missing
73
+ (and this is quite big chunk) is automatic box and page layout so that one can say: There is a box
74
+ on this page with these dimensions at this position; show this text in the box.
75
+
76
+ So why use HexaPDF?
64
77
 
65
78
  * The architecture of HexaPDF is based on the object model of the PDF standard. This makes extending
66
79
  HexaPDF very easy and allows for **reading PDF files for templating purposes**.
@@ -70,13 +83,31 @@ So why use HexaPDF? Because it differs significantly from Prawn in how it is imp
70
83
  emphasized text and so on. These elements can be customized and additional element types easily
71
84
  added.
72
85
 
86
+ * In addition to being usable as a library, HexaPDF also comes with a command line tool for
87
+ manipulating PDFs. This tool is intended to be a replacement for tools like `pdftk` and the
88
+ various Poppler-based tools like `pdfinfo`, `pdfimages`, ...
89
+
73
90
  [Prawn]: http://prawnpdf.org
91
+ [page canvas API]: https://hexapdf.gettalong.org/api/HexaPDF/Content/Canvas.html
74
92
 
75
93
 
76
94
  ## License
77
95
 
78
96
  See the LICENSE file for licensing details.
79
97
 
98
+ Some included files have a different license:
99
+
100
+ * For the license of the included AFM files in the `data/hexapdf/afm` directory, see the file
101
+ `data/hexapdf/afm/MustRead.html`.
102
+
103
+ * The files `test/data/encoding/{glyphlist.txt,zapfdingbats.txt}` are licensed under the Apache
104
+ License V2.0.
105
+
106
+ * The file `test/data/fonts/Ubuntu-Title.ttf` is licensed under the SIL Open Font License.
107
+
108
+ * The AES test vector files in `test/data/aes-test-vectors` have been created using the test vector
109
+ file available from <http://csrc.nist.gov/groups/STM/cavp/block-ciphers.html#test-vectors>.
110
+
80
111
 
81
112
  ## Contributing
82
113
 
data/Rakefile CHANGED
@@ -66,6 +66,7 @@ namespace :dev do
66
66
  s.default_executable = 'hexapdf'
67
67
  s.add_dependency('cmdparse', '~> 3.0', '>= 3.0.3')
68
68
  s.add_development_dependency('kramdown', '~> 1.0', '>= 1.13.0')
69
+ s.required_ruby_version = '>= 2.3'
69
70
 
70
71
  s.author = 'Thomas Leitner'
71
72
  s.email = 't_leitner@gmx.at'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.4.0
@@ -0,0 +1,314 @@
1
+ %!PS-Adobe-3.0 Resource-CMap
2
+ %%DocumentNeededResources: ProcSet (CIDInit)
3
+ %%IncludeResource: ProcSet (CIDInit)
4
+ %%BeginResource: CMap (83pv-RKSJ-H)
5
+ %%Title: (83pv-RKSJ-H Adobe Japan1 1)
6
+ %%Version: 10.005
7
+ %%Copyright: -----------------------------------------------------------
8
+ %%Copyright: Copyright 1990-2015 Adobe Systems Incorporated.
9
+ %%Copyright: All rights reserved.
10
+ %%Copyright:
11
+ %%Copyright: Redistribution and use in source and binary forms, with or
12
+ %%Copyright: without modification, are permitted provided that the
13
+ %%Copyright: following conditions are met:
14
+ %%Copyright:
15
+ %%Copyright: Redistributions of source code must retain the above
16
+ %%Copyright: copyright notice, this list of conditions and the following
17
+ %%Copyright: disclaimer.
18
+ %%Copyright:
19
+ %%Copyright: Redistributions in binary form must reproduce the above
20
+ %%Copyright: copyright notice, this list of conditions and the following
21
+ %%Copyright: disclaimer in the documentation and/or other materials
22
+ %%Copyright: provided with the distribution.
23
+ %%Copyright:
24
+ %%Copyright: Neither the name of Adobe Systems Incorporated nor the names
25
+ %%Copyright: of its contributors may be used to endorse or promote
26
+ %%Copyright: products derived from this software without specific prior
27
+ %%Copyright: written permission.
28
+ %%Copyright:
29
+ %%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
30
+ %%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
31
+ %%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
32
+ %%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
33
+ %%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
34
+ %%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
35
+ %%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
36
+ %%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
37
+ %%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38
+ %%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
39
+ %%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
40
+ %%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
41
+ %%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42
+ %%Copyright: -----------------------------------------------------------
43
+ %%EndComments
44
+
45
+ /CIDInit /ProcSet findresource begin
46
+
47
+ 12 dict begin
48
+
49
+ begincmap
50
+
51
+ /CIDSystemInfo 3 dict dup begin
52
+ /Registry (Adobe) def
53
+ /Ordering (Japan1) def
54
+ /Supplement 1 def
55
+ end def
56
+
57
+ /CMapName /83pv-RKSJ-H def
58
+ /CMapVersion 10.005 def
59
+ /CMapType 1 def
60
+
61
+ /UIDOffset 0 def
62
+ /XUID [1 10 25324] def
63
+
64
+ /WMode 0 def
65
+
66
+ 5 begincodespacerange
67
+ <00> <80>
68
+ <8140> <9FFC>
69
+ <A0> <DF>
70
+ <E040> <FCFC>
71
+ <FD> <FF>
72
+ endcodespacerange
73
+
74
+ 1 beginnotdefrange
75
+ <00> <1f> 1
76
+ endnotdefrange
77
+
78
+ 100 begincidrange
79
+ <20> <7e> 1
80
+ <80> <80> 97
81
+ <8140> <817e> 633
82
+ <8180> <81ac> 696
83
+ <81b8> <81bf> 741
84
+ <81c8> <81ce> 749
85
+ <81da> <81e8> 756
86
+ <81f0> <81f7> 771
87
+ <81fc> <81fc> 779
88
+ <824f> <8258> 780
89
+ <8260> <8279> 790
90
+ <8281> <829a> 816
91
+ <829f> <82f1> 842
92
+ <8340> <837e> 925
93
+ <8380> <8396> 988
94
+ <839f> <83b6> 1011
95
+ <83bf> <83d6> 1035
96
+ <8440> <8460> 1059
97
+ <8470> <847e> 1092
98
+ <8480> <8491> 1107
99
+ <849f> <849f> 7479
100
+ <84a0> <84a0> 7481
101
+ <84a1> <84a1> 7491
102
+ <84a2> <84a2> 7495
103
+ <84a3> <84a3> 7503
104
+ <84a4> <84a4> 7499
105
+ <84a5> <84a5> 7507
106
+ <84a6> <84a6> 7523
107
+ <84a7> <84a7> 7515
108
+ <84a8> <84a8> 7531
109
+ <84a9> <84a9> 7539
110
+ <84aa> <84aa> 7480
111
+ <84ab> <84ab> 7482
112
+ <84ac> <84ac> 7494
113
+ <84ad> <84ad> 7498
114
+ <84ae> <84ae> 7506
115
+ <84af> <84af> 7502
116
+ <84b0> <84b0> 7514
117
+ <84b1> <84b1> 7530
118
+ <84b2> <84b2> 7522
119
+ <84b3> <84b3> 7538
120
+ <84b4> <84b4> 7554
121
+ <84b5> <84b5> 7511
122
+ <84b6> <84b6> 7526
123
+ <84b7> <84b7> 7519
124
+ <84b8> <84b8> 7534
125
+ <84b9> <84b9> 7542
126
+ <84ba> <84ba> 7508
127
+ <84bb> <84bb> 7527
128
+ <84bc> <84bc> 7516
129
+ <84bd> <84bd> 7535
130
+ <84be> <84be> 7545
131
+ <8540> <857e> 232
132
+ <8580> <8580> 390
133
+ <8581> <859e> 296
134
+ <859f> <85dd> 327
135
+ <85de> <85fc> 391
136
+ <8640> <867e> 422
137
+ <8680> <8691> 485
138
+ <8692> <8692> 295
139
+ <8693> <869e> 503
140
+ <86a2> <86ed> 7479
141
+ <8740> <875d> 7555
142
+ <875f> <8775> 7585
143
+ <8780> <878f> 7608
144
+ <8790> <8790> 762
145
+ <8791> <8791> 761
146
+ <8792> <8792> 769
147
+ <8793> <8799> 7624
148
+ <879a> <879a> 768
149
+ <879b> <879c> 7631
150
+ <889f> <88fc> 1125
151
+ <8940> <897e> 1219
152
+ <8980> <89fc> 1282
153
+ <8a40> <8a7e> 1407
154
+ <8a80> <8afc> 1470
155
+ <8b40> <8b7e> 1595
156
+ <8b80> <8bfc> 1658
157
+ <8c40> <8c7e> 1783
158
+ <8c80> <8cfc> 1846
159
+ <8d40> <8d7e> 1971
160
+ <8d80> <8dfc> 2034
161
+ <8e40> <8e7e> 2159
162
+ <8e80> <8efc> 2222
163
+ <8f40> <8f7e> 2347
164
+ <8f80> <8ffc> 2410
165
+ <9040> <907e> 2535
166
+ <9080> <90fc> 2598
167
+ <9140> <917e> 2723
168
+ <9180> <91fc> 2786
169
+ <9240> <927e> 2911
170
+ <9280> <92fc> 2974
171
+ <9340> <937e> 3099
172
+ <9380> <93fc> 3162
173
+ <9440> <947e> 3287
174
+ <9480> <94fc> 3350
175
+ <9540> <957e> 3475
176
+ <9580> <95fc> 3538
177
+ <9640> <967e> 3663
178
+ <9680> <96fc> 3726
179
+ endcidrange
180
+
181
+ 100 begincidrange
182
+ <9740> <977e> 3851
183
+ <9780> <97fc> 3914
184
+ <9840> <9872> 4039
185
+ <989f> <98fc> 4090
186
+ <9940> <997e> 4184
187
+ <9980> <99fc> 4247
188
+ <9a40> <9a7e> 4372
189
+ <9a80> <9afc> 4435
190
+ <9b40> <9b7e> 4560
191
+ <9b80> <9bfc> 4623
192
+ <9c40> <9c7e> 4748
193
+ <9c80> <9cfc> 4811
194
+ <9d40> <9d7e> 4936
195
+ <9d80> <9dfc> 4999
196
+ <9e40> <9e7e> 5124
197
+ <9e80> <9efc> 5187
198
+ <9f40> <9f7e> 5312
199
+ <9f80> <9ffc> 5375
200
+ <a0> <df> 326
201
+ <e040> <e07e> 5500
202
+ <e080> <e0fc> 5563
203
+ <e140> <e17e> 5688
204
+ <e180> <e1fc> 5751
205
+ <e240> <e27e> 5876
206
+ <e280> <e2fc> 5939
207
+ <e340> <e37e> 6064
208
+ <e380> <e3fc> 6127
209
+ <e440> <e47e> 6252
210
+ <e480> <e4fc> 6315
211
+ <e540> <e57e> 6440
212
+ <e580> <e5fc> 6503
213
+ <e640> <e67e> 6628
214
+ <e680> <e6fc> 6691
215
+ <e740> <e77e> 6816
216
+ <e780> <e7fc> 6879
217
+ <e840> <e87e> 7004
218
+ <e880> <e8fc> 7067
219
+ <e940> <e97e> 7192
220
+ <e980> <e9fc> 7255
221
+ <ea40> <ea7e> 7380
222
+ <ea80> <eaa2> 7443
223
+ <eaa3> <eaa4> 8284
224
+ <eb40> <eb40> 633
225
+ <eb41> <eb42> 7887
226
+ <eb43> <eb4f> 636
227
+ <eb50> <eb51> 7889
228
+ <eb52> <eb5a> 651
229
+ <eb5b> <eb5d> 7891
230
+ <eb5e> <eb5f> 663
231
+ <eb60> <eb64> 7894
232
+ <eb65> <eb68> 670
233
+ <eb69> <eb7a> 7899
234
+ <eb7b> <eb7e> 692
235
+ <eb80> <eb80> 696
236
+ <eb81> <eb81> 7917
237
+ <eb82> <ebac> 698
238
+ <ebb8> <ebbf> 741
239
+ <ebc8> <ebce> 749
240
+ <ebda> <ebe8> 756
241
+ <ebf0> <ebf7> 771
242
+ <ebfc> <ebfc> 779
243
+ <ec4f> <ec58> 780
244
+ <ec60> <ec79> 790
245
+ <ec81> <ec9a> 816
246
+ <ec9f> <ec9f> 7918
247
+ <eca0> <eca0> 843
248
+ <eca1> <eca1> 7919
249
+ <eca2> <eca2> 845
250
+ <eca3> <eca3> 7920
251
+ <eca4> <eca4> 847
252
+ <eca5> <eca5> 7921
253
+ <eca6> <eca6> 849
254
+ <eca7> <eca7> 7922
255
+ <eca8> <ecc0> 851
256
+ <ecc1> <ecc1> 7923
257
+ <ecc2> <ece0> 877
258
+ <ece1> <ece1> 7924
259
+ <ece2> <ece2> 909
260
+ <ece3> <ece3> 7925
261
+ <ece4> <ece4> 911
262
+ <ece5> <ece5> 7926
263
+ <ece6> <eceb> 913
264
+ <ecec> <ecec> 7927
265
+ <eced> <ecf1> 920
266
+ <ed40> <ed40> 7928
267
+ <ed41> <ed41> 926
268
+ <ed42> <ed42> 7929
269
+ <ed43> <ed43> 928
270
+ <ed44> <ed44> 7930
271
+ <ed45> <ed45> 930
272
+ <ed46> <ed46> 7931
273
+ <ed47> <ed47> 932
274
+ <ed48> <ed48> 7932
275
+ <ed49> <ed61> 934
276
+ <ed62> <ed62> 7933
277
+ <ed63> <ed7e> 960
278
+ <ed80> <ed82> 988
279
+ <ed83> <ed83> 7934
280
+ <ed84> <ed84> 992
281
+ <ed85> <ed85> 7935
282
+ endcidrange
283
+
284
+ 22 begincidrange
285
+ <ed86> <ed86> 994
286
+ <ed87> <ed87> 7936
287
+ <ed88> <ed8d> 996
288
+ <ed8e> <ed8e> 7937
289
+ <ed8f> <ed94> 1003
290
+ <ed95> <ed96> 7938
291
+ <ed9f> <edb6> 1011
292
+ <edbf> <edd6> 1035
293
+ <ee40> <ee5d> 7555
294
+ <ee5f> <ee6e> 7940
295
+ <ee6f> <ee75> 7601
296
+ <ee80> <ee81> 7956
297
+ <ee82> <ee8f> 7610
298
+ <ee90> <ee90> 762
299
+ <ee91> <ee91> 761
300
+ <ee92> <ee92> 769
301
+ <ee93> <ee99> 7624
302
+ <ee9a> <ee9a> 768
303
+ <ee9b> <ee9c> 7631
304
+ <fd> <fd> 152
305
+ <fe> <fe> 228
306
+ <ff> <ff> 124
307
+ endcidrange
308
+ endcmap
309
+ CMapName currentdict /CMap defineresource pop
310
+ end
311
+ end
312
+
313
+ %%EndResource
314
+ %%EOF