summaryrefslogtreecommitdiff
path: root/src/font_atlas.c
blob: 26ab4dcb058ec44097edd7e10945a5c12060f8cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
#include <stdint.h>

#define FONT_CHAR_W 8
#define FONT_CHAR_H 12

typedef struct {
    uint8_t data[12];
    uint8_t width;
} FontGlyph;

static const FontGlyph font_glyphs[256] = {
    [0x00] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x01] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x02] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x03] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x04] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x05] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x06] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x07] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x08] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x09] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x0A] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x0B] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x0C] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x0D] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x0E] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x0F] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x10] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x11] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x12] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x13] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x14] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x15] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x16] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x17] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x18] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x19] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x1A] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x1B] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x1C] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x1D] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x1E] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x1F] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x20] = { {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 2 },
    [0x21] = /* '!' */ { {0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x00,0x00,0x00}, 1 },
    [0x22] = /* '"' */ { {0x00,0x00,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 3 },
    [0x23] = /* '#' */ { {0x00,0x00,0x0A,0x0A,0x1F,0x0A,0x1F,0x0A,0x0A,0x00,0x00,0x00}, 5 },
    [0x24] = /* '$' */ { {0x00,0x00,0x04,0x1E,0x01,0x0E,0x10,0x0F,0x04,0x00,0x00,0x00}, 5 },
    [0x25] = /* '%' */ { {0x00,0x00,0x11,0x09,0x08,0x04,0x02,0x12,0x11,0x00,0x00,0x00}, 5 },
    [0x26] = /* '&' */ { {0x00,0x00,0x04,0x0A,0x04,0x16,0x0D,0x09,0x16,0x00,0x00,0x00}, 5 },
    [0x27] = /* ''' */ { {0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 1 },
    [0x28] = /* '(' */ { {0x00,0x00,0x0C,0x02,0x01,0x01,0x01,0x02,0x0C,0x00,0x00,0x00}, 4 },
    [0x29] = /* ')' */ { {0x00,0x00,0x03,0x04,0x08,0x08,0x08,0x04,0x03,0x00,0x00,0x00}, 4 },
    [0x2A] = /* '*' */ { {0x00,0x00,0x09,0x06,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 4 },
    [0x2B] = /* '+' */ { {0x00,0x00,0x00,0x00,0x04,0x04,0x1F,0x04,0x04,0x00,0x00,0x00}, 5 },
    [0x2C] = /* ',' */ { {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00}, 1 },
    [0x2D] = /* '-' */ { {0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00}, 5 },
    [0x2E] = /* '.' */ { {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00}, 1 },
    [0x2F] = /* '/' */ { {0x00,0x00,0x10,0x08,0x08,0x04,0x02,0x02,0x01,0x00,0x00,0x00}, 5 },
    [0x30] = /* '0' */ { {0x00,0x00,0x0E,0x11,0x19,0x15,0x13,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x31] = /* '1' */ { {0x00,0x00,0x04,0x06,0x04,0x04,0x04,0x04,0x1F,0x00,0x00,0x00}, 5 },
    [0x32] = /* '2' */ { {0x00,0x00,0x0E,0x11,0x10,0x0C,0x02,0x01,0x1F,0x00,0x00,0x00}, 5 },
    [0x33] = /* '3' */ { {0x00,0x00,0x0E,0x11,0x10,0x0C,0x10,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x34] = /* '4' */ { {0x00,0x00,0x18,0x14,0x12,0x11,0x1F,0x10,0x10,0x00,0x00,0x00}, 5 },
    [0x35] = /* '5' */ { {0x00,0x00,0x1F,0x01,0x0F,0x10,0x10,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x36] = /* '6' */ { {0x00,0x00,0x0C,0x02,0x01,0x0F,0x11,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x37] = /* '7' */ { {0x00,0x00,0x1F,0x11,0x10,0x08,0x04,0x04,0x04,0x00,0x00,0x00}, 5 },
    [0x38] = /* '8' */ { {0x00,0x00,0x0E,0x11,0x11,0x0E,0x11,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x39] = /* '9' */ { {0x00,0x00,0x0E,0x11,0x11,0x1E,0x10,0x08,0x06,0x00,0x00,0x00}, 5 },
    [0x3A] = /* ':' */ { {0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00}, 1 },
    [0x3B] = /* ';' */ { {0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x00,0x00}, 1 },
    [0x3C] = /* '<' */ { {0x00,0x00,0x08,0x04,0x02,0x01,0x02,0x04,0x08,0x00,0x00,0x00}, 4 },
    [0x3D] = /* '=' */ { {0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x1F,0x00,0x00,0x00,0x00}, 5 },
    [0x3E] = /* '>' */ { {0x00,0x00,0x01,0x02,0x04,0x08,0x04,0x02,0x01,0x00,0x00,0x00}, 4 },
    [0x3F] = /* '?' */ { {0x00,0x00,0x0E,0x11,0x10,0x08,0x04,0x00,0x04,0x00,0x00,0x00}, 5 },
    [0x40] = /* '@' */ { {0x00,0x00,0x1E,0x21,0x2D,0x2D,0x3D,0x01,0x3E,0x00,0x00,0x00}, 6 },
    [0x41] = /* 'A' */ { {0x00,0x00,0x0E,0x11,0x1F,0x11,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x42] = /* 'B' */ { {0x00,0x00,0x0F,0x11,0x0F,0x11,0x11,0x11,0x0F,0x00,0x00,0x00}, 5 },
    [0x43] = /* 'C' */ { {0x00,0x00,0x0E,0x11,0x01,0x01,0x01,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x44] = /* 'D' */ { {0x00,0x00,0x0F,0x11,0x11,0x11,0x11,0x11,0x0F,0x00,0x00,0x00}, 5 },
    [0x45] = /* 'E' */ { {0x00,0x00,0x1F,0x01,0x07,0x01,0x01,0x01,0x1F,0x00,0x00,0x00}, 5 },
    [0x46] = /* 'F' */ { {0x00,0x00,0x1F,0x01,0x07,0x01,0x01,0x01,0x01,0x00,0x00,0x00}, 5 },
    [0x47] = /* 'G' */ { {0x00,0x00,0x1E,0x01,0x1D,0x11,0x11,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x48] = /* 'H' */ { {0x00,0x00,0x11,0x11,0x1F,0x11,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x49] = /* 'I' */ { {0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00}, 3 },
    [0x4A] = /* 'J' */ { {0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x4B] = /* 'K' */ { {0x00,0x00,0x11,0x09,0x07,0x09,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x4C] = /* 'L' */ { {0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x1F,0x00,0x00,0x00}, 5 },
    [0x4D] = /* 'M' */ { {0x00,0x00,0x11,0x1B,0x15,0x11,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x4E] = /* 'N' */ { {0x00,0x00,0x11,0x13,0x15,0x19,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x4F] = /* 'O' */ { {0x00,0x00,0x0E,0x11,0x11,0x11,0x11,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x50] = /* 'P' */ { {0x00,0x00,0x0F,0x11,0x0F,0x01,0x01,0x01,0x01,0x00,0x00,0x00}, 5 },
    [0x51] = /* 'Q' */ { {0x00,0x00,0x0E,0x11,0x11,0x11,0x11,0x09,0x16,0x00,0x00,0x00}, 5 },
    [0x52] = /* 'R' */ { {0x00,0x00,0x0F,0x11,0x0F,0x11,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x53] = /* 'S' */ { {0x00,0x00,0x1E,0x01,0x0E,0x10,0x10,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x54] = /* 'T' */ { {0x00,0x00,0x1F,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00}, 5 },
    [0x55] = /* 'U' */ { {0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x56] = /* 'V' */ { {0x00,0x00,0x11,0x11,0x11,0x11,0x0A,0x0A,0x04,0x00,0x00,0x00}, 5 },
    [0x57] = /* 'W' */ { {0x00,0x00,0x11,0x11,0x11,0x11,0x15,0x1B,0x11,0x00,0x00,0x00}, 5 },
    [0x58] = /* 'X' */ { {0x00,0x00,0x11,0x0A,0x04,0x0A,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x59] = /* 'Y' */ { {0x00,0x00,0x11,0x0A,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00}, 5 },
    [0x5A] = /* 'Z' */ { {0x00,0x00,0x1F,0x10,0x08,0x04,0x02,0x01,0x1F,0x00,0x00,0x00}, 5 },
    [0x5B] = /* '[' */ { {0x00,0x00,0x07,0x01,0x01,0x01,0x01,0x01,0x07,0x00,0x00,0x00}, 3 },
    [0x5C] = /* '\' */ { {0x00,0x00,0x01,0x02,0x02,0x04,0x08,0x08,0x10,0x00,0x00,0x00}, 5 },
    [0x5D] = /* ']' */ { {0x00,0x00,0x07,0x04,0x04,0x04,0x04,0x04,0x07,0x00,0x00,0x00}, 3 },
    [0x5E] = /* '^' */ { {0x00,0x00,0x04,0x0A,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 5 },
    [0x5F] = /* '_' */ { {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00}, 5 },
    [0x60] = /* '`' */ { {0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 2 },
    [0x61] = /* 'a' */ { {0x00,0x00,0x00,0x00,0x0E,0x10,0x1E,0x11,0x1E,0x00,0x00,0x00}, 5 },
    [0x62] = /* 'b' */ { {0x00,0x00,0x01,0x01,0x0D,0x13,0x11,0x11,0x0F,0x00,0x00,0x00}, 5 },
    [0x63] = /* 'c' */ { {0x00,0x00,0x00,0x00,0x0E,0x11,0x01,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x64] = /* 'd' */ { {0x00,0x00,0x10,0x10,0x16,0x19,0x11,0x11,0x1E,0x00,0x00,0x00}, 5 },
    [0x65] = /* 'e' */ { {0x00,0x00,0x00,0x00,0x0E,0x11,0x1F,0x01,0x1E,0x00,0x00,0x00}, 5 },
    [0x66] = /* 'f' */ { {0x00,0x00,0x0C,0x02,0x0F,0x02,0x02,0x02,0x02,0x00,0x00,0x00}, 4 },
    [0x67] = /* 'g' */ { {0x00,0x00,0x00,0x00,0x1E,0x11,0x11,0x1E,0x10,0x0F,0x00,0x00}, 5 },
    [0x68] = /* 'h' */ { {0x00,0x00,0x01,0x01,0x0D,0x13,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x69] = /* 'i' */ { {0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00}, 1 },
    [0x6A] = /* 'j' */ { {0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x11,0x11,0x0E,0x00,0x00}, 5 },
    [0x6B] = /* 'k' */ { {0x00,0x00,0x01,0x01,0x09,0x05,0x03,0x05,0x09,0x00,0x00,0x00}, 4 },
    [0x6C] = /* 'l' */ { {0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x00,0x00,0x00}, 2 },
    [0x6D] = /* 'm' */ { {0x00,0x00,0x00,0x00,0x0B,0x15,0x15,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x6E] = /* 'n' */ { {0x00,0x00,0x00,0x00,0x0F,0x11,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0x6F] = /* 'o' */ { {0x00,0x00,0x00,0x00,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0x70] = /* 'p' */ { {0x00,0x00,0x00,0x00,0x0D,0x13,0x11,0x0F,0x01,0x01,0x00,0x00}, 5 },
    [0x71] = /* 'q' */ { {0x00,0x00,0x00,0x00,0x16,0x19,0x11,0x1E,0x10,0x10,0x00,0x00}, 5 },
    [0x72] = /* 'r' */ { {0x00,0x00,0x00,0x00,0x0D,0x13,0x01,0x01,0x01,0x00,0x00,0x00}, 5 },
    [0x73] = /* 's' */ { {0x00,0x00,0x00,0x00,0x1E,0x01,0x0E,0x10,0x0F,0x00,0x00,0x00}, 5 },
    [0x74] = /* 't' */ { {0x00,0x00,0x02,0x07,0x02,0x02,0x02,0x02,0x04,0x00,0x00,0x00}, 3 },
    [0x75] = /* 'u' */ { {0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x1E,0x00,0x00,0x00}, 5 },
    [0x76] = /* 'v' */ { {0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x0A,0x04,0x00,0x00,0x00}, 5 },
    [0x77] = /* 'w' */ { {0x00,0x00,0x00,0x00,0x11,0x11,0x15,0x15,0x1E,0x00,0x00,0x00}, 5 },
    [0x78] = /* 'x' */ { {0x00,0x00,0x00,0x00,0x11,0x0A,0x04,0x0A,0x11,0x00,0x00,0x00}, 5 },
    [0x79] = /* 'y' */ { {0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x1E,0x10,0x0F,0x00,0x00}, 5 },
    [0x7A] = /* 'z' */ { {0x00,0x00,0x00,0x00,0x1F,0x08,0x04,0x02,0x1F,0x00,0x00,0x00}, 5 },
    [0x7B] = /* '{' */ { {0x00,0x00,0x0C,0x02,0x02,0x01,0x02,0x02,0x0C,0x00,0x00,0x00}, 4 },
    [0x7C] = /* '|' */ { {0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00}, 1 },
    [0x7D] = /* '}' */ { {0x00,0x00,0x03,0x04,0x04,0x08,0x04,0x04,0x03,0x00,0x00,0x00}, 4 },
    [0x7E] = /* '~' */ { {0x00,0x00,0x26,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, 6 },
    [0x7F] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x80] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x81] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x82] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x83] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x84] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x85] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x86] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x87] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x88] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x89] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x8A] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x8B] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x8C] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x8D] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x8E] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x8F] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x90] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x91] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x92] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x93] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x94] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x95] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x96] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x97] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x98] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x99] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x9A] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x9B] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x9C] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x9D] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x9E] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0x9F] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xA0] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xA1] = { {0x00,0x00,0x0E,0x11,0x1F,0x11,0x11,0x11,0x11,0x08,0x18,0x00}, 5 },
    [0xA2] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xA3] = { {0x00,0x00,0x02,0x02,0x0A,0x06,0x03,0x02,0x3E,0x00,0x00,0x00}, 6 },
    [0xA4] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xA5] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xA6] = { {0x08,0x04,0x1E,0x01,0x0E,0x10,0x10,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0xA7] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xA8] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xA9] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xAA] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xAB] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xAC] = { {0x08,0x04,0x1F,0x10,0x08,0x04,0x02,0x01,0x1F,0x00,0x00,0x00}, 5 },
    [0xAD] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xAE] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xAF] = { {0x04,0x00,0x1F,0x10,0x08,0x04,0x02,0x01,0x1F,0x00,0x00,0x00}, 5 },
    [0xB0] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xB1] = { {0x00,0x00,0x00,0x00,0x0E,0x10,0x1E,0x11,0x1E,0x08,0x18,0x00}, 5 },
    [0xB2] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xB3] = { {0x00,0x00,0x02,0x02,0x06,0x02,0x03,0x02,0x04,0x00,0x00,0x00}, 3 },
    [0xB4] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xB5] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xB6] = { {0x00,0x08,0x04,0x00,0x1E,0x01,0x0E,0x10,0x0F,0x00,0x00,0x00}, 5 },
    [0xB7] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xB8] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xB9] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xBA] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xBB] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xBC] = { {0x00,0x08,0x04,0x00,0x1F,0x08,0x04,0x02,0x1F,0x00,0x00,0x00}, 5 },
    [0xBD] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xBE] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xBF] = { {0x00,0x00,0x04,0x00,0x1F,0x08,0x04,0x02,0x1F,0x00,0x00,0x00}, 5 },
    [0xC0] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xC1] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xC2] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xC3] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xC4] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xC5] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xC6] = { {0x08,0x04,0x0E,0x11,0x01,0x01,0x01,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0xC7] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xC8] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xC9] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xCA] = { {0x00,0x00,0x1F,0x01,0x07,0x01,0x01,0x01,0x1F,0x08,0x18,0x00}, 5 },
    [0xCB] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xCC] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xCD] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xCE] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xCF] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xD0] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xD1] = { {0x08,0x04,0x11,0x13,0x15,0x19,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0xD2] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xD3] = { {0x08,0x04,0x0E,0x11,0x11,0x11,0x11,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0xD4] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xD5] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xD6] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xD7] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xD8] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xD9] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xDA] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xDB] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xDC] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xDD] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xDE] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xDF] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xE0] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xE1] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xE2] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xE3] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xE4] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xE5] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xE6] = { {0x00,0x08,0x04,0x00,0x0E,0x11,0x01,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0xE7] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xE8] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xE9] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xEA] = { {0x00,0x00,0x00,0x00,0x0E,0x11,0x1F,0x01,0x1E,0x08,0x18,0x00}, 5 },
    [0xEB] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xEC] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xED] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xEE] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xEF] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xF0] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xF1] = { {0x00,0x08,0x04,0x00,0x0F,0x11,0x11,0x11,0x11,0x00,0x00,0x00}, 5 },
    [0xF2] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xF3] = { {0x00,0x08,0x04,0x00,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00,0x00}, 5 },
    [0xF4] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xF5] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xF6] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xF7] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xF8] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xF9] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xFA] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xFB] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xFC] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xFD] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xFE] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
    [0xFF] = { {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, 8 },
};