1 /*
2  * Do not edit this file!
3  * This file is generated from:
4  *    DerivedCoreProperties.txt (version 6.3.0)
5  */
6 
7 #include <stddef.h>
8 #include <idn/utf32.h>
9 #include <idn/auto/cased.h>
10 
11 /*
12  * Cased tables.
13  */
14 #define CASED_BITS_0	9
15 #define CASED_BITS_1	7
16 #define CASED_BITS_2	5
17 
18 static const unsigned short cased_imap[] = {
19 	  272,   400,   528,   656,   656,   656,   656,   656,
20 	  656,   656,   784,   656,   656,   656,   656,   912,
21 	 1040,   656,   656,   656,   656,   656,   656,   656,
22 	  656,   656,   656,   656,   656,  1168,   656,   656,
23 	  656,   656,   656,   656,   656,   656,   656,   656,
24 	  656,   656,   656,   656,   656,   656,   656,   656,
25 	  656,   656,   656,   656,   656,   656,   656,   656,
26 	  656,   656,   656,   656,   656,   656,   656,   656,
27 	  656,   656,   656,   656,   656,   656,   656,   656,
28 	  656,   656,   656,   656,   656,   656,   656,   656,
29 	  656,   656,   656,   656,   656,   656,   656,   656,
30 	  656,   656,   656,   656,   656,   656,   656,   656,
31 	  656,   656,   656,   656,   656,   656,   656,   656,
32 	  656,   656,   656,   656,   656,   656,   656,   656,
33 	  656,   656,   656,   656,   656,   656,   656,   656,
34 	  656,   656,   656,   656,   656,   656,   656,   656,
35 	  656,   656,   656,   656,   656,   656,   656,   656,
36 	  656,   656,   656,   656,   656,   656,   656,   656,
37 	  656,   656,   656,   656,   656,   656,   656,   656,
38 	  656,   656,   656,   656,   656,   656,   656,   656,
39 	  656,   656,   656,   656,   656,   656,   656,   656,
40 	  656,   656,   656,   656,   656,   656,   656,   656,
41 	  656,   656,   656,   656,   656,   656,   656,   656,
42 	  656,   656,   656,   656,   656,   656,   656,   656,
43 	  656,   656,   656,   656,   656,   656,   656,   656,
44 	  656,   656,   656,   656,   656,   656,   656,   656,
45 	  656,   656,   656,   656,   656,   656,   656,   656,
46 	  656,   656,   656,   656,   656,   656,   656,   656,
47 	  656,   656,   656,   656,   656,   656,   656,   656,
48 	  656,   656,   656,   656,   656,   656,   656,   656,
49 	  656,   656,   656,   656,   656,   656,   656,   656,
50 	  656,   656,   656,   656,   656,   656,   656,   656,
51 	  656,   656,   656,   656,   656,   656,   656,   656,
52 	  656,   656,   656,   656,   656,   656,   656,   656,
53 	    0,     0,     1,     1,     0,     2,     3,     3,
54 	    4,     4,     4,     4,     4,     5,     6,     4,
55 	    4,     4,     4,     4,     7,     8,     9,    10,
56 	    0,     0,    11,    12,    13,    14,     4,    15,
57 	    4,     4,     4,     4,    16,     4,     4,     4,
58 	    4,    17,    18,    19,    20,     0,     0,     0,
59 	    0,     0,     0,     0,     0,     0,     0,     0,
60 	    0,     0,     0,     0,     0,     0,     0,     0,
61 	    0,     0,     0,     0,     0,     0,     0,     0,
62 	    0,     0,     0,     0,     0,     0,     0,     0,
63 	    0,     0,     0,     0,     0,     0,     0,     0,
64 	    0,     0,     0,     0,     0,     0,     0,     0,
65 	    0,     0,     0,     0,     0,     0,     0,     0,
66 	    0,     0,     0,     0,     0,     0,     0,     0,
67 	    0,     0,     0,     0,     0,     0,     0,     0,
68 	    0,     0,     0,     0,     0,     0,     0,     0,
69 	    0,     0,     0,     0,     0,     4,    21,     0,
70 	    0,     0,     0,     0,     0,     0,     0,     0,
71 	    0,     0,     0,     0,     0,     0,     0,     0,
72 	    0,     0,     0,     0,     0,     0,     0,     0,
73 	    0,     0,     0,     0,     0,     0,     0,     0,
74 	    0,     0,     0,     0,     0,     0,     0,     0,
75 	    0,     0,     0,     0,     0,     0,     0,     0,
76 	    0,     0,     0,     0,     0,     0,     0,     0,
77 	    0,     0,     0,     0,     0,     0,     0,     0,
78 	    0,     0,     0,     0,     0,     0,     0,     0,
79 	    0,     0,     0,     0,     0,     0,     0,     0,
80 	    0,     0,     0,     0,     0,     0,     0,     0,
81 	    0,     0,     0,     0,     0,     0,     0,     0,
82 	    4,     4,     4,     4,     4,     4,     0,     0,
83 	    4,     4,     4,     4,     4,     4,     4,     4,
84 	   22,     4,    23,    24,     4,    25,    26,    27,
85 	    0,     0,     0,    28,    29,     0,     0,     0,
86 	   30,    31,    32,     4,    33,     0,     0,     0,
87 	    0,     0,     0,     0,     0,     0,     0,     0,
88 	    0,     0,     0,     0,     0,     0,     0,     0,
89 	    0,     0,     0,     0,     0,    34,     4,    35,
90 	    0,     0,     0,     0,     0,     0,     0,     0,
91 	    0,     0,     0,     0,     0,     0,     0,     0,
92 	    0,     0,     0,     0,     0,     0,     0,     0,
93 	    0,     0,     0,     0,     0,     0,     0,     0,
94 	    0,     0,     0,     0,     0,     0,     0,     0,
95 	    0,     0,     0,     0,     0,     0,     0,     0,
96 	    0,     0,     0,     0,     0,     0,     0,     0,
97 	    4,    36,    37,     4,     4,     4,     4,    38,
98 	    4,    21,     0,     0,     0,     0,     0,     0,
99 	    0,     0,     0,     0,     0,     0,     0,     0,
100 	    0,     0,     0,     0,     0,     0,     0,     0,
101 	    0,     0,     0,     0,     0,     0,     0,     0,
102 	    0,     0,     0,     0,     0,     0,     0,     0,
103 	    0,     0,     0,     0,     0,     0,     0,     0,
104 	    0,     0,     0,     0,     0,     0,     0,     0,
105 	    0,     0,     0,     0,     0,     0,     0,     0,
106 	    0,     0,     0,     0,     0,     0,     0,     0,
107 	    0,     0,     0,     0,     0,     0,     0,     0,
108 	    0,     0,     0,     0,     0,     0,     0,     0,
109 	    0,     0,     0,     0,     0,     0,     0,     0,
110 	    0,     0,     0,     0,     0,     0,     0,     0,
111 	    0,     0,     0,     0,     0,     0,     0,     0,
112 	    0,     0,     0,     0,     0,     0,     0,     0,
113 	    0,     0,     0,     0,     0,     0,     0,     0,
114 	    0,     0,     0,     0,     0,     0,     0,     0,
115 	    0,     0,     0,     0,     0,     0,     0,     0,
116 	    0,     0,     0,     0,     0,     0,     0,     0,
117 	    0,     0,     0,     0,     0,     0,     0,     0,
118 	    0,     0,     0,     0,     0,     0,     0,     0,
119 	    0,     0,     0,     0,     0,     0,     0,     0,
120 	    0,     0,     0,     0,     0,     0,     0,     0,
121 	    0,     0,     0,     0,     0,     0,     0,     0,
122 	    0,     0,     0,     0,     0,     0,     0,     0,
123 	    0,     0,     4,    39,    40,     0,     0,     0,
124 	    0,    41,     4,     4,    42,    43,     0,    44,
125 	    0,     0,     0,     0,     0,     0,     0,     0,
126 	    0,     0,     0,     0,     0,     0,     0,     0,
127 	    0,     0,     0,     0,     0,     0,     0,     0,
128 	    0,     0,     0,     0,     0,     0,     0,     0,
129 	    0,     0,     0,     0,     0,     0,     0,     0,
130 	    0,     0,     0,     0,     0,     0,     0,     0,
131 	    0,     0,     0,     0,     0,     0,     0,     0,
132 	    0,     0,     0,     0,     0,     0,     0,     0,
133 	    0,     0,     0,     0,     0,     0,     0,     0,
134 	    0,     0,     0,     0,     0,     0,     0,     0,
135 	    0,     0,     0,     0,     0,     0,     0,     0,
136 	    0,     0,     0,     0,     0,     0,     0,     0,
137 	    0,     0,     0,     0,     0,     0,     0,     0,
138 	    0,     0,     0,     0,     0,     0,     0,     0,
139 	    0,     0,     0,     0,     0,     0,     0,     0,
140 	    0,     0,     0,     0,     0,     0,     0,     0,
141 	    0,     0,     0,     0,     0,     0,     0,     0,
142 	    0,     0,     0,     0,     0,     0,     0,     0,
143 	    0,     0,     0,     0,     0,     0,     0,     0,
144 	   45,     0,     0,     0,     0,     0,     0,     0,
145 	    0,     0,     0,     0,     0,     0,     0,     0,
146 	    0,     0,     0,     0,     0,     0,     0,     0,
147 	    0,     0,     0,     0,     0,     0,     0,     0,
148 	    0,     1,     1,     0,     0,     0,     0,     0,
149 	    0,     0,     0,     0,     0,     0,     0,     0,
150 	    0,     0,     0,     0,     0,     0,     0,     0,
151 	    0,     0,     0,     0,     0,     0,     0,     0,
152 	    0,     0,     0,     0,     0,     0,     0,     0,
153 	    4,     4,    46,     0,     0,     0,     0,     0,
154 	    0,     0,     0,     0,     0,     0,     0,     0,
155 	    0,     0,     0,     0,     0,     0,     0,     0,
156 	    0,     0,     0,     0,     0,     0,     0,     0,
157 	    0,     0,     0,     0,     0,     0,     0,     0,
158 	    0,     0,     0,     0,     0,     0,     0,     0,
159 	    0,     0,     0,     0,     0,     0,     0,     0,
160 	    0,     0,     0,     0,     0,     0,     0,     0,
161 	    0,     0,     0,     0,     0,     0,     0,     0,
162 	    0,     0,     0,     0,     0,     0,     0,     0,
163 	    0,     0,     0,     0,     0,     0,     0,     0,
164 	    0,     0,     0,     0,     0,     0,     0,     0,
165 	    0,     0,     0,     0,     0,     0,     0,     0,
166 	    0,     0,     0,     0,     0,     0,     0,     0,
167 	    0,     0,     0,     0,     0,     0,     0,     0,
168 	    0,     0,     0,     0,     0,     0,     0,     0,
169 	    4,     4,    47,     4,    48,    49,    50,     4,
170 	   51,    52,    53,     4,     4,     4,     4,     4,
171 	    4,     4,     4,     4,     4,    54,    55,     5,
172 	   47,    47,    36,    36,    56,    56,    57,     0,
173 	    0,     0,     0,     0,     0,     0,     0,     0,
174 	    0,     0,     0,     0,     0,     0,     0,     0,
175 	    0,     0,     0,     0,     0,     0,     0,     0,
176 	    0,     0,     0,     0,     0,     0,     0,     0,
177 	    0,     0,     0,     0,     0,     0,     0,     0,
178 	    0,     0,     0,     0,     0,     0,     0,     0,
179 	    0,     0,     0,     0,     0,     0,     0,     0,
180 	    0,     0,     0,     0,     0,     0,     0,     0,
181 };
182 
183 static const struct {
184 	unsigned char bm[4];
185 } cased_bitmap[] = {
186 	{{
187 	  0,  0,  0,  0,
188 	}},
189 	{{
190 	254,255,255,  7,
191 	}},
192 	{{
193 	  0,  4, 32,  4,
194 	}},
195 	{{
196 	255,255,127,255,
197 	}},
198 	{{
199 	255,255,255,255,
200 	}},
201 	{{
202 	255,255,255,247,
203 	}},
204 	{{
205 	240,255,255,255,
206 	}},
207 	{{
208 	255,255,239,255,
209 	}},
210 	{{
211 	255,255,255,  1,
212 	}},
213 	{{
214 	  3,  0,  0,  0,
215 	}},
216 	{{
217 	 31,  0,  0,  0,
218 	}},
219 	{{
220 	 32,  0,  0,  0,
221 	}},
222 	{{
223 	  0,  0,207, 60,
224 	}},
225 	{{
226 	 64,215,255,255,
227 	}},
228 	{{
229 	251,255,255,255,
230 	}},
231 	{{
232 	255,255,191,255,
233 	}},
234 	{{
235 	  3,252,255,255,
236 	}},
237 	{{
238 	255,  0,254,255,
239 	}},
240 	{{
241 	255,255,127,  0,
242 	}},
243 	{{
244 	254,255,255,255,
245 	}},
246 	{{
247 	255,  0,  0,  0,
248 	}},
249 	{{
250 	191, 32,  0,  0,
251 	}},
252 	{{
253 	255,255, 63, 63,
254 	}},
255 	{{
256 	 63, 63,255,170,
257 	}},
258 	{{
259 	255,255,255, 63,
260 	}},
261 	{{
262 	255,255,223, 95,
263 	}},
264 	{{
265 	220, 31,207, 15,
266 	}},
267 	{{
268 	255, 31,220, 31,
269 	}},
270 	{{
271 	  0,  0,  2,128,
272 	}},
273 	{{
274 	  0,  0,255, 31,
275 	}},
276 	{{
277 	132,252, 47, 62,
278 	}},
279 	{{
280 	 80,189, 31,242,
281 	}},
282 	{{
283 	224, 67,  0,  0,
284 	}},
285 	{{
286 	 24,  0,  0,  0,
287 	}},
288 	{{
289 	  0,  0,192,255,
290 	}},
291 	{{
292 	255,  3,  0,  0,
293 	}},
294 	{{
295 	255,127,255,255,
296 	}},
297 	{{
298 	255,255,255,127,
299 	}},
300 	{{
301 	 31,120, 12,  0,
302 	}},
303 	{{
304 	255, 63,  0,  0,
305 	}},
306 	{{
307 	255,255,255,  0,
308 	}},
309 	{{
310 	252,255,255,255,
311 	}},
312 	{{
313 	255,120, 15,  0,
314 	}},
315 	{{
316 	255,  7,  0,  0,
317 	}},
318 	{{
319 	  0,  0,  0,  7,
320 	}},
321 	{{
322 	127,  0,248,  0,
323 	}},
324 	{{
325 	255,255,  0,  0,
326 	}},
327 	{{
328 	255,255,223,255,
329 	}},
330 	{{
331 	255,255,255,223,
332 	}},
333 	{{
334 	100,222,255,235,
335 	}},
336 	{{
337 	239,255,255,255,
338 	}},
339 	{{
340 	191,231,223,223,
341 	}},
342 	{{
343 	255,255,255,123,
344 	}},
345 	{{
346 	 95,252,253,255,
347 	}},
348 	{{
349 	 63,255,255,255,
350 	}},
351 	{{
352 	253,255,255,247,
353 	}},
354 	{{
355 	255,253,255,255,
356 	}},
357 	{{
358 	247, 15,  0,  0,
359 	}},
360 };
361 
362 /*
363  * Table accessor.
364  */
365 extern int
idn__sparsemap_getcased(unsigned long v)366 idn__sparsemap_getcased(unsigned long v) {
367 	int idx0, idx1, idx2, idx3;
368 
369 	if (v > UTF32_MAX)
370 		return (0);
371 	idx0 = v >> (CASED_BITS_1 + CASED_BITS_2);
372 	idx1 = (v >> CASED_BITS_2) & ((1 << CASED_BITS_1) - 1);
373 	idx2 = (v & ((1 << CASED_BITS_2) - 1)) >> 3;
374 	idx3 = 1 << (v & 0x07);
375 	return cased_bitmap[cased_imap[cased_imap[idx0] + idx1]].bm[idx2] & idx3;
376 }
377