rpdf2txt 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. data/History.txt +5 -0
  2. data/LICENCE +515 -0
  3. data/Manifest.txt +126 -0
  4. data/README.txt +30 -0
  5. data/Rakefile +24 -0
  6. data/bin/rpdf2txt +58 -0
  7. data/config.save +12 -0
  8. data/install.rb +1098 -0
  9. data/lib/rpdf2txt-rockit/base_extensions.rb +73 -0
  10. data/lib/rpdf2txt-rockit/bootstrap.rb +120 -0
  11. data/lib/rpdf2txt-rockit/bounded_lru_cache.rb +43 -0
  12. data/lib/rpdf2txt-rockit/conflict_resolution.rb +302 -0
  13. data/lib/rpdf2txt-rockit/directed_graph.rb +401 -0
  14. data/lib/rpdf2txt-rockit/glr_parser.rb +393 -0
  15. data/lib/rpdf2txt-rockit/grammar.rb +644 -0
  16. data/lib/rpdf2txt-rockit/graphdrawing.rb +107 -0
  17. data/lib/rpdf2txt-rockit/graphviz_dot.rb +63 -0
  18. data/lib/rpdf2txt-rockit/indexable.rb +53 -0
  19. data/lib/rpdf2txt-rockit/lalr_parsetable_generator.rb +144 -0
  20. data/lib/rpdf2txt-rockit/parse_table.rb +273 -0
  21. data/lib/rpdf2txt-rockit/parsetable_generation.rb +164 -0
  22. data/lib/rpdf2txt-rockit/parsing_ambiguities.rb +84 -0
  23. data/lib/rpdf2txt-rockit/profiler.rb +168 -0
  24. data/lib/rpdf2txt-rockit/reduce_actions_generator.rb +523 -0
  25. data/lib/rpdf2txt-rockit/rockit.rb +76 -0
  26. data/lib/rpdf2txt-rockit/rockit_grammar_ast_eval.rb +187 -0
  27. data/lib/rpdf2txt-rockit/rockit_grammars_parser.rb +126 -0
  28. data/lib/rpdf2txt-rockit/sourcecode_dumpable.rb +181 -0
  29. data/lib/rpdf2txt-rockit/stringscanner.rb +54 -0
  30. data/lib/rpdf2txt-rockit/syntax_tree.rb +452 -0
  31. data/lib/rpdf2txt-rockit/token.rb +364 -0
  32. data/lib/rpdf2txt-rockit/version.rb +3 -0
  33. data/lib/rpdf2txt/attributesparser.rb +42 -0
  34. data/lib/rpdf2txt/cmapparser.rb +65 -0
  35. data/lib/rpdf2txt/data/_cmap.grammar +11 -0
  36. data/lib/rpdf2txt/data/_cmap_range.grammar +15 -0
  37. data/lib/rpdf2txt/data/_pdfattributes.grammar +32 -0
  38. data/lib/rpdf2txt/data/cmap.grammar +11 -0
  39. data/lib/rpdf2txt/data/cmap.rb +37 -0
  40. data/lib/rpdf2txt/data/cmap_range.grammar +15 -0
  41. data/lib/rpdf2txt/data/cmap_range.rb +43 -0
  42. data/lib/rpdf2txt/data/fonts/Courier-Bold.afm +342 -0
  43. data/lib/rpdf2txt/data/fonts/Courier-BoldOblique.afm +342 -0
  44. data/lib/rpdf2txt/data/fonts/Courier-Oblique.afm +342 -0
  45. data/lib/rpdf2txt/data/fonts/Courier.afm +342 -0
  46. data/lib/rpdf2txt/data/fonts/Helvetica-Bold.afm +2827 -0
  47. data/lib/rpdf2txt/data/fonts/Helvetica-BoldOblique.afm +2827 -0
  48. data/lib/rpdf2txt/data/fonts/Helvetica-Oblique.afm +3051 -0
  49. data/lib/rpdf2txt/data/fonts/Helvetica.afm +3051 -0
  50. data/lib/rpdf2txt/data/fonts/License-Adobe.txt +65 -0
  51. data/lib/rpdf2txt/data/fonts/Symbol.afm +213 -0
  52. data/lib/rpdf2txt/data/fonts/Times-Bold.afm +2588 -0
  53. data/lib/rpdf2txt/data/fonts/Times-BoldItalic.afm +2384 -0
  54. data/lib/rpdf2txt/data/fonts/Times-Italic.afm +2667 -0
  55. data/lib/rpdf2txt/data/fonts/Times-Roman.afm +2419 -0
  56. data/lib/rpdf2txt/data/fonts/ZapfDingbats.afm +225 -0
  57. data/lib/rpdf2txt/data/pdfattributes.grammar +32 -0
  58. data/lib/rpdf2txt/data/pdfattributes.rb +71 -0
  59. data/lib/rpdf2txt/data/pdftext.grammar +102 -0
  60. data/lib/rpdf2txt/data/pdftext.rb +146 -0
  61. data/lib/rpdf2txt/default_handler.rb +352 -0
  62. data/lib/rpdf2txt/lzw.rb +69 -0
  63. data/lib/rpdf2txt/object.rb +1114 -0
  64. data/lib/rpdf2txt/parser.rb +169 -0
  65. data/lib/rpdf2txt/symbol.rb +408 -0
  66. data/lib/rpdf2txt/text.rb +182 -0
  67. data/lib/rpdf2txt/text_state.rb +434 -0
  68. data/lib/rpdf2txt/textparser.rb +42 -0
  69. data/test/data/3392_obj +0 -0
  70. data/test/data/397_decrypted +15 -0
  71. data/test/data/450_decrypted +153 -0
  72. data/test/data/450_obj +0 -0
  73. data/test/data/452_decrypted +125 -0
  74. data/test/data/454_decrypted +108 -0
  75. data/test/data/456_decrypted +106 -0
  76. data/test/data/458_decrypted +111 -0
  77. data/test/data/458_obj +0 -0
  78. data/test/data/460_decrypted +118 -0
  79. data/test/data/460_obj +0 -0
  80. data/test/data/463_decrypted +117 -0
  81. data/test/data/465_decrypted +107 -0
  82. data/test/data/465_obj +0 -0
  83. data/test/data/90_obj +0 -0
  84. data/test/data/90_obj_comp +1 -0
  85. data/test/data/decrypted +0 -0
  86. data/test/data/encrypt_obj +0 -0
  87. data/test/data/encrypt_string +0 -0
  88. data/test/data/encrypt_string_128bit +0 -0
  89. data/test/data/encrypted_object_stream.pdf +0 -0
  90. data/test/data/firststream +1 -0
  91. data/test/data/index.pdfobj +0 -0
  92. data/test/data/index_2bit.pdfobj +0 -0
  93. data/test/data/index_masked.pdfobj +0 -0
  94. data/test/data/indexed.pdfobj +0 -0
  95. data/test/data/indexed_2bit.pdfobj +0 -0
  96. data/test/data/indexed_masked.pdfobj +0 -0
  97. data/test/data/inline.png +0 -0
  98. data/test/data/logo.png +0 -0
  99. data/test/data/lzw.pdfobj +0 -0
  100. data/test/data/lzw_index.pdfobj +0 -0
  101. data/test/data/page_tree.pdf +148 -0
  102. data/test/data/pdf_20.png +0 -0
  103. data/test/data/pdf_21.png +0 -0
  104. data/test/data/pdf_22.png +0 -0
  105. data/test/data/pdf_50.png +0 -0
  106. data/test/data/png.pdfobj +0 -0
  107. data/test/data/space_bug_stream.txt +119 -0
  108. data/test/data/stream.txt +292 -0
  109. data/test/data/stream_kerning_bug.txt +13 -0
  110. data/test/data/stream_kerning_bug2.txt +6 -0
  111. data/test/data/test.pdf +0 -0
  112. data/test/data/test.txt +8 -0
  113. data/test/data/test_text.txt +42 -0
  114. data/test/data/working_obj +0 -0
  115. data/test/data/working_obj2 +0 -0
  116. data/test/mock.rb +149 -0
  117. data/test/suite.rb +30 -0
  118. data/test/test_pdf_object.rb +1802 -0
  119. data/test/test_pdf_parser.rb +1340 -0
  120. data/test/test_pdf_text.rb +789 -0
  121. data/test/test_space_bug_05_2004.rb +87 -0
  122. data/test/test_stream.rb +194 -0
  123. data/test/test_text_state.rb +315 -0
  124. data/usage-en.txt +112 -0
  125. data/user-stories/UserStories_Rpdf2Txt.txt +34 -0
  126. data/user-stories/documents/swissmedicjournal/04_2004.pdf +0 -0
  127. metadata +220 -0
