aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/prop/uprop_is_ci.c
blob: 43f0e117d661e8e3c96c2b3594839c6fd0c4ab4a (plain) (blame)
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
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */

#include "__bsearch.h"
#include "bitset.h"
#include "rune.h"
#include "unicode/prop.h"

/* clang-format off */

static constexpr bitset(bs, LATIN1_MAX) = {
	0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x04,
	0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x90, 0x01,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

static const struct {
	rune lo, hi;
} lookup[] = {
	{RUNE_C(0x0002B0), RUNE_C(0x00036F)},
	{RUNE_C(0x000374), RUNE_C(0x000375)},
	{RUNE_C(0x00037A), RUNE_C(0x00037A)},
	{RUNE_C(0x000384), RUNE_C(0x000385)},
	{RUNE_C(0x000387), RUNE_C(0x000387)},
	{RUNE_C(0x000483), RUNE_C(0x000489)},
	{RUNE_C(0x000559), RUNE_C(0x000559)},
	{RUNE_C(0x00055F), RUNE_C(0x00055F)},
	{RUNE_C(0x000591), RUNE_C(0x0005BD)},
	{RUNE_C(0x0005BF), RUNE_C(0x0005BF)},
	{RUNE_C(0x0005C1), RUNE_C(0x0005C2)},
	{RUNE_C(0x0005C4), RUNE_C(0x0005C5)},
	{RUNE_C(0x0005C7), RUNE_C(0x0005C7)},
	{RUNE_C(0x0005F4), RUNE_C(0x0005F4)},
	{RUNE_C(0x000600), RUNE_C(0x000605)},
	{RUNE_C(0x000610), RUNE_C(0x00061A)},
	{RUNE_C(0x00061C), RUNE_C(0x00061C)},
	{RUNE_C(0x000640), RUNE_C(0x000640)},
	{RUNE_C(0x00064B), RUNE_C(0x00065F)},
	{RUNE_C(0x000670), RUNE_C(0x000670)},
	{RUNE_C(0x0006D6), RUNE_C(0x0006DD)},
	{RUNE_C(0x0006DF), RUNE_C(0x0006E8)},
	{RUNE_C(0x0006EA), RUNE_C(0x0006ED)},
	{RUNE_C(0x00070F), RUNE_C(0x00070F)},
	{RUNE_C(0x000711), RUNE_C(0x000711)},
	{RUNE_C(0x000730), RUNE_C(0x00074A)},
	{RUNE_C(0x0007A6), RUNE_C(0x0007B0)},
	{RUNE_C(0x0007EB), RUNE_C(0x0007F5)},
	{RUNE_C(0x0007FA), RUNE_C(0x0007FA)},
	{RUNE_C(0x0007FD), RUNE_C(0x0007FD)},
	{RUNE_C(0x000816), RUNE_C(0x00082D)},
	{RUNE_C(0x000859), RUNE_C(0x00085B)},
	{RUNE_C(0x000888), RUNE_C(0x000888)},
	{RUNE_C(0x000890), RUNE_C(0x000891)},
	{RUNE_C(0x000898), RUNE_C(0x00089F)},
	{RUNE_C(0x0008C9), RUNE_C(0x000902)},
	{RUNE_C(0x00093A), RUNE_C(0x00093A)},
	{RUNE_C(0x00093C), RUNE_C(0x00093C)},
	{RUNE_C(0x000941), RUNE_C(0x000948)},
	{RUNE_C(0x00094D), RUNE_C(0x00094D)},
	{RUNE_C(0x000951), RUNE_C(0x000957)},
	{RUNE_C(0x000962), RUNE_C(0x000963)},
	{RUNE_C(0x000971), RUNE_C(0x000971)},
	{RUNE_C(0x000981), RUNE_C(0x000981)},
	{RUNE_C(0x0009BC), RUNE_C(0x0009BC)},
	{RUNE_C(0x0009C1), RUNE_C(0x0009C4)},
	{RUNE_C(0x0009CD), RUNE_C(0x0009CD)},
	{RUNE_C(0x0009E2), RUNE_C(0x0009E3)},
	{RUNE_C(0x0009FE), RUNE_C(0x0009FE)},
	{RUNE_C(0x000A01), RUNE_C(0x000A02)},
	{RUNE_C(0x000A3C), RUNE_C(0x000A3C)},
	{RUNE_C(0x000A41), RUNE_C(0x000A42)},
	{RUNE_C(0x000A47), RUNE_C(0x000A48)},
	{RUNE_C(0x000A4B), RUNE_C(0x000A4D)},
	{RUNE_C(0x000A51), RUNE_C(0x000A51)},
	{RUNE_C(0x000A70), RUNE_C(0x000A71)},
	{RUNE_C(0x000A75), RUNE_C(0x000A75)},
	{RUNE_C(0x000A81), RUNE_C(0x000A82)},
	{RUNE_C(0x000ABC), RUNE_C(0x000ABC)},
	{RUNE_C(0x000AC1), RUNE_C(0x000AC5)},
	{RUNE_C(0x000AC7), RUNE_C(0x000AC8)},
	{RUNE_C(0x000ACD), RUNE_C(0x000ACD)},
	{RUNE_C(0x000AE2), RUNE_C(0x000AE3)},
	{RUNE_C(0x000AFA), RUNE_C(0x000AFF)},
	{RUNE_C(0x000B01), RUNE_C(0x000B01)},
	{RUNE_C(0x000B3C), RUNE_C(0x000B3C)},
	{RUNE_C(0x000B3F), RUNE_C(0x000B3F)},
	{RUNE_C(0x000B41), RUNE_C(0x000B44)},
	{RUNE_C(0x000B4D), RUNE_C(0x000B4D)},
	{RUNE_C(0x000B55), RUNE_C(0x000B56)},
	{RUNE_C(0x000B62), RUNE_C(0x000B63)},
	{RUNE_C(0x000B82), RUNE_C(0x000B82)},
	{RUNE_C(0x000BC0), RUNE_C(0x000BC0)},
	{RUNE_C(0x000BCD), RUNE_C(0x000BCD)},
	{RUNE_C(0x000C00), RUNE_C(0x000C00)},
	{RUNE_C(0x000C04), RUNE_C(0x000C04)},
	{RUNE_C(0x000C3C), RUNE_C(0x000C3C)},
	{RUNE_C(0x000C3E), RUNE_C(0x000C40)},
	{RUNE_C(0x000C46), RUNE_C(0x000C48)},
	{RUNE_C(0x000C4A), RUNE_C(0x000C4D)},
	{RUNE_C(0x000C55), RUNE_C(0x000C56)},
	{RUNE_C(0x000C62), RUNE_C(0x000C63)},
	{RUNE_C(0x000C81), RUNE_C(0x000C81)},
	{RUNE_C(0x000CBC), RUNE_C(0x000CBC)},
	{RUNE_C(0x000CBF), RUNE_C(0x000CBF)},
	{RUNE_C(0x000CC6), RUNE_C(0x000CC6)},
	{RUNE_C(0x000CCC), RUNE_C(0x000CCD)},
	{RUNE_C(0x000CE2), RUNE_C(0x000CE3)},
	{RUNE_C(0x000D00), RUNE_C(0x000D01)},
	{RUNE_C(0x000D3B), RUNE_C(0x000D3C)},
	{RUNE_C(0x000D41), RUNE_C(0x000D44)},
	{RUNE_C(0x000D4D), RUNE_C(0x000D4D)},
	{RUNE_C(0x000D62), RUNE_C(0x000D63)},
	{RUNE_C(0x000D81), RUNE_C(0x000D81)},
	{RUNE_C(0x000DCA), RUNE_C(0x000DCA)},
	{RUNE_C(0x000DD2), RUNE_C(0x000DD4)},
	{RUNE_C(0x000DD6), RUNE_C(0x000DD6)},
	{RUNE_C(0x000E31), RUNE_C(0x000E31)},
	{RUNE_C(0x000E34), RUNE_C(0x000E3A)},
	{RUNE_C(0x000E46), RUNE_C(0x000E4E)},
	{RUNE_C(0x000EB1), RUNE_C(0x000EB1)},
	{RUNE_C(0x000EB4), RUNE_C(0x000EBC)},
	{RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
	{RUNE_C(0x000EC8), RUNE_C(0x000ECE)},
	{RUNE_C(0x000F18), RUNE_C(0x000F19)},
	{RUNE_C(0x000F35), RUNE_C(0x000F35)},
	{RUNE_C(0x000F37), RUNE_C(0x000F37)},
	{RUNE_C(0x000F39), RUNE_C(0x000F39)},
	{RUNE_C(0x000F71), RUNE_C(0x000F7E)},
	{RUNE_C(0x000F80), RUNE_C(0x000F84)},
	{RUNE_C(0x000F86), RUNE_C(0x000F87)},
	{RUNE_C(0x000F8D), RUNE_C(0x000F97)},
	{RUNE_C(0x000F99), RUNE_C(0x000FBC)},
	{RUNE_C(0x000FC6), RUNE_C(0x000FC6)},
	{RUNE_C(0x00102D), RUNE_C(0x001030)},
	{RUNE_C(0x001032), RUNE_C(0x001037)},
	{RUNE_C(0x001039), RUNE_C(0x00103A)},
	{RUNE_C(0x00103D), RUNE_C(0x00103E)},
	{RUNE_C(0x001058), RUNE_C(0x001059)},
	{RUNE_C(0x00105E), RUNE_C(0x001060)},
	{RUNE_C(0x001071), RUNE_C(0x001074)},
	{RUNE_C(0x001082), RUNE_C(0x001082)},
	{RUNE_C(0x001085), RUNE_C(0x001086)},
	{RUNE_C(0x00108D), RUNE_C(0x00108D)},
	{RUNE_C(0x00109D), RUNE_C(0x00109D)},
	{RUNE_C(0x0010FC), RUNE_C(0x0010FC)},
	{RUNE_C(0x00135D), RUNE_C(0x00135F)},
	{RUNE_C(0x001712), RUNE_C(0x001714)},
	{RUNE_C(0x001732), RUNE_C(0x001733)},
	{RUNE_C(0x001752), RUNE_C(0x001753)},
	{RUNE_C(0x001772), RUNE_C(0x001773)},
	{RUNE_C(0x0017B4), RUNE_C(0x0017B5)},
	{RUNE_C(0x0017B7), RUNE_C(0x0017BD)},
	{RUNE_C(0x0017C6), RUNE_C(0x0017C6)},
	{RUNE_C(0x0017C9), RUNE_C(0x0017D3)},
	{RUNE_C(0x0017D7), RUNE_C(0x0017D7)},
	{RUNE_C(0x0017DD), RUNE_C(0x0017DD)},
	{RUNE_C(0x00180B), RUNE_C(0x00180F)},
	{RUNE_C(0x001843), RUNE_C(0x001843)},
	{RUNE_C(0x001885), RUNE_C(0x001886)},
	{RUNE_C(0x0018A9), RUNE_C(0x0018A9)},
	{RUNE_C(0x001920), RUNE_C(0x001922)},
	{RUNE_C(0x001927), RUNE_C(0x001928)},
	{RUNE_C(0x001932), RUNE_C(0x001932)},
	{RUNE_C(0x001939), RUNE_C(0x00193B)},
	{RUNE_C(0x001A17), RUNE_C(0x001A18)},
	{RUNE_C(0x001A1B), RUNE_C(0x001A1B)},
	{RUNE_C(0x001A56), RUNE_C(0x001A56)},
	{RUNE_C(0x001A58), RUNE_C(0x001A5E)},
	{RUNE_C(0x001A60), RUNE_C(0x001A60)},
	{RUNE_C(0x001A62), RUNE_C(0x001A62)},
	{RUNE_C(0x001A65), RUNE_C(0x001A6C)},
	{RUNE_C(0x001A73), RUNE_C(0x001A7C)},
	{RUNE_C(0x001A7F), RUNE_C(0x001A7F)},
	{RUNE_C(0x001AA7), RUNE_C(0x001AA7)},
	{RUNE_C(0x001AB0), RUNE_C(0x001ACE)},
	{RUNE_C(0x001B00), RUNE_C(0x001B03)},
	{RUNE_C(0x001B34), RUNE_C(0x001B34)},
	{RUNE_C(0x001B36), RUNE_C(0x001B3A)},
	{RUNE_C(0x001B3C), RUNE_C(0x001B3C)},
	{RUNE_C(0x001B42), RUNE_C(0x001B42)},
	{RUNE_C(0x001B6B), RUNE_C(0x001B73)},
	{RUNE_C(0x001B80), RUNE_C(0x001B81)},
	{RUNE_C(0x001BA2), RUNE_C(0x001BA5)},
	{RUNE_C(0x001BA8), RUNE_C(0x001BA9)},
	{RUNE_C(0x001BAB), RUNE_C(0x001BAD)},
	{RUNE_C(0x001BE6), RUNE_C(0x001BE6)},
	{RUNE_C(0x001BE8), RUNE_C(0x001BE9)},
	{RUNE_C(0x001BED), RUNE_C(0x001BED)},
	{RUNE_C(0x001BEF), RUNE_C(0x001BF1)},
	{RUNE_C(0x001C2C), RUNE_C(0x001C33)},
	{RUNE_C(0x001C36), RUNE_C(0x001C37)},
	{RUNE_C(0x001C78), RUNE_C(0x001C7D)},
	{RUNE_C(0x001CD0), RUNE_C(0x001CD2)},
	{RUNE_C(0x001CD4), RUNE_C(0x001CE0)},
	{RUNE_C(0x001CE2), RUNE_C(0x001CE8)},
	{RUNE_C(0x001CED), RUNE_C(0x001CED)},
	{RUNE_C(0x001CF4), RUNE_C(0x001CF4)},
	{RUNE_C(0x001CF8), RUNE_C(0x001CF9)},
	{RUNE_C(0x001D2C), RUNE_C(0x001D6A)},
	{RUNE_C(0x001D78), RUNE_C(0x001D78)},
	{RUNE_C(0x001D9B), RUNE_C(0x001DFF)},
	{RUNE_C(0x001FBD), RUNE_C(0x001FBD)},
	{RUNE_C(0x001FBF), RUNE_C(0x001FC1)},
	{RUNE_C(0x001FCD), RUNE_C(0x001FCF)},
	{RUNE_C(0x001FDD), RUNE_C(0x001FDF)},
	{RUNE_C(0x001FED), RUNE_C(0x001FEF)},
	{RUNE_C(0x001FFD), RUNE_C(0x001FFE)},
	{RUNE_C(0x00200B), RUNE_C(0x00200F)},
	{RUNE_C(0x002018), RUNE_C(0x002019)},
	{RUNE_C(0x002024), RUNE_C(0x002024)},
	{RUNE_C(0x002027), RUNE_C(0x002027)},
	{RUNE_C(0x00202A), RUNE_C(0x00202E)},
	{RUNE_C(0x002060), RUNE_C(0x002064)},
	{RUNE_C(0x002066), RUNE_C(0x00206F)},
	{RUNE_C(0x002071), RUNE_C(0x002071)},
	{RUNE_C(0x00207F), RUNE_C(0x00207F)},
	{RUNE_C(0x002090), RUNE_C(0x00209C)},
	{RUNE_C(0x0020D0), RUNE_C(0x0020F0)},
	{RUNE_C(0x002C7C), RUNE_C(0x002C7D)},
	{RUNE_C(0x002CEF), RUNE_C(0x002CF1)},
	{RUNE_C(0x002D6F), RUNE_C(0x002D6F)},
	{RUNE_C(0x002D7F), RUNE_C(0x002D7F)},
	{RUNE_C(0x002DE0), RUNE_C(0x002DFF)},
	{RUNE_C(0x002E2F), RUNE_C(0x002E2F)},
	{RUNE_C(0x003005), RUNE_C(0x003005)},
	{RUNE_C(0x00302A), RUNE_C(0x00302D)},
	{RUNE_C(0x003031), RUNE_C(0x003035)},
	{RUNE_C(0x00303B), RUNE_C(0x00303B)},
	{RUNE_C(0x003099), RUNE_C(0x00309E)},
	{RUNE_C(0x0030FC), RUNE_C(0x0030FE)},
	{RUNE_C(0x00A015), RUNE_C(0x00A015)},
	{RUNE_C(0x00A4F8), RUNE_C(0x00A4FD)},
	{RUNE_C(0x00A60C), RUNE_C(0x00A60C)},
	{RUNE_C(0x00A66F), RUNE_C(0x00A672)},
	{RUNE_C(0x00A674), RUNE_C(0x00A67D)},
	{RUNE_C(0x00A67F), RUNE_C(0x00A67F)},
	{RUNE_C(0x00A69C), RUNE_C(0x00A69F)},
	{RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)},
	{RUNE_C(0x00A700), RUNE_C(0x00A721)},
	{RUNE_C(0x00A770), RUNE_C(0x00A770)},
	{RUNE_C(0x00A788), RUNE_C(0x00A78A)},
	{RUNE_C(0x00A7F2), RUNE_C(0x00A7F4)},
	{RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)},
	{RUNE_C(0x00A802), RUNE_C(0x00A802)},
	{RUNE_C(0x00A806), RUNE_C(0x00A806)},
	{RUNE_C(0x00A80B), RUNE_C(0x00A80B)},
	{RUNE_C(0x00A825), RUNE_C(0x00A826)},
	{RUNE_C(0x00A82C), RUNE_C(0x00A82C)},
	{RUNE_C(0x00A8C4), RUNE_C(0x00A8C5)},
	{RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)},
	{RUNE_C(0x00A8FF), RUNE_C(0x00A8FF)},
	{RUNE_C(0x00A926), RUNE_C(0x00A92D)},
	{RUNE_C(0x00A947), RUNE_C(0x00A951)},
	{RUNE_C(0x00A980), RUNE_C(0x00A982)},
	{RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)},
	{RUNE_C(0x00A9B6), RUNE_C(0x00A9B9)},
	{RUNE_C(0x00A9BC), RUNE_C(0x00A9BD)},
	{RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)},
	{RUNE_C(0x00A9E5), RUNE_C(0x00A9E6)},
	{RUNE_C(0x00AA29), RUNE_C(0x00AA2E)},
	{RUNE_C(0x00AA31), RUNE_C(0x00AA32)},
	{RUNE_C(0x00AA35), RUNE_C(0x00AA36)},
	{RUNE_C(0x00AA43), RUNE_C(0x00AA43)},
	{RUNE_C(0x00AA4C), RUNE_C(0x00AA4C)},
	{RUNE_C(0x00AA70), RUNE_C(0x00AA70)},
	{RUNE_C(0x00AA7C), RUNE_C(0x00AA7C)},
	{RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)},
	{RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)},
	{RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)},
	{RUNE_C(0x00AABE), RUNE_C(0x00AABF)},
	{RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)},
	{RUNE_C(0x00AADD), RUNE_C(0x00AADD)},
	{RUNE_C(0x00AAEC), RUNE_C(0x00AAED)},
	{RUNE_C(0x00AAF3), RUNE_C(0x00AAF4)},
	{RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)},
	{RUNE_C(0x00AB5B), RUNE_C(0x00AB5F)},
	{RUNE_C(0x00AB69), RUNE_C(0x00AB6B)},
	{RUNE_C(0x00ABE5), RUNE_C(0x00ABE5)},
	{RUNE_C(0x00ABE8), RUNE_C(0x00ABE8)},
	{RUNE_C(0x00ABED), RUNE_C(0x00ABED)},
	{RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)},
	{RUNE_C(0x00FBB2), RUNE_C(0x00FBC2)},
	{RUNE_C(0x00FE00), RUNE_C(0x00FE0F)},
	{RUNE_C(0x00FE13), RUNE_C(0x00FE13)},
	{RUNE_C(0x00FE20), RUNE_C(0x00FE2F)},
	{RUNE_C(0x00FE52), RUNE_C(0x00FE52)},
	{RUNE_C(0x00FE55), RUNE_C(0x00FE55)},
	{RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)},
	{RUNE_C(0x00FF07), RUNE_C(0x00FF07)},
	{RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)},
	{RUNE_C(0x00FF1A), RUNE_C(0x00FF1A)},
	{RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)},
	{RUNE_C(0x00FF40), RUNE_C(0x00FF40)},
	{RUNE_C(0x00FF70), RUNE_C(0x00FF70)},
	{RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)},
	{RUNE_C(0x00FFE3), RUNE_C(0x00FFE3)},
	{RUNE_C(0x00FFF9), RUNE_C(0x00FFFB)},
	{RUNE_C(0x0101FD), RUNE_C(0x0101FD)},
	{RUNE_C(0x0102E0), RUNE_C(0x0102E0)},
	{RUNE_C(0x010376), RUNE_C(0x01037A)},
	{RUNE_C(0x010780), RUNE_C(0x010785)},
	{RUNE_C(0x010787), RUNE_C(0x0107B0)},
	{RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
	{RUNE_C(0x010A01), RUNE_C(0x010A03)},
	{RUNE_C(0x010A05), RUNE_C(0x010A06)},
	{RUNE_C(0x010A0C), RUNE_C(0x010A0F)},
	{RUNE_C(0x010A38), RUNE_C(0x010A3A)},
	{RUNE_C(0x010A3F), RUNE_C(0x010A3F)},
	{RUNE_C(0x010AE5), RUNE_C(0x010AE6)},
	{RUNE_C(0x010D24), RUNE_C(0x010D27)},
	{RUNE_C(0x010EAB), RUNE_C(0x010EAC)},
	{RUNE_C(0x010EFD), RUNE_C(0x010EFF)},
	{RUNE_C(0x010F46), RUNE_C(0x010F50)},
	{RUNE_C(0x010F82), RUNE_C(0x010F85)},
	{RUNE_C(0x011001), RUNE_C(0x011001)},
	{RUNE_C(0x011038), RUNE_C(0x011046)},
	{RUNE_C(0x011070), RUNE_C(0x011070)},
	{RUNE_C(0x011073), RUNE_C(0x011074)},
	{RUNE_C(0x01107F), RUNE_C(0x011081)},
	{RUNE_C(0x0110B3), RUNE_C(0x0110B6)},
	{RUNE_C(0x0110B9), RUNE_C(0x0110BA)},
	{RUNE_C(0x0110BD), RUNE_C(0x0110BD)},
	{RUNE_C(0x0110C2), RUNE_C(0x0110C2)},
	{RUNE_C(0x0110CD), RUNE_C(0x0110CD)},
	{RUNE_C(0x011100), RUNE_C(0x011102)},
	{RUNE_C(0x011127), RUNE_C(0x01112B)},
	{RUNE_C(0x01112D), RUNE_C(0x011134)},
	{RUNE_C(0x011173), RUNE_C(0x011173)},
	{RUNE_C(0x011180), RUNE_C(0x011181)},
	{RUNE_C(0x0111B6), RUNE_C(0x0111BE)},
	{RUNE_C(0x0111C9), RUNE_C(0x0111CC)},
	{RUNE_C(0x0111CF), RUNE_C(0x0111CF)},
	{RUNE_C(0x01122F), RUNE_C(0x011231)},
	{RUNE_C(0x011234), RUNE_C(0x011234)},
	{RUNE_C(0x011236), RUNE_C(0x011237)},
	{RUNE_C(0x01123E), RUNE_C(0x01123E)},
	{RUNE_C(0x011241), RUNE_C(0x011241)},
	{RUNE_C(0x0112DF), RUNE_C(0x0112DF)},
	{RUNE_C(0x0112E3), RUNE_C(0x0112EA)},
	{RUNE_C(0x011300), RUNE_C(0x011301)},
	{RUNE_C(0x01133B), RUNE_C(0x01133C)},
	{RUNE_C(0x011340), RUNE_C(0x011340)},
	{RUNE_C(0x011366), RUNE_C(0x01136C)},
	{RUNE_C(0x011370), RUNE_C(0x011374)},
	{RUNE_C(0x011438), RUNE_C(0x01143F)},
	{RUNE_C(0x011442), RUNE_C(0x011444)},
	{RUNE_C(0x011446), RUNE_C(0x011446)},
	{RUNE_C(0x01145E), RUNE_C(0x01145E)},
	{RUNE_C(0x0114B3), RUNE_C(0x0114B8)},
	{RUNE_C(0x0114BA), RUNE_C(0x0114BA)},
	{RUNE_C(0x0114BF), RUNE_C(0x0114C0)},
	{RUNE_C(0x0114C2), RUNE_C(0x0114C3)},
	{RUNE_C(0x0115B2), RUNE_C(0x0115B5)},
	{RUNE_C(0x0115BC), RUNE_C(0x0115BD)},
	{RUNE_C(0x0115BF), RUNE_C(0x0115C0)},
	{RUNE_C(0x0115DC), RUNE_C(0x0115DD)},
	{RUNE_C(0x011633), RUNE_C(0x01163A)},
	{RUNE_C(0x01163D), RUNE_C(0x01163D)},
	{RUNE_C(0x01163F), RUNE_C(0x011640)},
	{RUNE_C(0x0116AB), RUNE_C(0x0116AB)},
	{RUNE_C(0x0116AD), RUNE_C(0x0116AD)},
	{RUNE_C(0x0116B0), RUNE_C(0x0116B5)},
	{RUNE_C(0x0116B7), RUNE_C(0x0116B7)},
	{RUNE_C(0x01171D), RUNE_C(0x01171F)},
	{RUNE_C(0x011722), RUNE_C(0x011725)},
	{RUNE_C(0x011727), RUNE_C(0x01172B)},
	{RUNE_C(0x01182F), RUNE_C(0x011837)},
	{RUNE_C(0x011839), RUNE_C(0x01183A)},
	{RUNE_C(0x01193B), RUNE_C(0x01193C)},
	{RUNE_C(0x01193E), RUNE_C(0x01193E)},
	{RUNE_C(0x011943), RUNE_C(0x011943)},
	{RUNE_C(0x0119D4), RUNE_C(0x0119D7)},
	{RUNE_C(0x0119DA), RUNE_C(0x0119DB)},
	{RUNE_C(0x0119E0), RUNE_C(0x0119E0)},
	{RUNE_C(0x011A01), RUNE_C(0x011A0A)},
	{RUNE_C(0x011A33), RUNE_C(0x011A38)},
	{RUNE_C(0x011A3B), RUNE_C(0x011A3E)},
	{RUNE_C(0x011A47), RUNE_C(0x011A47)},
	{RUNE_C(0x011A51), RUNE_C(0x011A56)},
	{RUNE_C(0x011A59), RUNE_C(0x011A5B)},
	{RUNE_C(0x011A8A), RUNE_C(0x011A96)},
	{RUNE_C(0x011A98), RUNE_C(0x011A99)},
	{RUNE_C(0x011C30), RUNE_C(0x011C36)},
	{RUNE_C(0x011C38), RUNE_C(0x011C3D)},
	{RUNE_C(0x011C3F), RUNE_C(0x011C3F)},
	{RUNE_C(0x011C92), RUNE_C(0x011CA7)},
	{RUNE_C(0x011CAA), RUNE_C(0x011CB0)},
	{RUNE_C(0x011CB2), RUNE_C(0x011CB3)},
	{RUNE_C(0x011CB5), RUNE_C(0x011CB6)},
	{RUNE_C(0x011D31), RUNE_C(0x011D36)},
	{RUNE_C(0x011D3A), RUNE_C(0x011D3A)},
	{RUNE_C(0x011D3C), RUNE_C(0x011D3D)},
	{RUNE_C(0x011D3F), RUNE_C(0x011D45)},
	{RUNE_C(0x011D47), RUNE_C(0x011D47)},
	{RUNE_C(0x011D90), RUNE_C(0x011D91)},
	{RUNE_C(0x011D95), RUNE_C(0x011D95)},
	{RUNE_C(0x011D97), RUNE_C(0x011D97)},
	{RUNE_C(0x011EF3), RUNE_C(0x011EF4)},
	{RUNE_C(0x011F00), RUNE_C(0x011F01)},
	{RUNE_C(0x011F36), RUNE_C(0x011F3A)},
	{RUNE_C(0x011F40), RUNE_C(0x011F40)},
	{RUNE_C(0x011F42), RUNE_C(0x011F42)},
	{RUNE_C(0x013430), RUNE_C(0x013440)},
	{RUNE_C(0x013447), RUNE_C(0x013455)},
	{RUNE_C(0x016AF0), RUNE_C(0x016AF4)},
	{RUNE_C(0x016B30), RUNE_C(0x016B36)},
	{RUNE_C(0x016B40), RUNE_C(0x016B43)},
	{RUNE_C(0x016F4F), RUNE_C(0x016F4F)},
	{RUNE_C(0x016F8F), RUNE_C(0x016F9F)},
	{RUNE_C(0x016FE0), RUNE_C(0x016FE1)},
	{RUNE_C(0x016FE3), RUNE_C(0x016FE4)},
	{RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
	{RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
	{RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
	{RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)},
	{RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)},
	{RUNE_C(0x01CF00), RUNE_C(0x01CF2D)},
	{RUNE_C(0x01CF30), RUNE_C(0x01CF46)},
	{RUNE_C(0x01D167), RUNE_C(0x01D169)},
	{RUNE_C(0x01D173), RUNE_C(0x01D182)},
	{RUNE_C(0x01D185), RUNE_C(0x01D18B)},
	{RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)},
	{RUNE_C(0x01D242), RUNE_C(0x01D244)},
	{RUNE_C(0x01DA00), RUNE_C(0x01DA36)},
	{RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)},
	{RUNE_C(0x01DA75), RUNE_C(0x01DA75)},
	{RUNE_C(0x01DA84), RUNE_C(0x01DA84)},
	{RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)},
	{RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)},
	{RUNE_C(0x01E000), RUNE_C(0x01E006)},
	{RUNE_C(0x01E008), RUNE_C(0x01E018)},
	{RUNE_C(0x01E01B), RUNE_C(0x01E021)},
	{RUNE_C(0x01E023), RUNE_C(0x01E024)},
	{RUNE_C(0x01E026), RUNE_C(0x01E02A)},
	{RUNE_C(0x01E030), RUNE_C(0x01E06D)},
	{RUNE_C(0x01E08F), RUNE_C(0x01E08F)},
	{RUNE_C(0x01E130), RUNE_C(0x01E13D)},
	{RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)},
	{RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)},
	{RUNE_C(0x01E4EB), RUNE_C(0x01E4EF)},
	{RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)},
	{RUNE_C(0x01E944), RUNE_C(0x01E94B)},
	{RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)},
	{RUNE_C(0x0E0001), RUNE_C(0x0E0001)},
	{RUNE_C(0x0E0020), RUNE_C(0x0E007F)},
	{RUNE_C(0x0E0100), RUNE_C(0x0E01EF)},
};

__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)

bool
uprop_is_ci(rune ch)
{
	return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
}