indie-raster 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/.gitignore +5 -0
  2. data/LICENSE.txt +23 -0
  3. data/README.md +98 -0
  4. data/Rakefile +6 -0
  5. data/build-c/indie-raster +0 -0
  6. data/docs/PRF.md +41 -0
  7. data/fonts/README-fonts.md +26 -0
  8. data/fonts/fonts_prf1/dsm-22-italic.prf1 +0 -0
  9. data/fonts/fonts_prf1/dsm-22.prf1 +0 -0
  10. data/fonts/fonts_prf1/dsm-24.prf1 +0 -0
  11. data/fonts/fonts_prf1/dsm-56-bold-inverted.prf1 +0 -0
  12. data/fonts/fonts_vector/dsm/DroidSansMono.ttf +0 -0
  13. data/fonts/fonts_vector/dsm/DroidSansMono.webloc +8 -0
  14. data/fonts/fonts_vector/dsm/LICENSE.txt +202 -0
  15. data/fonts/fonts_vector/dsm/chars-all.json +201 -0
  16. data/fonts/fonts_vector/dsm/chars.json +5 -0
  17. data/fonts/fonts_vector/dsm/chars.txt +22 -0
  18. data/fonts/glyphs/dsm-22-italic.png +0 -0
  19. data/fonts/glyphs/dsm-22.png +0 -0
  20. data/fonts/glyphs/dsm-24.png +0 -0
  21. data/fonts/glyphs/dsm-56-bold-inverted.png +0 -0
  22. data/fonts/make-fonts.sh +20 -0
  23. data/fonts/scripts/html-entities.json +255 -0
  24. data/fonts/scripts/pack-font.coffee +55 -0
  25. data/fonts/scripts/splitter.c +55 -0
  26. data/fonts/scripts/splitter.sh +5 -0
  27. data/fonts/scripts/text-from-json.coffee +20 -0
  28. data/fonts/scripts/util.coffee +39 -0
  29. data/indie-raster.gemspec +19 -0
  30. data/make.sh +13 -0
  31. data/src-c/canvas.c +93 -0
  32. data/src-c/canvas.h +29 -0
  33. data/src-c/commands.c +148 -0
  34. data/src-c/commands.h +26 -0
  35. data/src-c/fonts.c +66 -0
  36. data/src-c/fonts.h +26 -0
  37. data/src-c/main.c +16 -0
  38. data/src-c/make.sh +11 -0
  39. data/src-c/pnm.c +109 -0
  40. data/src-c/pnm.h +20 -0
  41. data/src-c/session.c +36 -0
  42. data/src-c/session.h +24 -0
  43. data/src-c/upc.c +83 -0
  44. data/src-c/upc.h +9 -0
  45. data/src-ruby/indie-raster.rb +95 -0
  46. metadata +99 -0
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ .DS_Store
2
+ fonts/scripts/temp
3
+
4
+ #build-c
5
+ # (non-excluded for `git ls-files` in the gemspec)
data/LICENSE.txt ADDED
@@ -0,0 +1,23 @@
1
+
2
+ Copyright (c) 2011 ShopKeep, LLC
3
+
4
+ Permission is hereby granted, free of charge, to any person
5
+ obtaining a copy of this software and associated documentation
6
+ files (the "Software"), to deal in the Software without
7
+ restriction, including without limitation the rights to use,
8
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the
10
+ Software is furnished to do so, subject to the following
11
+ conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
+ OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,98 @@
1
+
2
+ ## indie-raster
3
+
4
+ ...is a small raster graphics library.
5
+
6
+ * (platform-independent C program) + wrappers
7
+ * no dependencies — not even for drawing text!
8
+
9
+ ## Features
10
+
11
+ * draw images
12
+ * draw UPC barcodes
13
+ * draw text via pre-rendered fonts
14
+
15
+ ## Limitations
16
+
17
+ * Only black and white so far. Grayscale and color support should be pretty easy to add.
18
+
19
+ ## Pre-rendered fonts
20
+
21
+ PRF1 is a trivial file format indie-raster made up for pre-rendered fonts. See [docs/PRF1.md](https://github.com/shopkeep/indie-raster/blob/master/docs/PRF.md)
22
+
23
+ ## Ruby Wrapper
24
+ <pre>
25
+ require 'indie-raster'
26
+
27
+ s = IndieRasterSession.new
28
+
29
+ HEADER = 10
30
+ FOOTER = 11
31
+ BIG_FONT = 20
32
+ s.loadImage :id => HEADER, <b>:path</b> => "images/header.pbm"
33
+ s.loadImage :id => FOOTER, <b>:data</b> => footer_pbm_bytes
34
+ s.loadFont :id => BIG_FONT, :path => "fonts/dsm-24.prf1"
35
+
36
+ s.createBlank :id => 1, :w => 576, :h => 1000
37
+
38
+ s.drawImage :id => HEADER, :x => 100, :y => 100<b>, :on => 1</b>
39
+ s.drawImage :id => FOOTER, :x => 100, :y => 900
40
+ # (<b>:on</b> defaults to 1)
41
+
42
+ s.drawText :text => "Taxi:", :font => BIG_FONT, <b>:x</b> => 20, :y => 200
43
+ s.drawText :text => "1729", :font => BIG_FONT, <b>:toLeftOf</b> => 560, :y => 200
44
+
45
+ s.drawUPC :upc => "123456123456", :x => 10, :y => 500, :w => 475, :h => 70
46
+
47
+ result_pbm = s.exportP4
48
+ </pre>
49
+
50
+
51
+ ## C program
52
+
53
+ <pre>
54
+ cat commands | indie-raster > result.pbm
55
+ </pre>
56
+
57
+
58
+ ### Example Commands File
59
+ <pre>
60
+ createBlank 1 576 1000
61
+ drawBarcode 1 10 200 123456123456 475 70 10 0 0
62
+ exportP4 1
63
+ </pre>
64
+
65
+
66
+ ### Example 2
67
+
68
+ <pre>
69
+ # if a line is blank or starts with "#", it is ignored
70
+ # line ending: \n
71
+ #-----------------------------------------------------------
72
+ # (dest id) (w) (h)
73
+ createBlank 1 576 1000
74
+ #-----------------------------------------------------------
75
+ # (dest id) (num bytes)
76
+ loadImage 2 1729
77
+ ...raw image bytes...
78
+ #-----------------------------------------------------------
79
+ # (dest id) (num bytes)
80
+ loadFont 3 3176
81
+ ...PRF1 bytes...
82
+ #-----------------------------------------------------------
83
+ # (dest id) (x) (y) (src id)
84
+ drawImage 1 0 0 2
85
+ #-----------------------------------------------------------
86
+ # (dest id) (x) (y) (font id) (num chars)
87
+ drawText 1 10 100 3 5
88
+ ..."&#x00BF;123?", UTF-32-little-endian-encoded...
89
+ # (bytes: BF 00 00 00 31 00 00 00 32 00 00 00 33 00 00 00 3F 00 00 00)
90
+ #-----------------------------------------------------------
91
+ # (dest id) (x) (y) (12-digit string) (w) (h) (guard bar extra h) (middle font) (side font)
92
+ drawBarcode 1 10 200 123456123456 475 70 0 0 0
93
+ # (a font ID of 0 means no text)
94
+ #-----------------------------------------------------------
95
+ # (src id)
96
+ exportP4 1
97
+ #-----------------------------------------------------------
98
+ </pre>
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+
2
+ task :spec do
3
+ `bash make.sh`
4
+ end
5
+
6
+ task :default => :spec
Binary file
data/docs/PRF.md ADDED
@@ -0,0 +1,41 @@
1
+
2
+ # PRF1 (monospace)
3
+
4
+ PRF1 is a trivial file format indie-raster made up for pre-rendered fonts.
5
+
6
+ ## Def
7
+
8
+ *All integers are little-endian*
9
+
10
+ <pre>
11
+ "PRF1"
12
+ uint32 num_chars
13
+ uint32 image_width
14
+ uint32 image_height
15
+ uint32+ char_codes
16
+ uint32+ image_byte_offets
17
+ data+ images
18
+ </pre>
19
+
20
+ ## Example
21
+
22
+ (2 chars, 2025 bytes)
23
+
24
+ <pre>
25
+ "PRF1"
26
+
27
+ 02 00 00 00 # 2 (uint32le)
28
+
29
+ TODO
30
+
31
+ BF 00 00 00 # "&#x00BF;" (utf32le)
32
+ 31 00 00 00 # "1" (utf32le)
33
+
34
+ 19 00 00 00 # 25 (uint32le)
35
+ 01 04 00 00 # 1025 (uint32le)
36
+
37
+ # 25 bytes so far
38
+
39
+ ...bytes (say, 1000) for PBM P4 image of \u00BF...
40
+ ...bytes (say, 1000) for PBM P4 image of \u0031...
41
+ </pre>
@@ -0,0 +1,26 @@
1
+
2
+ ## (1) manually make glyphs image
3
+
4
+ <pre>
5
+ glyphs/dsm-56-bold-inverted.png
6
+ </pre>
7
+
8
+ #### e.g. via a TextMate screenshot
9
+
10
+ * open <code>chars.txt</code>
11
+ * Preferences &rarr; Fonts & Colors
12
+ * disable "Anti alias"
13
+ * choose font
14
+ * add a new catch-all element style if you need to force bold or italic
15
+
16
+ ## (2) splitter
17
+ <pre>
18
+ bash splitter.sh ...png w h x0 y0 vs n wrap
19
+
20
+ bash splitter.sh ../glyphs/dsm-56-bold-inverted.png 34 56 4 20 21 199 10
21
+ </pre>
22
+
23
+ ## (3) pack-font
24
+ <pre>
25
+ coffee pack-font.coffee --chars=../fonts_vector/dsm/chars-all.json > ../fonts_prf1/dsm-56-bold-inverted.prf1
26
+ </pre>
Binary file
Binary file
Binary file
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>URL</key>
6
+ <string>http://www.google.com/webfonts/family?family=Droid+Sans+Mono&amp;subset=latin#set</string>
7
+ </dict>
8
+ </plist>
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,201 @@
1
+ [
2
+ "!",
3
+ "&quot;",
4
+ "#",
5
+ "$",
6
+ "%",
7
+ "&amp;",
8
+ "(",
9
+ ")",
10
+ "*",
11
+ " ",
12
+ "+",
13
+ ",",
14
+ "-",
15
+ ".",
16
+ "/",
17
+ "0",
18
+ "1",
19
+ "2",
20
+ "3",
21
+ "4",
22
+ "5",
23
+ "6",
24
+ "7",
25
+ "8",
26
+ "9",
27
+ ":",
28
+ ";",
29
+ "&lt;",
30
+ "=",
31
+ "&gt;",
32
+ "?",
33
+ "@",
34
+ "A",
35
+ "B",
36
+ "C",
37
+ "D",
38
+ "E",
39
+ "F",
40
+ "G",
41
+ "H",
42
+ "I",
43
+ "J",
44
+ "K",
45
+ "L",
46
+ "M",
47
+ "N",
48
+ "O",
49
+ "P",
50
+ "Q",
51
+ "R",
52
+ "S",
53
+ "T",
54
+ "U",
55
+ "V",
56
+ "W",
57
+ "X",
58
+ "Y",
59
+ "Z",
60
+ "[",
61
+ "\\",
62
+ "]",
63
+ "^",
64
+ "_",
65
+ "`",
66
+ "a",
67
+ "b",
68
+ "c",
69
+ "d",
70
+ "e",
71
+ "f",
72
+ "g",
73
+ "h",
74
+ "i",
75
+ "j",
76
+ "k",
77
+ "l",
78
+ "m",
79
+ "n",
80
+ "o",
81
+ "p",
82
+ "q",
83
+ "r",
84
+ "s",
85
+ "t",
86
+ "u",
87
+ "v",
88
+ "w",
89
+ "x",
90
+ "y",
91
+ "z",
92
+ "{",
93
+ "|",
94
+ "}",
95
+ "~",
96
+ "&iexcl;",
97
+ "&cent;",
98
+ "&pound;",
99
+ "&curren;",
100
+ "&yen;",
101
+ "&brvbar;",
102
+ "&sect;",
103
+ "&uml;",
104
+ "&copy;",
105
+ "&ordf;",
106
+ "&laquo;",
107
+ "&not;",
108
+ "&reg;",
109
+ "&macr;",
110
+ "&deg;",
111
+ "&plusmn;",
112
+ "&sup2;",
113
+ "&sup3;",
114
+ "&acute;",
115
+ "&micro;",
116
+ "&para;",
117
+ "&middot;",
118
+ "&cedil;",
119
+ "&sup1;",
120
+ "&ordm;",
121
+ "&raquo;",
122
+ "&frac14;",
123
+ "&frac12;",
124
+ "&frac34;",
125
+ "&iquest;",
126
+ "&Agrave;",
127
+ "&Aacute;",
128
+ "&Acirc;",
129
+ "&Atilde;",
130
+ "&Auml;",
131
+ "&Aring;",
132
+ "&AElig;",
133
+ "&Ccedil;",
134
+ "&Egrave;",
135
+ "&Eacute;",
136
+ "&Ecirc;",
137
+ "&Euml;",
138
+ "&Igrave;",
139
+ "&Iacute;",
140
+ "&Icirc;",
141
+ "&Iuml;",
142
+ "&ETH;",
143
+ "&Ntilde;",
144
+ "&Ograve;",
145
+ "&Oacute;",
146
+ "&Ocirc;",
147
+ "&Otilde;",
148
+ "&Ouml;",
149
+ "&times;",
150
+ "&Oslash;",
151
+ "&Ugrave;",
152
+ "&Uacute;",
153
+ "&Ucirc;",
154
+ "&Uuml;",
155
+ "&Yacute;",
156
+ "&THORN;",
157
+ "&szlig;",
158
+ "&agrave;",
159
+ "&aacute;",
160
+ "&acirc;",
161
+ "&atilde;",
162
+ "&auml;",
163
+ "&aring;",
164
+ "&aelig;",
165
+ "&ccedil;",
166
+ "&egrave;",
167
+ "&eacute;",
168
+ "&ecirc;",
169
+ "&euml;",
170
+ "&igrave;",
171
+ "&iacute;",
172
+ "&icirc;",
173
+ "&iuml;",
174
+ "&eth;",
175
+ "&ntilde;",
176
+ "&ograve;",
177
+ "&oacute;",
178
+ "&ocirc;",
179
+ "&otilde;",
180
+ "&ouml;",
181
+ "&divide;",
182
+ "&oslash;",
183
+ "&ugrave;",
184
+ "&uacute;",
185
+ "&ucirc;",
186
+ "&uuml;",
187
+ "&yacute;",
188
+ "&thorn;",
189
+ "&yuml;",
190
+ "&ndash;",
191
+ "&mdash;",
192
+ "&lsquo;",
193
+ "&rsquo;",
194
+ "&sbquo;",
195
+ "&ldquo;",
196
+ "&rdquo;",
197
+ "&bdquo;",
198
+ "&bull;",
199
+ "&lsaquo;",
200
+ "&rsaquo;"
201
+ ]
@@ -0,0 +1,5 @@
1
+ [
2
+ "1",
3
+ "2",
4
+ "3"
5
+ ]
@@ -0,0 +1,22 @@
1
+ !"#$%&()*
2
+ +,-./01234
3
+ 56789:;<=>
4
+ ?@ABCDEFGH
5
+ IJKLMNOPQR
6
+ STUVWXYZ[\
7
+ ]^_`abcdef
8
+ ghijklmnop
9
+ qrstuvwxyz
10
+ {|}~¡¢£¤¥¦
11
+ §¨©ª«¬®¯°±
12
+ ²³´µ¶·¸¹º»
13
+ ¼½¾¿ÀÁÂÃÄÅ
14
+ ÆÇÈÉÊËÌÍÎÏ
15
+ ÐÑÒÓÔÕÖ×ØÙ
16
+ ÚÛÜÝÞßàáâã
17
+ äåæçèéêëìí
18
+ îïðñòóôõö÷
19
+ øùúûüýþÿ–—
20
+ ‘’‚“”„•‹›
21
+
22
+
Binary file
Binary file
Binary file