@@ -0,0 +1,11 @@
1
+ Grammar CMap
2
+ Tokens
3
+ SPACE = /\s+/n [:Skip]
4
+ HEXSNIPPET = /[0-9A-F]+/in
5
+ Productions
6
+ HexArray -> RangeDef+
7
+ [^: values ]
8
+ RangeDef -> HexElement HexElement
9
+ [: source, target ]
10
+ HexElement -> '<' HEXSNIPPET '>'
11
+ [^: _, hexsnip, _ ]
@@ -0,0 +1,15 @@
1
+ Grammar CMap
2
+ Tokens
3
+ SPACE = /\s+/n [:Skip]
4
+ HEXSNIPPET = /[0-9A-F]+/in
5
+ Productions
6
+ HexArray -> RangeDef+
7
+ [^: values ]
8
+ RangeDef -> HexElement HexElement HexElement
9
+ [: start, stop, offset ]
10
+ | HexElement HexElement Explicit
11
+ [: start, stop, explicit ]
12
+ Explicit -> '[' HexElement+ ']'
13
+ [^: _, explicit, _ ]
14
+ HexElement -> '<' HEXSNIPPET '>'
15
+ [^: _, hexsnip, _ ]
@@ -0,0 +1,32 @@
1
+ Grammar PdfAttributes
2
+ Tokens
3
+ IDENTIFIER = /^\/[\w:+\#\-\.]*(, ?[\w:+\#\-\.]*)*/n
4
+ NUMERIC = /-?[0-9]+([.,][0-9]+)?/n
5
+ REFERENCE = /[0-9]+\s+[0-9]+\s+R/n
6
+ WORD = /[a-z\.]{2,}/in
7
+ SPACE = /\s+/mn [:Skip]
8
+ COMMENT = /%[^%]*%/mn [:Skip]
9
+ FILEIDENTIFIER = /<[a-zA-Z0-9\n]+>/n
10
+ Productions
11
+ Expr -> IDENTIFIER [^: val]
12
+ | Hash [^: val]
13
+ | Array [^: val]
14
+ | REFERENCE [^: val]
15
+ | NUMERIC [^: val]
16
+ | Text [^: val]
17
+ | Date [^: val]
18
+ | WORD [^: val]
19
+ | FILEIDENTIFIER [^: val]
20
+ Array -> '[' ArrayElements ']'
21
+ [: _, values, _]
22
+ | '[' ']'
23
+ [: _, _]
24
+ ArrayElements -> ArrayElement+
25
+ [^: values]
26
+ ArrayElement -> (Array|Hash|NUMERIC|IDENTIFIER|REFERENCE|WORD|FILEIDENTIFIER|Text)
27
+ [^: _]
28
+ Hash -> '<<' (IDENTIFIER Expr)* '>>'
29
+ [: _, pairs, _]
30
+ Date -> '(D:' /[\d+']+/n ')'
31
+ Text -> /\(([^\)\\]|\\[\(\)\\]?)*?\)/n
32
+ [: text]
@@ -0,0 +1,11 @@
1
+ Grammar CMap
2
+ Tokens
3
+ SPACE = /\s+/n [:Skip]
4
+ HEXSNIPPET = /[0-9A-F]+/in
5
+ Productions
6
+ HexArray -> RangeDef+
7
+ [^: values ]
8
+ RangeDef -> HexElement HexElement
9
+ [: source, target ]
10
+ HexElement -> '<' HEXSNIPPET '>'
11
+ [^: _, hexsnip, _ ]
@@ -0,0 +1,37 @@
1
+ require 'rpdf2txt-rockit/rockit'
2
+ module Rpdf2txt
3
+ # Parser for CMap
4
+ # created by Rockit version 0.3.8 on Tue Dec 14 18:03:10 +0100 2010
5
+ # Rockit is copyright (c) 2001 Robert Feldt, feldt@ce.chalmers.se
6
+ # and licensed under GPL
7
+ # but this parser is under LGPL
8
+ tokens = [
9
+ t1 = EofToken.new("EOF",/^(�~~��~^^~4158671330)/),
10
+ t2 = Token.new("SPACE",/^(\s+)/n,:Skip),
11
+ t3 = Token.new("HEXSNIPPET",/^([0-9A-F]+)/in),
12
+ t4 = StringToken.new("StrToken61","<"),
13
+ t5 = StringToken.new("StrToken63",">")
14
+ ]
15
+ productions = [
16
+ p1 = Production.new("HexArray'".intern,[:HexArray],SyntaxTreeBuilder.new("HexArray'",["hexarray"],[])),
17
+ p2 = Production.new(:HexArray,[:"Plus-611119798"],LiftingSyntaxTreeBuilder.new(["values"],[])),
18
+ p3 = Production.new(:"Plus-611119798",[:"Plus-611119798", :RangeDef],ArrayNodeBuilder.new([1],0,nil,nil,[],true)),
19
+ p4 = Production.new(:"Plus-611119798",[:RangeDef],ArrayNodeBuilder.new([0],nil,nil,nil,[],true)),
20
+ p5 = Production.new(:RangeDef,[:HexElement, :HexElement],SyntaxTreeBuilder.new("RangeDef",["source", "target"],[])),
21
+ p6 = Production.new(:HexElement,[t4, t3, t5],LiftingSyntaxTreeBuilder.new(["_", "hexsnip", "_"],[]))
22
+ ]
23
+ relations = [
24
+
25
+ ]
26
+ priorities = ProductionPriorities.new(relations)
27
+ action_table = [[9, 8], [2, 1], [25, 4], [9, 8], [9, 8, 4, 1], [12, 29], [37, 16], [16, 29], [8, 29], [20, 29]]
28
+ goto_hash = {0 => {1 => 1, 2 => 4, 3 => 5, 4 => 3}, 3 => {4 => 7}, 4 => {3 => 8, 4 => 3}}
29
+ @@parse_table_611168728 = ParseTable.new(productions,tokens,priorities,action_table,goto_hash,2,[
30
+ :REDUCE,
31
+ :SHIFT,
32
+ :ACCEPT
33
+ ])
34
+ def Rpdf2txt._cmap_parser
35
+ GeneralizedLrParser.new(@@parse_table_611168728)
36
+ end
37
+ end
@@ -0,0 +1,15 @@
1
+ Grammar CMap
2
+ Tokens
3
+ SPACE = /\s+/n [:Skip]
4
+ HEXSNIPPET = /[0-9A-F]+/in
5
+ Productions
6
+ HexArray -> RangeDef+
7
+ [^: values ]
8
+ RangeDef -> HexElement HexElement HexElement
9
+ [: start, stop, offset ]
10
+ | HexElement HexElement Explicit
11
+ [: start, stop, explicit ]
12
+ Explicit -> '[' HexElement+ ']'
13
+ [^: _, explicit, _ ]
14
+ HexElement -> '<' HEXSNIPPET '>'
15
+ [^: _, hexsnip, _ ]
@@ -0,0 +1,43 @@
1
+ require 'rpdf2txt-rockit/rockit'
2
+ module Rpdf2txt
3
+ # Parser for CMap
4
+ # created by Rockit version 0.3.8 on Tue Dec 14 18:03:11 +0100 2010
5
+ # Rockit is copyright (c) 2001 Robert Feldt, feldt@ce.chalmers.se
6
+ # and licensed under GPL
7
+ # but this parser is under LGPL
8
+ tokens = [
9
+ t1 = EofToken.new("EOF",/^(�~~��~^^~6498354225)/),
10
+ t2 = Token.new("SPACE",/^(\s+)/n,:Skip),
11
+ t3 = Token.new("HEXSNIPPET",/^([0-9A-F]+)/in),
12
+ t4 = StringToken.new("StrToken93","["),
13
+ t5 = StringToken.new("StrToken95","]"),
14
+ t6 = StringToken.new("StrToken61","<"),
15
+ t7 = StringToken.new("StrToken63",">")
16
+ ]
17
+ productions = [
18
+ p1 = Production.new("HexArray'".intern,[:HexArray],SyntaxTreeBuilder.new("HexArray'",["hexarray"],[])),
19
+ p2 = Production.new(:HexArray,[:"Plus-611547858"],LiftingSyntaxTreeBuilder.new(["values"],[])),
20
+ p3 = Production.new(:"Plus-611547858",[:"Plus-611547858", :RangeDef],ArrayNodeBuilder.new([1],0,nil,nil,[],true)),
21
+ p4 = Production.new(:"Plus-611547858",[:RangeDef],ArrayNodeBuilder.new([0],nil,nil,nil,[],true)),
22
+ p5 = Production.new(:RangeDef,[:HexElement, :HexElement, :HexElement],SyntaxTreeBuilder.new("RangeDef",["start", "stop", "offset"],[])),
23
+ p6 = Production.new(:RangeDef,[:HexElement, :HexElement, :Explicit],SyntaxTreeBuilder.new("RangeDef",["start", "stop", "explicit"],[])),
24
+ p7 = Production.new(:Explicit,[t4, :"Plus-611556138", t5],LiftingSyntaxTreeBuilder.new(["_", "explicit", "_"],[])),
25
+ p8 = Production.new(:"Plus-611556138",[:"Plus-611556138", :HexElement],ArrayNodeBuilder.new([1],0,nil,nil,[],true)),
26
+ p9 = Production.new(:"Plus-611556138",[:HexElement],ArrayNodeBuilder.new([0],nil,nil,nil,[],true)),
27
+ p10 = Production.new(:HexElement,[t6, t3, t7],LiftingSyntaxTreeBuilder.new(["_", "hexsnip", "_"],[]))
28
+ ]
29
+ relations = [
30
+
31
+ ]
32
+ priorities = ProductionPriorities.new(relations)
33
+ action_table = [[9, 32], [2, 1], [25, 4], [9, 32], [9, 32, 4, 1], [12, 125], [37, 64], [9, 32, 49, 8], [8, 125], [36, 125], [20, 125], [16, 125], [9, 32], [32, 116], [61, 16, 9, 32], [24, 125], [28, 116]]
34
+ goto_hash = {0 => {6 => 3, 1 => 1, 2 => 4, 3 => 5}, 12 => {5 => 14, 6 => 13}, 7 => {6 => 11, 4 => 10}, 14 => {6 => 16}, 3 => {6 => 7}, 4 => {6 => 3, 3 => 8}}
35
+ @@parse_table_611607208 = ParseTable.new(productions,tokens,priorities,action_table,goto_hash,2,[
36
+ :REDUCE,
37
+ :SHIFT,
38
+ :ACCEPT
39
+ ])
40
+ def Rpdf2txt._cmap_range_parser
41
+ GeneralizedLrParser.new(@@parse_table_611607208)
42
+ end
43
+ end
@@ -0,0 +1,342 @@
1
+ StartFontMetrics 4.1
2
+ Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
3
+ Comment Creation Date: Mon Jun 23 16:28:00 1997
4
+ Comment UniqueID 43048
5
+ Comment VMusage 41139 52164
6
+ FontName Courier-Bold
7
+ FullName Courier Bold
8
+ FamilyName Courier
9
+ Weight Bold
10
+ ItalicAngle 0
11
+ IsFixedPitch true
12
+ CharacterSet ExtendedRoman
13
+ FontBBox -113 -250 749 801
14
+ UnderlinePosition -100
15
+ UnderlineThickness 50
16
+ Version 003.000
17
+ Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
18
+ EncodingScheme AdobeStandardEncoding
19
+ CapHeight 562
20
+ XHeight 439
21
+ Ascender 629
22
+ Descender -157
23
+ StdHW 84
24
+ StdVW 106
25
+ StartCharMetrics 315
26
+ C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
27
+ C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ;
28
+ C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ;
29
+ C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ;
30
+ C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ;
31
+ C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ;
32
+ C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ;
33
+ C 39 ; WX 600 ; N quoteright ; B 171 277 423 562 ;
34
+ C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ;
35
+ C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ;
36
+ C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ;
37
+ C 43 ; WX 600 ; N plus ; B 71 39 529 478 ;
38
+ C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ;
39
+ C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ;
40
+ C 46 ; WX 600 ; N period ; B 192 -15 408 171 ;
41
+ C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ;
42
+ C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ;
43
+ C 49 ; WX 600 ; N one ; B 81 0 539 616 ;
44
+ C 50 ; WX 600 ; N two ; B 61 0 499 616 ;
45
+ C 51 ; WX 600 ; N three ; B 63 -15 501 616 ;
46
+ C 52 ; WX 600 ; N four ; B 53 0 507 616 ;
47
+ C 53 ; WX 600 ; N five ; B 70 -15 521 601 ;
48
+ C 54 ; WX 600 ; N six ; B 90 -15 521 616 ;
49
+ C 55 ; WX 600 ; N seven ; B 55 0 494 601 ;
50
+ C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ;
51
+ C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ;
52
+ C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ;
53
+ C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ;
54
+ C 60 ; WX 600 ; N less ; B 66 15 523 501 ;
55
+ C 61 ; WX 600 ; N equal ; B 71 118 529 398 ;
56
+ C 62 ; WX 600 ; N greater ; B 77 15 534 501 ;
57
+ C 63 ; WX 600 ; N question ; B 98 -14 501 580 ;
58
+ C 64 ; WX 600 ; N at ; B 16 -15 584 616 ;
59
+ C 65 ; WX 600 ; N A ; B -9 0 609 562 ;
60
+ C 66 ; WX 600 ; N B ; B 30 0 573 562 ;
61
+ C 67 ; WX 600 ; N C ; B 22 -18 560 580 ;
62
+ C 68 ; WX 600 ; N D ; B 30 0 594 562 ;
63
+ C 69 ; WX 600 ; N E ; B 25 0 560 562 ;
64
+ C 70 ; WX 600 ; N F ; B 39 0 570 562 ;
65
+ C 71 ; WX 600 ; N G ; B 22 -18 594 580 ;
66
+ C 72 ; WX 600 ; N H ; B 20 0 580 562 ;
67
+ C 73 ; WX 600 ; N I ; B 77 0 523 562 ;
68
+ C 74 ; WX 600 ; N J ; B 37 -18 601 562 ;
69
+ C 75 ; WX 600 ; N K ; B 21 0 599 562 ;
70
+ C 76 ; WX 600 ; N L ; B 39 0 578 562 ;
71
+ C 77 ; WX 600 ; N M ; B -2 0 602 562 ;
72
+ C 78 ; WX 600 ; N N ; B 8 -12 610 562 ;
73
+ C 79 ; WX 600 ; N O ; B 22 -18 578 580 ;
74
+ C 80 ; WX 600 ; N P ; B 48 0 559 562 ;
75
+ C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ;
76
+ C 82 ; WX 600 ; N R ; B 24 0 599 562 ;
77
+ C 83 ; WX 600 ; N S ; B 47 -22 553 582 ;
78
+ C 84 ; WX 600 ; N T ; B 21 0 579 562 ;
79
+ C 85 ; WX 600 ; N U ; B 4 -18 596 562 ;
80
+ C 86 ; WX 600 ; N V ; B -13 0 613 562 ;
81
+ C 87 ; WX 600 ; N W ; B -18 0 618 562 ;
82
+ C 88 ; WX 600 ; N X ; B 12 0 588 562 ;
83
+ C 89 ; WX 600 ; N Y ; B 12 0 589 562 ;
84
+ C 90 ; WX 600 ; N Z ; B 62 0 539 562 ;
85
+ C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ;
86
+ C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ;
87
+ C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ;
88
+ C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ;
89
+ C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
90
+ C 96 ; WX 600 ; N quoteleft ; B 178 277 428 562 ;
91
+ C 97 ; WX 600 ; N a ; B 35 -15 570 454 ;
92
+ C 98 ; WX 600 ; N b ; B 0 -15 584 626 ;
93
+ C 99 ; WX 600 ; N c ; B 40 -15 545 459 ;
94
+ C 100 ; WX 600 ; N d ; B 20 -15 591 626 ;
95
+ C 101 ; WX 600 ; N e ; B 40 -15 563 454 ;
96
+ C 102 ; WX 600 ; N f ; B 83 0 547 626 ; L i fi ; L l fl ;
97
+ C 103 ; WX 600 ; N g ; B 30 -146 580 454 ;
98
+ C 104 ; WX 600 ; N h ; B 5 0 592 626 ;
99
+ C 105 ; WX 600 ; N i ; B 77 0 523 658 ;
100
+ C 106 ; WX 600 ; N j ; B 63 -146 440 658 ;
101
+ C 107 ; WX 600 ; N k ; B 20 0 585 626 ;
102
+ C 108 ; WX 600 ; N l ; B 77 0 523 626 ;
103
+ C 109 ; WX 600 ; N m ; B -22 0 626 454 ;
104
+ C 110 ; WX 600 ; N n ; B 18 0 592 454 ;
105
+ C 111 ; WX 600 ; N o ; B 30 -15 570 454 ;
106
+ C 112 ; WX 600 ; N p ; B -1 -142 570 454 ;
107
+ C 113 ; WX 600 ; N q ; B 20 -142 591 454 ;
108
+ C 114 ; WX 600 ; N r ; B 47 0 580 454 ;
109
+ C 115 ; WX 600 ; N s ; B 68 -17 535 459 ;
110
+ C 116 ; WX 600 ; N t ; B 47 -15 532 562 ;
111
+ C 117 ; WX 600 ; N u ; B -1 -15 569 439 ;
112
+ C 118 ; WX 600 ; N v ; B -1 0 601 439 ;
113
+ C 119 ; WX 600 ; N w ; B -18 0 618 439 ;
114
+ C 120 ; WX 600 ; N x ; B 6 0 594 439 ;
115
+ C 121 ; WX 600 ; N y ; B -4 -142 601 439 ;
116
+ C 122 ; WX 600 ; N z ; B 81 0 520 439 ;
117
+ C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ;
118
+ C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ;
119
+ C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ;
120
+ C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ;
121
+ C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ;
122
+ C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ;
123
+ C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ;
124
+ C 164 ; WX 600 ; N fraction ; B 25 -60 576 661 ;
125
+ C 165 ; WX 600 ; N yen ; B 10 0 590 562 ;
126
+ C 166 ; WX 600 ; N florin ; B -30 -131 572 616 ;
127
+ C 167 ; WX 600 ; N section ; B 83 -70 517 580 ;
128
+ C 168 ; WX 600 ; N currency ; B 54 49 546 517 ;
129
+ C 169 ; WX 600 ; N quotesingle ; B 227 277 373 562 ;
130
+ C 170 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ;
131
+ C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ;
132
+ C 172 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ;
133
+ C 173 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ;
134
+ C 174 ; WX 600 ; N fi ; B 12 0 593 626 ;
135
+ C 175 ; WX 600 ; N fl ; B 12 0 593 626 ;
136
+ C 177 ; WX 600 ; N endash ; B 65 203 535 313 ;
137
+ C 178 ; WX 600 ; N dagger ; B 106 -70 494 580 ;
138
+ C 179 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ;
139
+ C 180 ; WX 600 ; N periodcentered ; B 196 165 404 351 ;
140
+ C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ;
141
+ C 183 ; WX 600 ; N bullet ; B 140 132 460 430 ;
142
+ C 184 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ;
143
+ C 185 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ;
144
+ C 186 ; WX 600 ; N quotedblright ; B 61 277 525 562 ;
145
+ C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ;
146
+ C 188 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ;
147
+ C 189 ; WX 600 ; N perthousand ; B -113 -15 713 616 ;
148
+ C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ;
149
+ C 193 ; WX 600 ; N grave ; B 132 508 395 661 ;
150
+ C 194 ; WX 600 ; N acute ; B 205 508 468 661 ;
151
+ C 195 ; WX 600 ; N circumflex ; B 103 483 497 657 ;
152
+ C 196 ; WX 600 ; N tilde ; B 89 493 512 636 ;
153
+ C 197 ; WX 600 ; N macron ; B 88 505 512 585 ;
154
+ C 198 ; WX 600 ; N breve ; B 83 468 517 631 ;
155
+ C 199 ; WX 600 ; N dotaccent ; B 230 498 370 638 ;
156
+ C 200 ; WX 600 ; N dieresis ; B 128 498 472 638 ;
157
+ C 202 ; WX 600 ; N ring ; B 198 481 402 678 ;
158
+ C 203 ; WX 600 ; N cedilla ; B 205 -206 387 0 ;
159
+ C 205 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ;
160
+ C 206 ; WX 600 ; N ogonek ; B 169 -199 400 0 ;
161
+ C 207 ; WX 600 ; N caron ; B 103 493 497 667 ;
162
+ C 208 ; WX 600 ; N emdash ; B -10 203 610 313 ;
163
+ C 225 ; WX 600 ; N AE ; B -29 0 602 562 ;
164
+ C 227 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ;
165
+ C 232 ; WX 600 ; N Lslash ; B 39 0 578 562 ;
166
+ C 233 ; WX 600 ; N Oslash ; B 22 -22 578 584 ;
167
+ C 234 ; WX 600 ; N OE ; B -25 0 595 562 ;
168
+ C 235 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ;
169
+ C 241 ; WX 600 ; N ae ; B -4 -15 601 454 ;
170
+ C 245 ; WX 600 ; N dotlessi ; B 77 0 523 439 ;
171
+ C 248 ; WX 600 ; N lslash ; B 77 0 523 626 ;
172
+ C 249 ; WX 600 ; N oslash ; B 30 -24 570 463 ;
173
+ C 250 ; WX 600 ; N oe ; B -18 -15 611 454 ;
174
+ C 251 ; WX 600 ; N germandbls ; B 22 -15 596 626 ;
175
+ C -1 ; WX 600 ; N Idieresis ; B 77 0 523 761 ;
176
+ C -1 ; WX 600 ; N eacute ; B 40 -15 563 661 ;
177
+ C -1 ; WX 600 ; N abreve ; B 35 -15 570 661 ;
178
+ C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 628 661 ;
179
+ C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ;
180
+ C -1 ; WX 600 ; N Ydieresis ; B 12 0 589 761 ;
181
+ C -1 ; WX 600 ; N divide ; B 71 16 529 500 ;
182
+ C -1 ; WX 600 ; N Yacute ; B 12 0 589 784 ;
183
+ C -1 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ;
184
+ C -1 ; WX 600 ; N aacute ; B 35 -15 570 661 ;
185
+ C -1 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ;
186
+ C -1 ; WX 600 ; N yacute ; B -4 -142 601 661 ;
187
+ C -1 ; WX 600 ; N scommaaccent ; B 68 -250 535 459 ;
188
+ C -1 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ;
189
+ C -1 ; WX 600 ; N Uring ; B 4 -18 596 801 ;
190
+ C -1 ; WX 600 ; N Udieresis ; B 4 -18 596 761 ;
191
+ C -1 ; WX 600 ; N aogonek ; B 35 -199 586 454 ;
192
+ C -1 ; WX 600 ; N Uacute ; B 4 -18 596 784 ;
193
+ C -1 ; WX 600 ; N uogonek ; B -1 -199 585 439 ;
194
+ C -1 ; WX 600 ; N Edieresis ; B 25 0 560 761 ;
195
+ C -1 ; WX 600 ; N Dcroat ; B 30 0 594 562 ;
196
+ C -1 ; WX 600 ; N commaaccent ; B 205 -250 397 -57 ;
197
+ C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
198
+ C -1 ; WX 600 ; N Emacron ; B 25 0 560 708 ;
199
+ C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ;
200
+ C -1 ; WX 600 ; N aring ; B 35 -15 570 678 ;
201
+ C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 610 562 ;
202
+ C -1 ; WX 600 ; N lacute ; B 77 0 523 801 ;
203
+ C -1 ; WX 600 ; N agrave ; B 35 -15 570 661 ;
204
+ C -1 ; WX 600 ; N Tcommaaccent ; B 21 -250 579 562 ;
205
+ C -1 ; WX 600 ; N Cacute ; B 22 -18 560 784 ;
206
+ C -1 ; WX 600 ; N atilde ; B 35 -15 570 636 ;
207
+ C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 761 ;
208
+ C -1 ; WX 600 ; N scaron ; B 68 -17 535 667 ;
209
+ C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ;
210
+ C -1 ; WX 600 ; N iacute ; B 77 0 523 661 ;
211
+ C -1 ; WX 600 ; N lozenge ; B 66 0 534 740 ;
212
+ C -1 ; WX 600 ; N Rcaron ; B 24 0 599 790 ;
213
+ C -1 ; WX 600 ; N Gcommaaccent ; B 22 -250 594 580 ;
214
+ C -1 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ;
215
+ C -1 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ;
216
+ C -1 ; WX 600 ; N Amacron ; B -9 0 609 708 ;
217
+ C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ;
218
+ C -1 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ;
219
+ C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 761 ;
220
+ C -1 ; WX 600 ; N Thorn ; B 48 0 557 562 ;
221
+ C -1 ; WX 600 ; N Omacron ; B 22 -18 578 708 ;
222
+ C -1 ; WX 600 ; N Racute ; B 24 0 599 784 ;
223
+ C -1 ; WX 600 ; N Sacute ; B 47 -22 553 784 ;
224
+ C -1 ; WX 600 ; N dcaron ; B 20 -15 727 626 ;
225
+ C -1 ; WX 600 ; N Umacron ; B 4 -18 596 708 ;
226
+ C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ;
227
+ C -1 ; WX 600 ; N threesuperior ; B 138 222 433 616 ;
228
+ C -1 ; WX 600 ; N Ograve ; B 22 -18 578 784 ;
229
+ C -1 ; WX 600 ; N Agrave ; B -9 0 609 784 ;
230
+ C -1 ; WX 600 ; N Abreve ; B -9 0 609 784 ;
231
+ C -1 ; WX 600 ; N multiply ; B 81 39 520 478 ;
232
+ C -1 ; WX 600 ; N uacute ; B -1 -15 569 661 ;
233
+ C -1 ; WX 600 ; N Tcaron ; B 21 0 579 790 ;
234
+ C -1 ; WX 600 ; N partialdiff ; B 63 -38 537 728 ;
235
+ C -1 ; WX 600 ; N ydieresis ; B -4 -142 601 638 ;
236
+ C -1 ; WX 600 ; N Nacute ; B 8 -12 610 784 ;
237
+ C -1 ; WX 600 ; N icircumflex ; B 73 0 523 657 ;
238
+ C -1 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ;
239
+ C -1 ; WX 600 ; N adieresis ; B 35 -15 570 638 ;
240
+ C -1 ; WX 600 ; N edieresis ; B 40 -15 563 638 ;
241
+ C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ;
242
+ C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ;
243
+ C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ;
244
+ C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 790 ;
245
+ C -1 ; WX 600 ; N Iacute ; B 77 0 523 784 ;
246
+ C -1 ; WX 600 ; N plusminus ; B 71 24 529 515 ;
247
+ C -1 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ;
248
+ C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ;
249
+ C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 784 ;
250
+ C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 761 ;
251
+ C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
252
+ C -1 ; WX 600 ; N Egrave ; B 25 0 560 784 ;
253
+ C -1 ; WX 600 ; N racute ; B 47 0 580 661 ;
254
+ C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ;
255
+ C -1 ; WX 600 ; N Zacute ; B 62 0 539 784 ;
256
+ C -1 ; WX 600 ; N Zcaron ; B 62 0 539 790 ;
257
+ C -1 ; WX 600 ; N greaterequal ; B 26 0 523 696 ;
258
+ C -1 ; WX 600 ; N Eth ; B 30 0 594 562 ;
259
+ C -1 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ;
260
+ C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 523 626 ;
261
+ C -1 ; WX 600 ; N tcaron ; B 47 -15 532 703 ;
262
+ C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ;
263
+ C -1 ; WX 600 ; N Uogonek ; B 4 -199 596 562 ;
264
+ C -1 ; WX 600 ; N Aacute ; B -9 0 609 784 ;
265
+ C -1 ; WX 600 ; N Adieresis ; B -9 0 609 761 ;
266
+ C -1 ; WX 600 ; N egrave ; B 40 -15 563 661 ;
267
+ C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ;
268
+ C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ;
269
+ C -1 ; WX 600 ; N Oacute ; B 22 -18 578 784 ;
270
+ C -1 ; WX 600 ; N oacute ; B 30 -15 570 661 ;
271
+ C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ;
272
+ C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ;
273
+ C -1 ; WX 600 ; N idieresis ; B 77 0 523 618 ;
274
+ C -1 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ;
275
+ C -1 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ;
276
+ C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
277
+ C -1 ; WX 600 ; N thorn ; B -14 -142 570 626 ;
278
+ C -1 ; WX 600 ; N twosuperior ; B 143 230 436 616 ;
279
+ C -1 ; WX 600 ; N Odieresis ; B 22 -18 578 761 ;
280
+ C -1 ; WX 600 ; N mu ; B -1 -142 569 439 ;
281
+ C -1 ; WX 600 ; N igrave ; B 77 0 523 661 ;
282
+ C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 668 661 ;
283
+ C -1 ; WX 600 ; N Eogonek ; B 25 -199 576 562 ;
284
+ C -1 ; WX 600 ; N dcroat ; B 20 -15 591 626 ;
285
+ C -1 ; WX 600 ; N threequarters ; B -47 -60 648 661 ;
286
+ C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ;
287
+ C -1 ; WX 600 ; N lcaron ; B 77 0 597 626 ;
288
+ C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 599 562 ;
289
+ C -1 ; WX 600 ; N Lacute ; B 39 0 578 784 ;
290
+ C -1 ; WX 600 ; N trademark ; B -9 230 749 562 ;
291
+ C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 638 ;
292
+ C -1 ; WX 600 ; N Igrave ; B 77 0 523 784 ;
293
+ C -1 ; WX 600 ; N Imacron ; B 77 0 523 708 ;
294
+ C -1 ; WX 600 ; N Lcaron ; B 39 0 637 562 ;
295
+ C -1 ; WX 600 ; N onehalf ; B -47 -60 648 661 ;
296
+ C -1 ; WX 600 ; N lessequal ; B 26 0 523 696 ;
297
+ C -1 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ;
298
+ C -1 ; WX 600 ; N ntilde ; B 18 0 592 636 ;
299
+ C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 638 784 ;
300
+ C -1 ; WX 600 ; N Eacute ; B 25 0 560 784 ;
301
+ C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ;
302
+ C -1 ; WX 600 ; N gbreve ; B 30 -146 580 661 ;
303
+ C -1 ; WX 600 ; N onequarter ; B -56 -60 656 661 ;
304
+ C -1 ; WX 600 ; N Scaron ; B 47 -22 553 790 ;
305
+ C -1 ; WX 600 ; N Scommaaccent ; B 47 -250 553 582 ;
306
+ C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 628 784 ;
307
+ C -1 ; WX 600 ; N degree ; B 86 243 474 616 ;
308
+ C -1 ; WX 600 ; N ograve ; B 30 -15 570 661 ;
309
+ C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 790 ;
310
+ C -1 ; WX 600 ; N ugrave ; B -1 -15 569 661 ;
311
+ C -1 ; WX 600 ; N radical ; B -19 -104 473 778 ;
312
+ C -1 ; WX 600 ; N Dcaron ; B 30 0 594 790 ;
313
+ C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 580 454 ;
314
+ C -1 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ;
315
+ C -1 ; WX 600 ; N otilde ; B 30 -15 570 636 ;
316
+ C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 599 562 ;
317
+ C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 578 562 ;
318
+ C -1 ; WX 600 ; N Atilde ; B -9 0 609 759 ;
319
+ C -1 ; WX 600 ; N Aogonek ; B -9 -199 625 562 ;
320
+ C -1 ; WX 600 ; N Aring ; B -9 0 609 801 ;
321
+ C -1 ; WX 600 ; N Otilde ; B 22 -18 578 759 ;
322
+ C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 638 ;
323
+ C -1 ; WX 600 ; N Ecaron ; B 25 0 560 790 ;
324
+ C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ;
325
+ C -1 ; WX 600 ; N kcommaaccent ; B 20 -250 585 626 ;
326
+ C -1 ; WX 600 ; N minus ; B 71 203 529 313 ;
327
+ C -1 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ;
328
+ C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ;
329
+ C -1 ; WX 600 ; N tcommaaccent ; B 47 -250 532 562 ;
330
+ C -1 ; WX 600 ; N logicalnot ; B 71 103 529 413 ;
331
+ C -1 ; WX 600 ; N odieresis ; B 30 -15 570 638 ;
332
+ C -1 ; WX 600 ; N udieresis ; B -1 -15 569 638 ;
333
+ C -1 ; WX 600 ; N notequal ; B 12 -47 537 563 ;
334
+ C -1 ; WX 600 ; N gcommaaccent ; B 30 -146 580 714 ;
335
+ C -1 ; WX 600 ; N eth ; B 58 -27 543 626 ;
336
+ C -1 ; WX 600 ; N zcaron ; B 81 0 520 667 ;
337
+ C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 592 454 ;
338
+ C -1 ; WX 600 ; N onesuperior ; B 153 230 447 616 ;
339
+ C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ;
340
+ C -1 ; WX 600 ; N Euro ; B 0 0 0 0 ;
341
+ EndCharMetrics
342
+ EndFontMetrics