1 /**********************************************************************
2   unicode.c -  Oniguruma (regular expression library)
3 **********************************************************************/
4 /*-
5  * Copyright (c) 2002-2008  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27  * SUCH DAMAGE.
28  */
29 
30 #include "regint.h"
31 
32 #define ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code,ctype) \
33   ((EncUNICODE_ISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0)
34 #if 0
35 #define ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(code,cbit) \
36   ((EncUNICODE_ISO_8859_1_CtypeTable[code] & (cbit)) != 0)
37 #endif
38 
39 static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = {
40   0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,
41   0x4008, 0x428c, 0x4289, 0x4288, 0x4288, 0x4288, 0x4008, 0x4008,
42   0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,
43   0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,
44   0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,
45   0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,
46   0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,
47   0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,
48   0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,
49   0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,
50   0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,
51   0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,
52   0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,
53   0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,
54   0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,
55   0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,
56   0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008,
57   0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
58   0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
59   0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
60   0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,
61   0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0,
62   0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0,
63   0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,
64   0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
65   0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
66   0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,
67   0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,
68   0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
69   0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
70   0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,
71   0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2
72 };
73 
74 /* 'NEWLINE' */
75 static const OnigCodePoint CR_NEWLINE[] = {
76   1,
77   0x000a, 0x000a
78 }; /* CR_NEWLINE */
79 
80 /* 'Alpha': [[:Alpha:]] */
81 static const OnigCodePoint CR_Alpha[] = {
82   418,
83   0x0041, 0x005a,
84   0x0061, 0x007a,
85   0x00aa, 0x00aa,
86   0x00b5, 0x00b5,
87   0x00ba, 0x00ba,
88   0x00c0, 0x00d6,
89   0x00d8, 0x00f6,
90   0x00f8, 0x0241,
91   0x0250, 0x02c1,
92   0x02c6, 0x02d1,
93   0x02e0, 0x02e4,
94   0x02ee, 0x02ee,
95   0x0300, 0x036f,
96   0x037a, 0x037a,
97   0x0386, 0x0386,
98   0x0388, 0x038a,
99   0x038c, 0x038c,
100   0x038e, 0x03a1,
101   0x03a3, 0x03ce,
102   0x03d0, 0x03f5,
103   0x03f7, 0x0481,
104   0x0483, 0x0486,
105   0x0488, 0x04ce,
106   0x04d0, 0x04f9,
107   0x0500, 0x050f,
108   0x0531, 0x0556,
109   0x0559, 0x0559,
110   0x0561, 0x0587,
111   0x0591, 0x05b9,
112   0x05bb, 0x05bd,
113   0x05bf, 0x05bf,
114   0x05c1, 0x05c2,
115   0x05c4, 0x05c5,
116   0x05c7, 0x05c7,
117   0x05d0, 0x05ea,
118   0x05f0, 0x05f2,
119   0x0610, 0x0615,
120   0x0621, 0x063a,
121   0x0640, 0x065e,
122   0x066e, 0x06d3,
123   0x06d5, 0x06dc,
124   0x06de, 0x06e8,
125   0x06ea, 0x06ef,
126   0x06fa, 0x06fc,
127   0x06ff, 0x06ff,
128   0x0710, 0x074a,
129   0x074d, 0x076d,
130   0x0780, 0x07b1,
131   0x0901, 0x0939,
132   0x093c, 0x094d,
133   0x0950, 0x0954,
134   0x0958, 0x0963,
135   0x097d, 0x097d,
136   0x0981, 0x0983,
137   0x0985, 0x098c,
138   0x098f, 0x0990,
139   0x0993, 0x09a8,
140   0x09aa, 0x09b0,
141   0x09b2, 0x09b2,
142   0x09b6, 0x09b9,
143   0x09bc, 0x09c4,
144   0x09c7, 0x09c8,
145   0x09cb, 0x09ce,
146   0x09d7, 0x09d7,
147   0x09dc, 0x09dd,
148   0x09df, 0x09e3,
149   0x09f0, 0x09f1,
150   0x0a01, 0x0a03,
151   0x0a05, 0x0a0a,
152   0x0a0f, 0x0a10,
153   0x0a13, 0x0a28,
154   0x0a2a, 0x0a30,
155   0x0a32, 0x0a33,
156   0x0a35, 0x0a36,
157   0x0a38, 0x0a39,
158   0x0a3c, 0x0a3c,
159   0x0a3e, 0x0a42,
160   0x0a47, 0x0a48,
161   0x0a4b, 0x0a4d,
162   0x0a59, 0x0a5c,
163   0x0a5e, 0x0a5e,
164   0x0a70, 0x0a74,
165   0x0a81, 0x0a83,
166   0x0a85, 0x0a8d,
167   0x0a8f, 0x0a91,
168   0x0a93, 0x0aa8,
169   0x0aaa, 0x0ab0,
170   0x0ab2, 0x0ab3,
171   0x0ab5, 0x0ab9,
172   0x0abc, 0x0ac5,
173   0x0ac7, 0x0ac9,
174   0x0acb, 0x0acd,
175   0x0ad0, 0x0ad0,
176   0x0ae0, 0x0ae3,
177   0x0b01, 0x0b03,
178   0x0b05, 0x0b0c,
179   0x0b0f, 0x0b10,
180   0x0b13, 0x0b28,
181   0x0b2a, 0x0b30,
182   0x0b32, 0x0b33,
183   0x0b35, 0x0b39,
184   0x0b3c, 0x0b43,
185   0x0b47, 0x0b48,
186   0x0b4b, 0x0b4d,
187   0x0b56, 0x0b57,
188   0x0b5c, 0x0b5d,
189   0x0b5f, 0x0b61,
190   0x0b71, 0x0b71,
191   0x0b82, 0x0b83,
192   0x0b85, 0x0b8a,
193   0x0b8e, 0x0b90,
194   0x0b92, 0x0b95,
195   0x0b99, 0x0b9a,
196   0x0b9c, 0x0b9c,
197   0x0b9e, 0x0b9f,
198   0x0ba3, 0x0ba4,
199   0x0ba8, 0x0baa,
200   0x0bae, 0x0bb9,
201   0x0bbe, 0x0bc2,
202   0x0bc6, 0x0bc8,
203   0x0bca, 0x0bcd,
204   0x0bd7, 0x0bd7,
205   0x0c01, 0x0c03,
206   0x0c05, 0x0c0c,
207   0x0c0e, 0x0c10,
208   0x0c12, 0x0c28,
209   0x0c2a, 0x0c33,
210   0x0c35, 0x0c39,
211   0x0c3e, 0x0c44,
212   0x0c46, 0x0c48,
213   0x0c4a, 0x0c4d,
214   0x0c55, 0x0c56,
215   0x0c60, 0x0c61,
216   0x0c82, 0x0c83,
217   0x0c85, 0x0c8c,
218   0x0c8e, 0x0c90,
219   0x0c92, 0x0ca8,
220   0x0caa, 0x0cb3,
221   0x0cb5, 0x0cb9,
222   0x0cbc, 0x0cc4,
223   0x0cc6, 0x0cc8,
224   0x0cca, 0x0ccd,
225   0x0cd5, 0x0cd6,
226   0x0cde, 0x0cde,
227   0x0ce0, 0x0ce1,
228   0x0d02, 0x0d03,
229   0x0d05, 0x0d0c,
230   0x0d0e, 0x0d10,
231   0x0d12, 0x0d28,
232   0x0d2a, 0x0d39,
233   0x0d3e, 0x0d43,
234   0x0d46, 0x0d48,
235   0x0d4a, 0x0d4d,
236   0x0d57, 0x0d57,
237   0x0d60, 0x0d61,
238   0x0d82, 0x0d83,
239   0x0d85, 0x0d96,
240   0x0d9a, 0x0db1,
241   0x0db3, 0x0dbb,
242   0x0dbd, 0x0dbd,
243   0x0dc0, 0x0dc6,
244   0x0dca, 0x0dca,
245   0x0dcf, 0x0dd4,
246   0x0dd6, 0x0dd6,
247   0x0dd8, 0x0ddf,
248   0x0df2, 0x0df3,
249   0x0e01, 0x0e3a,
250   0x0e40, 0x0e4e,
251   0x0e81, 0x0e82,
252   0x0e84, 0x0e84,
253   0x0e87, 0x0e88,
254   0x0e8a, 0x0e8a,
255   0x0e8d, 0x0e8d,
256   0x0e94, 0x0e97,
257   0x0e99, 0x0e9f,
258   0x0ea1, 0x0ea3,
259   0x0ea5, 0x0ea5,
260   0x0ea7, 0x0ea7,
261   0x0eaa, 0x0eab,
262   0x0ead, 0x0eb9,
263   0x0ebb, 0x0ebd,
264   0x0ec0, 0x0ec4,
265   0x0ec6, 0x0ec6,
266   0x0ec8, 0x0ecd,
267   0x0edc, 0x0edd,
268   0x0f00, 0x0f00,
269   0x0f18, 0x0f19,
270   0x0f35, 0x0f35,
271   0x0f37, 0x0f37,
272   0x0f39, 0x0f39,
273   0x0f3e, 0x0f47,
274   0x0f49, 0x0f6a,
275   0x0f71, 0x0f84,
276   0x0f86, 0x0f8b,
277   0x0f90, 0x0f97,
278   0x0f99, 0x0fbc,
279   0x0fc6, 0x0fc6,
280   0x1000, 0x1021,
281   0x1023, 0x1027,
282   0x1029, 0x102a,
283   0x102c, 0x1032,
284   0x1036, 0x1039,
285   0x1050, 0x1059,
286   0x10a0, 0x10c5,
287   0x10d0, 0x10fa,
288   0x10fc, 0x10fc,
289   0x1100, 0x1159,
290   0x115f, 0x11a2,
291   0x11a8, 0x11f9,
292   0x1200, 0x1248,
293   0x124a, 0x124d,
294   0x1250, 0x1256,
295   0x1258, 0x1258,
296   0x125a, 0x125d,
297   0x1260, 0x1288,
298   0x128a, 0x128d,
299   0x1290, 0x12b0,
300   0x12b2, 0x12b5,
301   0x12b8, 0x12be,
302   0x12c0, 0x12c0,
303   0x12c2, 0x12c5,
304   0x12c8, 0x12d6,
305   0x12d8, 0x1310,
306   0x1312, 0x1315,
307   0x1318, 0x135a,
308   0x135f, 0x135f,
309   0x1380, 0x138f,
310   0x13a0, 0x13f4,
311   0x1401, 0x166c,
312   0x166f, 0x1676,
313   0x1681, 0x169a,
314   0x16a0, 0x16ea,
315   0x1700, 0x170c,
316   0x170e, 0x1714,
317   0x1720, 0x1734,
318   0x1740, 0x1753,
319   0x1760, 0x176c,
320   0x176e, 0x1770,
321   0x1772, 0x1773,
322   0x1780, 0x17b3,
323   0x17b6, 0x17d3,
324   0x17d7, 0x17d7,
325   0x17dc, 0x17dd,
326   0x180b, 0x180d,
327   0x1820, 0x1877,
328   0x1880, 0x18a9,
329   0x1900, 0x191c,
330   0x1920, 0x192b,
331   0x1930, 0x193b,
332   0x1950, 0x196d,
333   0x1970, 0x1974,
334   0x1980, 0x19a9,
335   0x19b0, 0x19c9,
336   0x1a00, 0x1a1b,
337   0x1d00, 0x1dc3,
338   0x1e00, 0x1e9b,
339   0x1ea0, 0x1ef9,
340   0x1f00, 0x1f15,
341   0x1f18, 0x1f1d,
342   0x1f20, 0x1f45,
343   0x1f48, 0x1f4d,
344   0x1f50, 0x1f57,
345   0x1f59, 0x1f59,
346   0x1f5b, 0x1f5b,
347   0x1f5d, 0x1f5d,
348   0x1f5f, 0x1f7d,
349   0x1f80, 0x1fb4,
350   0x1fb6, 0x1fbc,
351   0x1fbe, 0x1fbe,
352   0x1fc2, 0x1fc4,
353   0x1fc6, 0x1fcc,
354   0x1fd0, 0x1fd3,
355   0x1fd6, 0x1fdb,
356   0x1fe0, 0x1fec,
357   0x1ff2, 0x1ff4,
358   0x1ff6, 0x1ffc,
359   0x2071, 0x2071,
360   0x207f, 0x207f,
361   0x2090, 0x2094,
362   0x20d0, 0x20eb,
363   0x2102, 0x2102,
364   0x2107, 0x2107,
365   0x210a, 0x2113,
366   0x2115, 0x2115,
367   0x2119, 0x211d,
368   0x2124, 0x2124,
369   0x2126, 0x2126,
370   0x2128, 0x2128,
371   0x212a, 0x212d,
372   0x212f, 0x2131,
373   0x2133, 0x2139,
374   0x213c, 0x213f,
375   0x2145, 0x2149,
376   0x2c00, 0x2c2e,
377   0x2c30, 0x2c5e,
378   0x2c80, 0x2ce4,
379   0x2d00, 0x2d25,
380   0x2d30, 0x2d65,
381   0x2d6f, 0x2d6f,
382   0x2d80, 0x2d96,
383   0x2da0, 0x2da6,
384   0x2da8, 0x2dae,
385   0x2db0, 0x2db6,
386   0x2db8, 0x2dbe,
387   0x2dc0, 0x2dc6,
388   0x2dc8, 0x2dce,
389   0x2dd0, 0x2dd6,
390   0x2dd8, 0x2dde,
391   0x3005, 0x3006,
392   0x302a, 0x302f,
393   0x3031, 0x3035,
394   0x303b, 0x303c,
395   0x3041, 0x3096,
396   0x3099, 0x309a,
397   0x309d, 0x309f,
398   0x30a1, 0x30fa,
399   0x30fc, 0x30ff,
400   0x3105, 0x312c,
401   0x3131, 0x318e,
402   0x31a0, 0x31b7,
403   0x31f0, 0x31ff,
404   0x3400, 0x4db5,
405   0x4e00, 0x9fbb,
406   0xa000, 0xa48c,
407   0xa800, 0xa827,
408   0xac00, 0xd7a3,
409   0xf900, 0xfa2d,
410   0xfa30, 0xfa6a,
411   0xfa70, 0xfad9,
412   0xfb00, 0xfb06,
413   0xfb13, 0xfb17,
414   0xfb1d, 0xfb28,
415   0xfb2a, 0xfb36,
416   0xfb38, 0xfb3c,
417   0xfb3e, 0xfb3e,
418   0xfb40, 0xfb41,
419   0xfb43, 0xfb44,
420   0xfb46, 0xfbb1,
421   0xfbd3, 0xfd3d,
422   0xfd50, 0xfd8f,
423   0xfd92, 0xfdc7,
424   0xfdf0, 0xfdfb,
425   0xfe00, 0xfe0f,
426   0xfe20, 0xfe23,
427   0xfe70, 0xfe74,
428   0xfe76, 0xfefc,
429   0xff21, 0xff3a,
430   0xff41, 0xff5a,
431   0xff66, 0xffbe,
432   0xffc2, 0xffc7,
433   0xffca, 0xffcf,
434   0xffd2, 0xffd7,
435   0xffda, 0xffdc,
436   0x10000, 0x1000b,
437   0x1000d, 0x10026,
438   0x10028, 0x1003a,
439   0x1003c, 0x1003d,
440   0x1003f, 0x1004d,
441   0x10050, 0x1005d,
442   0x10080, 0x100fa,
443   0x10300, 0x1031e,
444   0x10330, 0x10349,
445   0x10380, 0x1039d,
446   0x103a0, 0x103c3,
447   0x103c8, 0x103cf,
448   0x10400, 0x1049d,
449   0x10800, 0x10805,
450   0x10808, 0x10808,
451   0x1080a, 0x10835,
452   0x10837, 0x10838,
453   0x1083c, 0x1083c,
454   0x1083f, 0x1083f,
455   0x10a00, 0x10a03,
456   0x10a05, 0x10a06,
457   0x10a0c, 0x10a13,
458   0x10a15, 0x10a17,
459   0x10a19, 0x10a33,
460   0x10a38, 0x10a3a,
461   0x10a3f, 0x10a3f,
462   0x1d165, 0x1d169,
463   0x1d16d, 0x1d172,
464   0x1d17b, 0x1d182,
465   0x1d185, 0x1d18b,
466   0x1d1aa, 0x1d1ad,
467   0x1d242, 0x1d244,
468   0x1d400, 0x1d454,
469   0x1d456, 0x1d49c,
470   0x1d49e, 0x1d49f,
471   0x1d4a2, 0x1d4a2,
472   0x1d4a5, 0x1d4a6,
473   0x1d4a9, 0x1d4ac,
474   0x1d4ae, 0x1d4b9,
475   0x1d4bb, 0x1d4bb,
476   0x1d4bd, 0x1d4c3,
477   0x1d4c5, 0x1d505,
478   0x1d507, 0x1d50a,
479   0x1d50d, 0x1d514,
480   0x1d516, 0x1d51c,
481   0x1d51e, 0x1d539,
482   0x1d53b, 0x1d53e,
483   0x1d540, 0x1d544,
484   0x1d546, 0x1d546,
485   0x1d54a, 0x1d550,
486   0x1d552, 0x1d6a5,
487   0x1d6a8, 0x1d6c0,
488   0x1d6c2, 0x1d6da,
489   0x1d6dc, 0x1d6fa,
490   0x1d6fc, 0x1d714,
491   0x1d716, 0x1d734,
492   0x1d736, 0x1d74e,
493   0x1d750, 0x1d76e,
494   0x1d770, 0x1d788,
495   0x1d78a, 0x1d7a8,
496   0x1d7aa, 0x1d7c2,
497   0x1d7c4, 0x1d7c9,
498   0x20000, 0x2a6d6,
499   0x2f800, 0x2fa1d,
500   0xe0100, 0xe01ef
501 }; /* CR_Alpha */
502 
503 /* 'Blank': [[:Blank:]] */
504 static const OnigCodePoint CR_Blank[] = {
505   9,
506   0x0009, 0x0009,
507   0x0020, 0x0020,
508   0x00a0, 0x00a0,
509   0x1680, 0x1680,
510   0x180e, 0x180e,
511   0x2000, 0x200a,
512   0x202f, 0x202f,
513   0x205f, 0x205f,
514   0x3000, 0x3000
515 }; /* CR_Blank */
516 
517 /* 'Cntrl': [[:Cntrl:]] */
518 static const OnigCodePoint CR_Cntrl[] = {
519   19,
520   0x0000, 0x001f,
521   0x007f, 0x009f,
522   0x00ad, 0x00ad,
523   0x0600, 0x0603,
524   0x06dd, 0x06dd,
525   0x070f, 0x070f,
526   0x17b4, 0x17b5,
527   0x200b, 0x200f,
528   0x202a, 0x202e,
529   0x2060, 0x2063,
530   0x206a, 0x206f,
531   0xd800, 0xf8ff,
532   0xfeff, 0xfeff,
533   0xfff9, 0xfffb,
534   0x1d173, 0x1d17a,
535   0xe0001, 0xe0001,
536   0xe0020, 0xe007f,
537   0xf0000, 0xffffd,
538   0x100000, 0x10fffd
539 }; /* CR_Cntrl */
540 
541 /* 'Digit': [[:Digit:]] */
542 static const OnigCodePoint CR_Digit[] = {
543   23,
544   0x0030, 0x0039,
545   0x0660, 0x0669,
546   0x06f0, 0x06f9,
547   0x0966, 0x096f,
548   0x09e6, 0x09ef,
549   0x0a66, 0x0a6f,
550   0x0ae6, 0x0aef,
551   0x0b66, 0x0b6f,
552   0x0be6, 0x0bef,
553   0x0c66, 0x0c6f,
554   0x0ce6, 0x0cef,
555   0x0d66, 0x0d6f,
556   0x0e50, 0x0e59,
557   0x0ed0, 0x0ed9,
558   0x0f20, 0x0f29,
559   0x1040, 0x1049,
560   0x17e0, 0x17e9,
561   0x1810, 0x1819,
562   0x1946, 0x194f,
563   0x19d0, 0x19d9,
564   0xff10, 0xff19,
565   0x104a0, 0x104a9,
566   0x1d7ce, 0x1d7ff
567 }; /* CR_Digit */
568 
569 /* 'Graph': [[:Graph:]] */
570 static const OnigCodePoint CR_Graph[] = {
571   424,
572   0x0021, 0x007e,
573   0x00a1, 0x0241,
574   0x0250, 0x036f,
575   0x0374, 0x0375,
576   0x037a, 0x037a,
577   0x037e, 0x037e,
578   0x0384, 0x038a,
579   0x038c, 0x038c,
580   0x038e, 0x03a1,
581   0x03a3, 0x03ce,
582   0x03d0, 0x0486,
583   0x0488, 0x04ce,
584   0x04d0, 0x04f9,
585   0x0500, 0x050f,
586   0x0531, 0x0556,
587   0x0559, 0x055f,
588   0x0561, 0x0587,
589   0x0589, 0x058a,
590   0x0591, 0x05b9,
591   0x05bb, 0x05c7,
592   0x05d0, 0x05ea,
593   0x05f0, 0x05f4,
594   0x0600, 0x0603,
595   0x060b, 0x0615,
596   0x061b, 0x061b,
597   0x061e, 0x061f,
598   0x0621, 0x063a,
599   0x0640, 0x065e,
600   0x0660, 0x070d,
601   0x070f, 0x074a,
602   0x074d, 0x076d,
603   0x0780, 0x07b1,
604   0x0901, 0x0939,
605   0x093c, 0x094d,
606   0x0950, 0x0954,
607   0x0958, 0x0970,
608   0x097d, 0x097d,
609   0x0981, 0x0983,
610   0x0985, 0x098c,
611   0x098f, 0x0990,
612   0x0993, 0x09a8,
613   0x09aa, 0x09b0,
614   0x09b2, 0x09b2,
615   0x09b6, 0x09b9,
616   0x09bc, 0x09c4,
617   0x09c7, 0x09c8,
618   0x09cb, 0x09ce,
619   0x09d7, 0x09d7,
620   0x09dc, 0x09dd,
621   0x09df, 0x09e3,
622   0x09e6, 0x09fa,
623   0x0a01, 0x0a03,
624   0x0a05, 0x0a0a,
625   0x0a0f, 0x0a10,
626   0x0a13, 0x0a28,
627   0x0a2a, 0x0a30,
628   0x0a32, 0x0a33,
629   0x0a35, 0x0a36,
630   0x0a38, 0x0a39,
631   0x0a3c, 0x0a3c,
632   0x0a3e, 0x0a42,
633   0x0a47, 0x0a48,
634   0x0a4b, 0x0a4d,
635   0x0a59, 0x0a5c,
636   0x0a5e, 0x0a5e,
637   0x0a66, 0x0a74,
638   0x0a81, 0x0a83,
639   0x0a85, 0x0a8d,
640   0x0a8f, 0x0a91,
641   0x0a93, 0x0aa8,
642   0x0aaa, 0x0ab0,
643   0x0ab2, 0x0ab3,
644   0x0ab5, 0x0ab9,
645   0x0abc, 0x0ac5,
646   0x0ac7, 0x0ac9,
647   0x0acb, 0x0acd,
648   0x0ad0, 0x0ad0,
649   0x0ae0, 0x0ae3,
650   0x0ae6, 0x0aef,
651   0x0af1, 0x0af1,
652   0x0b01, 0x0b03,
653   0x0b05, 0x0b0c,
654   0x0b0f, 0x0b10,
655   0x0b13, 0x0b28,
656   0x0b2a, 0x0b30,
657   0x0b32, 0x0b33,
658   0x0b35, 0x0b39,
659   0x0b3c, 0x0b43,
660   0x0b47, 0x0b48,
661   0x0b4b, 0x0b4d,
662   0x0b56, 0x0b57,
663   0x0b5c, 0x0b5d,
664   0x0b5f, 0x0b61,
665   0x0b66, 0x0b71,
666   0x0b82, 0x0b83,
667   0x0b85, 0x0b8a,
668   0x0b8e, 0x0b90,
669   0x0b92, 0x0b95,
670   0x0b99, 0x0b9a,
671   0x0b9c, 0x0b9c,
672   0x0b9e, 0x0b9f,
673   0x0ba3, 0x0ba4,
674   0x0ba8, 0x0baa,
675   0x0bae, 0x0bb9,
676   0x0bbe, 0x0bc2,
677   0x0bc6, 0x0bc8,
678   0x0bca, 0x0bcd,
679   0x0bd7, 0x0bd7,
680   0x0be6, 0x0bfa,
681   0x0c01, 0x0c03,
682   0x0c05, 0x0c0c,
683   0x0c0e, 0x0c10,
684   0x0c12, 0x0c28,
685   0x0c2a, 0x0c33,
686   0x0c35, 0x0c39,
687   0x0c3e, 0x0c44,
688   0x0c46, 0x0c48,
689   0x0c4a, 0x0c4d,
690   0x0c55, 0x0c56,
691   0x0c60, 0x0c61,
692   0x0c66, 0x0c6f,
693   0x0c82, 0x0c83,
694   0x0c85, 0x0c8c,
695   0x0c8e, 0x0c90,
696   0x0c92, 0x0ca8,
697   0x0caa, 0x0cb3,
698   0x0cb5, 0x0cb9,
699   0x0cbc, 0x0cc4,
700   0x0cc6, 0x0cc8,
701   0x0cca, 0x0ccd,
702   0x0cd5, 0x0cd6,
703   0x0cde, 0x0cde,
704   0x0ce0, 0x0ce1,
705   0x0ce6, 0x0cef,
706   0x0d02, 0x0d03,
707   0x0d05, 0x0d0c,
708   0x0d0e, 0x0d10,
709   0x0d12, 0x0d28,
710   0x0d2a, 0x0d39,
711   0x0d3e, 0x0d43,
712   0x0d46, 0x0d48,
713   0x0d4a, 0x0d4d,
714   0x0d57, 0x0d57,
715   0x0d60, 0x0d61,
716   0x0d66, 0x0d6f,
717   0x0d82, 0x0d83,
718   0x0d85, 0x0d96,
719   0x0d9a, 0x0db1,
720   0x0db3, 0x0dbb,
721   0x0dbd, 0x0dbd,
722   0x0dc0, 0x0dc6,
723   0x0dca, 0x0dca,
724   0x0dcf, 0x0dd4,
725   0x0dd6, 0x0dd6,
726   0x0dd8, 0x0ddf,
727   0x0df2, 0x0df4,
728   0x0e01, 0x0e3a,
729   0x0e3f, 0x0e5b,
730   0x0e81, 0x0e82,
731   0x0e84, 0x0e84,
732   0x0e87, 0x0e88,
733   0x0e8a, 0x0e8a,
734   0x0e8d, 0x0e8d,
735   0x0e94, 0x0e97,
736   0x0e99, 0x0e9f,
737   0x0ea1, 0x0ea3,
738   0x0ea5, 0x0ea5,
739   0x0ea7, 0x0ea7,
740   0x0eaa, 0x0eab,
741   0x0ead, 0x0eb9,
742   0x0ebb, 0x0ebd,
743   0x0ec0, 0x0ec4,
744   0x0ec6, 0x0ec6,
745   0x0ec8, 0x0ecd,
746   0x0ed0, 0x0ed9,
747   0x0edc, 0x0edd,
748   0x0f00, 0x0f47,
749   0x0f49, 0x0f6a,
750   0x0f71, 0x0f8b,
751   0x0f90, 0x0f97,
752   0x0f99, 0x0fbc,
753   0x0fbe, 0x0fcc,
754   0x0fcf, 0x0fd1,
755   0x1000, 0x1021,
756   0x1023, 0x1027,
757   0x1029, 0x102a,
758   0x102c, 0x1032,
759   0x1036, 0x1039,
760   0x1040, 0x1059,
761   0x10a0, 0x10c5,
762   0x10d0, 0x10fc,
763   0x1100, 0x1159,
764   0x115f, 0x11a2,
765   0x11a8, 0x11f9,
766   0x1200, 0x1248,
767   0x124a, 0x124d,
768   0x1250, 0x1256,
769   0x1258, 0x1258,
770   0x125a, 0x125d,
771   0x1260, 0x1288,
772   0x128a, 0x128d,
773   0x1290, 0x12b0,
774   0x12b2, 0x12b5,
775   0x12b8, 0x12be,
776   0x12c0, 0x12c0,
777   0x12c2, 0x12c5,
778   0x12c8, 0x12d6,
779   0x12d8, 0x1310,
780   0x1312, 0x1315,
781   0x1318, 0x135a,
782   0x135f, 0x137c,
783   0x1380, 0x1399,
784   0x13a0, 0x13f4,
785   0x1401, 0x1676,
786   0x1681, 0x169c,
787   0x16a0, 0x16f0,
788   0x1700, 0x170c,
789   0x170e, 0x1714,
790   0x1720, 0x1736,
791   0x1740, 0x1753,
792   0x1760, 0x176c,
793   0x176e, 0x1770,
794   0x1772, 0x1773,
795   0x1780, 0x17dd,
796   0x17e0, 0x17e9,
797   0x17f0, 0x17f9,
798   0x1800, 0x180d,
799   0x1810, 0x1819,
800   0x1820, 0x1877,
801   0x1880, 0x18a9,
802   0x1900, 0x191c,
803   0x1920, 0x192b,
804   0x1930, 0x193b,
805   0x1940, 0x1940,
806   0x1944, 0x196d,
807   0x1970, 0x1974,
808   0x1980, 0x19a9,
809   0x19b0, 0x19c9,
810   0x19d0, 0x19d9,
811   0x19de, 0x1a1b,
812   0x1a1e, 0x1a1f,
813   0x1d00, 0x1dc3,
814   0x1e00, 0x1e9b,
815   0x1ea0, 0x1ef9,
816   0x1f00, 0x1f15,
817   0x1f18, 0x1f1d,
818   0x1f20, 0x1f45,
819   0x1f48, 0x1f4d,
820   0x1f50, 0x1f57,
821   0x1f59, 0x1f59,
822   0x1f5b, 0x1f5b,
823   0x1f5d, 0x1f5d,
824   0x1f5f, 0x1f7d,
825   0x1f80, 0x1fb4,
826   0x1fb6, 0x1fc4,
827   0x1fc6, 0x1fd3,
828   0x1fd6, 0x1fdb,
829   0x1fdd, 0x1fef,
830   0x1ff2, 0x1ff4,
831   0x1ff6, 0x1ffe,
832   0x200b, 0x2027,
833   0x202a, 0x202e,
834   0x2030, 0x205e,
835   0x2060, 0x2063,
836   0x206a, 0x2071,
837   0x2074, 0x208e,
838   0x2090, 0x2094,
839   0x20a0, 0x20b5,
840   0x20d0, 0x20eb,
841   0x2100, 0x214c,
842   0x2153, 0x2183,
843   0x2190, 0x23db,
844   0x2400, 0x2426,
845   0x2440, 0x244a,
846   0x2460, 0x269c,
847   0x26a0, 0x26b1,
848   0x2701, 0x2704,
849   0x2706, 0x2709,
850   0x270c, 0x2727,
851   0x2729, 0x274b,
852   0x274d, 0x274d,
853   0x274f, 0x2752,
854   0x2756, 0x2756,
855   0x2758, 0x275e,
856   0x2761, 0x2794,
857   0x2798, 0x27af,
858   0x27b1, 0x27be,
859   0x27c0, 0x27c6,
860   0x27d0, 0x27eb,
861   0x27f0, 0x2b13,
862   0x2c00, 0x2c2e,
863   0x2c30, 0x2c5e,
864   0x2c80, 0x2cea,
865   0x2cf9, 0x2d25,
866   0x2d30, 0x2d65,
867   0x2d6f, 0x2d6f,
868   0x2d80, 0x2d96,
869   0x2da0, 0x2da6,
870   0x2da8, 0x2dae,
871   0x2db0, 0x2db6,
872   0x2db8, 0x2dbe,
873   0x2dc0, 0x2dc6,
874   0x2dc8, 0x2dce,
875   0x2dd0, 0x2dd6,
876   0x2dd8, 0x2dde,
877   0x2e00, 0x2e17,
878   0x2e1c, 0x2e1d,
879   0x2e80, 0x2e99,
880   0x2e9b, 0x2ef3,
881   0x2f00, 0x2fd5,
882   0x2ff0, 0x2ffb,
883   0x3001, 0x303f,
884   0x3041, 0x3096,
885   0x3099, 0x30ff,
886   0x3105, 0x312c,
887   0x3131, 0x318e,
888   0x3190, 0x31b7,
889   0x31c0, 0x31cf,
890   0x31f0, 0x321e,
891   0x3220, 0x3243,
892   0x3250, 0x32fe,
893   0x3300, 0x4db5,
894   0x4dc0, 0x9fbb,
895   0xa000, 0xa48c,
896   0xa490, 0xa4c6,
897   0xa700, 0xa716,
898   0xa800, 0xa82b,
899   0xac00, 0xd7a3,
900   0xe000, 0xfa2d,
901   0xfa30, 0xfa6a,
902   0xfa70, 0xfad9,
903   0xfb00, 0xfb06,
904   0xfb13, 0xfb17,
905   0xfb1d, 0xfb36,
906   0xfb38, 0xfb3c,
907   0xfb3e, 0xfb3e,
908   0xfb40, 0xfb41,
909   0xfb43, 0xfb44,
910   0xfb46, 0xfbb1,
911   0xfbd3, 0xfd3f,
912   0xfd50, 0xfd8f,
913   0xfd92, 0xfdc7,
914   0xfdf0, 0xfdfd,
915   0xfe00, 0xfe19,
916   0xfe20, 0xfe23,
917   0xfe30, 0xfe52,
918   0xfe54, 0xfe66,
919   0xfe68, 0xfe6b,
920   0xfe70, 0xfe74,
921   0xfe76, 0xfefc,
922   0xfeff, 0xfeff,
923   0xff01, 0xffbe,
924   0xffc2, 0xffc7,
925   0xffca, 0xffcf,
926   0xffd2, 0xffd7,
927   0xffda, 0xffdc,
928   0xffe0, 0xffe6,
929   0xffe8, 0xffee,
930   0xfff9, 0xfffd,
931   0x10000, 0x1000b,
932   0x1000d, 0x10026,
933   0x10028, 0x1003a,
934   0x1003c, 0x1003d,
935   0x1003f, 0x1004d,
936   0x10050, 0x1005d,
937   0x10080, 0x100fa,
938   0x10100, 0x10102,
939   0x10107, 0x10133,
940   0x10137, 0x1018a,
941   0x10300, 0x1031e,
942   0x10320, 0x10323,
943   0x10330, 0x1034a,
944   0x10380, 0x1039d,
945   0x1039f, 0x103c3,
946   0x103c8, 0x103d5,
947   0x10400, 0x1049d,
948   0x104a0, 0x104a9,
949   0x10800, 0x10805,
950   0x10808, 0x10808,
951   0x1080a, 0x10835,
952   0x10837, 0x10838,
953   0x1083c, 0x1083c,
954   0x1083f, 0x1083f,
955   0x10a00, 0x10a03,
956   0x10a05, 0x10a06,
957   0x10a0c, 0x10a13,
958   0x10a15, 0x10a17,
959   0x10a19, 0x10a33,
960   0x10a38, 0x10a3a,
961   0x10a3f, 0x10a47,
962   0x10a50, 0x10a58,
963   0x1d000, 0x1d0f5,
964   0x1d100, 0x1d126,
965   0x1d12a, 0x1d1dd,
966   0x1d200, 0x1d245,
967   0x1d300, 0x1d356,
968   0x1d400, 0x1d454,
969   0x1d456, 0x1d49c,
970   0x1d49e, 0x1d49f,
971   0x1d4a2, 0x1d4a2,
972   0x1d4a5, 0x1d4a6,
973   0x1d4a9, 0x1d4ac,
974   0x1d4ae, 0x1d4b9,
975   0x1d4bb, 0x1d4bb,
976   0x1d4bd, 0x1d4c3,
977   0x1d4c5, 0x1d505,
978   0x1d507, 0x1d50a,
979   0x1d50d, 0x1d514,
980   0x1d516, 0x1d51c,
981   0x1d51e, 0x1d539,
982   0x1d53b, 0x1d53e,
983   0x1d540, 0x1d544,
984   0x1d546, 0x1d546,
985   0x1d54a, 0x1d550,
986   0x1d552, 0x1d6a5,
987   0x1d6a8, 0x1d7c9,
988   0x1d7ce, 0x1d7ff,
989   0x20000, 0x2a6d6,
990   0x2f800, 0x2fa1d,
991   0xe0001, 0xe0001,
992   0xe0020, 0xe007f,
993   0xe0100, 0xe01ef,
994   0xf0000, 0xffffd,
995   0x100000, 0x10fffd
996 }; /* CR_Graph */
997 
998 /* 'Lower': [[:Lower:]] */
999 static const OnigCodePoint CR_Lower[] = {
1000   480,
1001   0x0061, 0x007a,
1002   0x00aa, 0x00aa,
1003   0x00b5, 0x00b5,
1004   0x00ba, 0x00ba,
1005   0x00df, 0x00f6,
1006   0x00f8, 0x00ff,
1007   0x0101, 0x0101,
1008   0x0103, 0x0103,
1009   0x0105, 0x0105,
1010   0x0107, 0x0107,
1011   0x0109, 0x0109,
1012   0x010b, 0x010b,
1013   0x010d, 0x010d,
1014   0x010f, 0x010f,
1015   0x0111, 0x0111,
1016   0x0113, 0x0113,
1017   0x0115, 0x0115,
1018   0x0117, 0x0117,
1019   0x0119, 0x0119,
1020   0x011b, 0x011b,
1021   0x011d, 0x011d,
1022   0x011f, 0x011f,
1023   0x0121, 0x0121,
1024   0x0123, 0x0123,
1025   0x0125, 0x0125,
1026   0x0127, 0x0127,
1027   0x0129, 0x0129,
1028   0x012b, 0x012b,
1029   0x012d, 0x012d,
1030   0x012f, 0x012f,
1031   0x0131, 0x0131,
1032   0x0133, 0x0133,
1033   0x0135, 0x0135,
1034   0x0137, 0x0138,
1035   0x013a, 0x013a,
1036   0x013c, 0x013c,
1037   0x013e, 0x013e,
1038   0x0140, 0x0140,
1039   0x0142, 0x0142,
1040   0x0144, 0x0144,
1041   0x0146, 0x0146,
1042   0x0148, 0x0149,
1043   0x014b, 0x014b,
1044   0x014d, 0x014d,
1045   0x014f, 0x014f,
1046   0x0151, 0x0151,
1047   0x0153, 0x0153,
1048   0x0155, 0x0155,
1049   0x0157, 0x0157,
1050   0x0159, 0x0159,
1051   0x015b, 0x015b,
1052   0x015d, 0x015d,
1053   0x015f, 0x015f,
1054   0x0161, 0x0161,
1055   0x0163, 0x0163,
1056   0x0165, 0x0165,
1057   0x0167, 0x0167,
1058   0x0169, 0x0169,
1059   0x016b, 0x016b,
1060   0x016d, 0x016d,
1061   0x016f, 0x016f,
1062   0x0171, 0x0171,
1063   0x0173, 0x0173,
1064   0x0175, 0x0175,
1065   0x0177, 0x0177,
1066   0x017a, 0x017a,
1067   0x017c, 0x017c,
1068   0x017e, 0x0180,
1069   0x0183, 0x0183,
1070   0x0185, 0x0185,
1071   0x0188, 0x0188,
1072   0x018c, 0x018d,
1073   0x0192, 0x0192,
1074   0x0195, 0x0195,
1075   0x0199, 0x019b,
1076   0x019e, 0x019e,
1077   0x01a1, 0x01a1,
1078   0x01a3, 0x01a3,
1079   0x01a5, 0x01a5,
1080   0x01a8, 0x01a8,
1081   0x01aa, 0x01ab,
1082   0x01ad, 0x01ad,
1083   0x01b0, 0x01b0,
1084   0x01b4, 0x01b4,
1085   0x01b6, 0x01b6,
1086   0x01b9, 0x01ba,
1087   0x01bd, 0x01bf,
1088   0x01c6, 0x01c6,
1089   0x01c9, 0x01c9,
1090   0x01cc, 0x01cc,
1091   0x01ce, 0x01ce,
1092   0x01d0, 0x01d0,
1093   0x01d2, 0x01d2,
1094   0x01d4, 0x01d4,
1095   0x01d6, 0x01d6,
1096   0x01d8, 0x01d8,
1097   0x01da, 0x01da,
1098   0x01dc, 0x01dd,
1099   0x01df, 0x01df,
1100   0x01e1, 0x01e1,
1101   0x01e3, 0x01e3,
1102   0x01e5, 0x01e5,
1103   0x01e7, 0x01e7,
1104   0x01e9, 0x01e9,
1105   0x01eb, 0x01eb,
1106   0x01ed, 0x01ed,
1107   0x01ef, 0x01f0,
1108   0x01f3, 0x01f3,
1109   0x01f5, 0x01f5,
1110   0x01f9, 0x01f9,
1111   0x01fb, 0x01fb,
1112   0x01fd, 0x01fd,
1113   0x01ff, 0x01ff,
1114   0x0201, 0x0201,
1115   0x0203, 0x0203,
1116   0x0205, 0x0205,
1117   0x0207, 0x0207,
1118   0x0209, 0x0209,
1119   0x020b, 0x020b,
1120   0x020d, 0x020d,
1121   0x020f, 0x020f,
1122   0x0211, 0x0211,
1123   0x0213, 0x0213,
1124   0x0215, 0x0215,
1125   0x0217, 0x0217,
1126   0x0219, 0x0219,
1127   0x021b, 0x021b,
1128   0x021d, 0x021d,
1129   0x021f, 0x021f,
1130   0x0221, 0x0221,
1131   0x0223, 0x0223,
1132   0x0225, 0x0225,
1133   0x0227, 0x0227,
1134   0x0229, 0x0229,
1135   0x022b, 0x022b,
1136   0x022d, 0x022d,
1137   0x022f, 0x022f,
1138   0x0231, 0x0231,
1139   0x0233, 0x0239,
1140   0x023c, 0x023c,
1141   0x023f, 0x0240,
1142   0x0250, 0x02af,
1143   0x0390, 0x0390,
1144   0x03ac, 0x03ce,
1145   0x03d0, 0x03d1,
1146   0x03d5, 0x03d7,
1147   0x03d9, 0x03d9,
1148   0x03db, 0x03db,
1149   0x03dd, 0x03dd,
1150   0x03df, 0x03df,
1151   0x03e1, 0x03e1,
1152   0x03e3, 0x03e3,
1153   0x03e5, 0x03e5,
1154   0x03e7, 0x03e7,
1155   0x03e9, 0x03e9,
1156   0x03eb, 0x03eb,
1157   0x03ed, 0x03ed,
1158   0x03ef, 0x03f3,
1159   0x03f5, 0x03f5,
1160   0x03f8, 0x03f8,
1161   0x03fb, 0x03fc,
1162   0x0430, 0x045f,
1163   0x0461, 0x0461,
1164   0x0463, 0x0463,
1165   0x0465, 0x0465,
1166   0x0467, 0x0467,
1167   0x0469, 0x0469,
1168   0x046b, 0x046b,
1169   0x046d, 0x046d,
1170   0x046f, 0x046f,
1171   0x0471, 0x0471,
1172   0x0473, 0x0473,
1173   0x0475, 0x0475,
1174   0x0477, 0x0477,
1175   0x0479, 0x0479,
1176   0x047b, 0x047b,
1177   0x047d, 0x047d,
1178   0x047f, 0x047f,
1179   0x0481, 0x0481,
1180   0x048b, 0x048b,
1181   0x048d, 0x048d,
1182   0x048f, 0x048f,
1183   0x0491, 0x0491,
1184   0x0493, 0x0493,
1185   0x0495, 0x0495,
1186   0x0497, 0x0497,
1187   0x0499, 0x0499,
1188   0x049b, 0x049b,
1189   0x049d, 0x049d,
1190   0x049f, 0x049f,
1191   0x04a1, 0x04a1,
1192   0x04a3, 0x04a3,
1193   0x04a5, 0x04a5,
1194   0x04a7, 0x04a7,
1195   0x04a9, 0x04a9,
1196   0x04ab, 0x04ab,
1197   0x04ad, 0x04ad,
1198   0x04af, 0x04af,
1199   0x04b1, 0x04b1,
1200   0x04b3, 0x04b3,
1201   0x04b5, 0x04b5,
1202   0x04b7, 0x04b7,
1203   0x04b9, 0x04b9,
1204   0x04bb, 0x04bb,
1205   0x04bd, 0x04bd,
1206   0x04bf, 0x04bf,
1207   0x04c2, 0x04c2,
1208   0x04c4, 0x04c4,
1209   0x04c6, 0x04c6,
1210   0x04c8, 0x04c8,
1211   0x04ca, 0x04ca,
1212   0x04cc, 0x04cc,
1213   0x04ce, 0x04ce,
1214   0x04d1, 0x04d1,
1215   0x04d3, 0x04d3,
1216   0x04d5, 0x04d5,
1217   0x04d7, 0x04d7,
1218   0x04d9, 0x04d9,
1219   0x04db, 0x04db,
1220   0x04dd, 0x04dd,
1221   0x04df, 0x04df,
1222   0x04e1, 0x04e1,
1223   0x04e3, 0x04e3,
1224   0x04e5, 0x04e5,
1225   0x04e7, 0x04e7,
1226   0x04e9, 0x04e9,
1227   0x04eb, 0x04eb,
1228   0x04ed, 0x04ed,
1229   0x04ef, 0x04ef,
1230   0x04f1, 0x04f1,
1231   0x04f3, 0x04f3,
1232   0x04f5, 0x04f5,
1233   0x04f7, 0x04f7,
1234   0x04f9, 0x04f9,
1235   0x0501, 0x0501,
1236   0x0503, 0x0503,
1237   0x0505, 0x0505,
1238   0x0507, 0x0507,
1239   0x0509, 0x0509,
1240   0x050b, 0x050b,
1241   0x050d, 0x050d,
1242   0x050f, 0x050f,
1243   0x0561, 0x0587,
1244   0x1d00, 0x1d2b,
1245   0x1d62, 0x1d77,
1246   0x1d79, 0x1d9a,
1247   0x1e01, 0x1e01,
1248   0x1e03, 0x1e03,
1249   0x1e05, 0x1e05,
1250   0x1e07, 0x1e07,
1251   0x1e09, 0x1e09,
1252   0x1e0b, 0x1e0b,
1253   0x1e0d, 0x1e0d,
1254   0x1e0f, 0x1e0f,
1255   0x1e11, 0x1e11,
1256   0x1e13, 0x1e13,
1257   0x1e15, 0x1e15,
1258   0x1e17, 0x1e17,
1259   0x1e19, 0x1e19,
1260   0x1e1b, 0x1e1b,
1261   0x1e1d, 0x1e1d,
1262   0x1e1f, 0x1e1f,
1263   0x1e21, 0x1e21,
1264   0x1e23, 0x1e23,
1265   0x1e25, 0x1e25,
1266   0x1e27, 0x1e27,
1267   0x1e29, 0x1e29,
1268   0x1e2b, 0x1e2b,
1269   0x1e2d, 0x1e2d,
1270   0x1e2f, 0x1e2f,
1271   0x1e31, 0x1e31,
1272   0x1e33, 0x1e33,
1273   0x1e35, 0x1e35,
1274   0x1e37, 0x1e37,
1275   0x1e39, 0x1e39,
1276   0x1e3b, 0x1e3b,
1277   0x1e3d, 0x1e3d,
1278   0x1e3f, 0x1e3f,
1279   0x1e41, 0x1e41,
1280   0x1e43, 0x1e43,
1281   0x1e45, 0x1e45,
1282   0x1e47, 0x1e47,
1283   0x1e49, 0x1e49,
1284   0x1e4b, 0x1e4b,
1285   0x1e4d, 0x1e4d,
1286   0x1e4f, 0x1e4f,
1287   0x1e51, 0x1e51,
1288   0x1e53, 0x1e53,
1289   0x1e55, 0x1e55,
1290   0x1e57, 0x1e57,
1291   0x1e59, 0x1e59,
1292   0x1e5b, 0x1e5b,
1293   0x1e5d, 0x1e5d,
1294   0x1e5f, 0x1e5f,
1295   0x1e61, 0x1e61,
1296   0x1e63, 0x1e63,
1297   0x1e65, 0x1e65,
1298   0x1e67, 0x1e67,
1299   0x1e69, 0x1e69,
1300   0x1e6b, 0x1e6b,
1301   0x1e6d, 0x1e6d,
1302   0x1e6f, 0x1e6f,
1303   0x1e71, 0x1e71,
1304   0x1e73, 0x1e73,
1305   0x1e75, 0x1e75,
1306   0x1e77, 0x1e77,
1307   0x1e79, 0x1e79,
1308   0x1e7b, 0x1e7b,
1309   0x1e7d, 0x1e7d,
1310   0x1e7f, 0x1e7f,
1311   0x1e81, 0x1e81,
1312   0x1e83, 0x1e83,
1313   0x1e85, 0x1e85,
1314   0x1e87, 0x1e87,
1315   0x1e89, 0x1e89,
1316   0x1e8b, 0x1e8b,
1317   0x1e8d, 0x1e8d,
1318   0x1e8f, 0x1e8f,
1319   0x1e91, 0x1e91,
1320   0x1e93, 0x1e93,
1321   0x1e95, 0x1e9b,
1322   0x1ea1, 0x1ea1,
1323   0x1ea3, 0x1ea3,
1324   0x1ea5, 0x1ea5,
1325   0x1ea7, 0x1ea7,
1326   0x1ea9, 0x1ea9,
1327   0x1eab, 0x1eab,
1328   0x1ead, 0x1ead,
1329   0x1eaf, 0x1eaf,
1330   0x1eb1, 0x1eb1,
1331   0x1eb3, 0x1eb3,
1332   0x1eb5, 0x1eb5,
1333   0x1eb7, 0x1eb7,
1334   0x1eb9, 0x1eb9,
1335   0x1ebb, 0x1ebb,
1336   0x1ebd, 0x1ebd,
1337   0x1ebf, 0x1ebf,
1338   0x1ec1, 0x1ec1,
1339   0x1ec3, 0x1ec3,
1340   0x1ec5, 0x1ec5,
1341   0x1ec7, 0x1ec7,
1342   0x1ec9, 0x1ec9,
1343   0x1ecb, 0x1ecb,
1344   0x1ecd, 0x1ecd,
1345   0x1ecf, 0x1ecf,
1346   0x1ed1, 0x1ed1,
1347   0x1ed3, 0x1ed3,
1348   0x1ed5, 0x1ed5,
1349   0x1ed7, 0x1ed7,
1350   0x1ed9, 0x1ed9,
1351   0x1edb, 0x1edb,
1352   0x1edd, 0x1edd,
1353   0x1edf, 0x1edf,
1354   0x1ee1, 0x1ee1,
1355   0x1ee3, 0x1ee3,
1356   0x1ee5, 0x1ee5,
1357   0x1ee7, 0x1ee7,
1358   0x1ee9, 0x1ee9,
1359   0x1eeb, 0x1eeb,
1360   0x1eed, 0x1eed,
1361   0x1eef, 0x1eef,
1362   0x1ef1, 0x1ef1,
1363   0x1ef3, 0x1ef3,
1364   0x1ef5, 0x1ef5,
1365   0x1ef7, 0x1ef7,
1366   0x1ef9, 0x1ef9,
1367   0x1f00, 0x1f07,
1368   0x1f10, 0x1f15,
1369   0x1f20, 0x1f27,
1370   0x1f30, 0x1f37,
1371   0x1f40, 0x1f45,
1372   0x1f50, 0x1f57,
1373   0x1f60, 0x1f67,
1374   0x1f70, 0x1f7d,
1375   0x1f80, 0x1f87,
1376   0x1f90, 0x1f97,
1377   0x1fa0, 0x1fa7,
1378   0x1fb0, 0x1fb4,
1379   0x1fb6, 0x1fb7,
1380   0x1fbe, 0x1fbe,
1381   0x1fc2, 0x1fc4,
1382   0x1fc6, 0x1fc7,
1383   0x1fd0, 0x1fd3,
1384   0x1fd6, 0x1fd7,
1385   0x1fe0, 0x1fe7,
1386   0x1ff2, 0x1ff4,
1387   0x1ff6, 0x1ff7,
1388   0x2071, 0x2071,
1389   0x207f, 0x207f,
1390   0x210a, 0x210a,
1391   0x210e, 0x210f,
1392   0x2113, 0x2113,
1393   0x212f, 0x212f,
1394   0x2134, 0x2134,
1395   0x2139, 0x2139,
1396   0x213c, 0x213d,
1397   0x2146, 0x2149,
1398   0x2c30, 0x2c5e,
1399   0x2c81, 0x2c81,
1400   0x2c83, 0x2c83,
1401   0x2c85, 0x2c85,
1402   0x2c87, 0x2c87,
1403   0x2c89, 0x2c89,
1404   0x2c8b, 0x2c8b,
1405   0x2c8d, 0x2c8d,
1406   0x2c8f, 0x2c8f,
1407   0x2c91, 0x2c91,
1408   0x2c93, 0x2c93,
1409   0x2c95, 0x2c95,
1410   0x2c97, 0x2c97,
1411   0x2c99, 0x2c99,
1412   0x2c9b, 0x2c9b,
1413   0x2c9d, 0x2c9d,
1414   0x2c9f, 0x2c9f,
1415   0x2ca1, 0x2ca1,
1416   0x2ca3, 0x2ca3,
1417   0x2ca5, 0x2ca5,
1418   0x2ca7, 0x2ca7,
1419   0x2ca9, 0x2ca9,
1420   0x2cab, 0x2cab,
1421   0x2cad, 0x2cad,
1422   0x2caf, 0x2caf,
1423   0x2cb1, 0x2cb1,
1424   0x2cb3, 0x2cb3,
1425   0x2cb5, 0x2cb5,
1426   0x2cb7, 0x2cb7,
1427   0x2cb9, 0x2cb9,
1428   0x2cbb, 0x2cbb,
1429   0x2cbd, 0x2cbd,
1430   0x2cbf, 0x2cbf,
1431   0x2cc1, 0x2cc1,
1432   0x2cc3, 0x2cc3,
1433   0x2cc5, 0x2cc5,
1434   0x2cc7, 0x2cc7,
1435   0x2cc9, 0x2cc9,
1436   0x2ccb, 0x2ccb,
1437   0x2ccd, 0x2ccd,
1438   0x2ccf, 0x2ccf,
1439   0x2cd1, 0x2cd1,
1440   0x2cd3, 0x2cd3,
1441   0x2cd5, 0x2cd5,
1442   0x2cd7, 0x2cd7,
1443   0x2cd9, 0x2cd9,
1444   0x2cdb, 0x2cdb,
1445   0x2cdd, 0x2cdd,
1446   0x2cdf, 0x2cdf,
1447   0x2ce1, 0x2ce1,
1448   0x2ce3, 0x2ce4,
1449   0x2d00, 0x2d25,
1450   0xfb00, 0xfb06,
1451   0xfb13, 0xfb17,
1452   0xff41, 0xff5a,
1453   0x10428, 0x1044f,
1454   0x1d41a, 0x1d433,
1455   0x1d44e, 0x1d454,
1456   0x1d456, 0x1d467,
1457   0x1d482, 0x1d49b,
1458   0x1d4b6, 0x1d4b9,
1459   0x1d4bb, 0x1d4bb,
1460   0x1d4bd, 0x1d4c3,
1461   0x1d4c5, 0x1d4cf,
1462   0x1d4ea, 0x1d503,
1463   0x1d51e, 0x1d537,
1464   0x1d552, 0x1d56b,
1465   0x1d586, 0x1d59f,
1466   0x1d5ba, 0x1d5d3,
1467   0x1d5ee, 0x1d607,
1468   0x1d622, 0x1d63b,
1469   0x1d656, 0x1d66f,
1470   0x1d68a, 0x1d6a5,
1471   0x1d6c2, 0x1d6da,
1472   0x1d6dc, 0x1d6e1,
1473   0x1d6fc, 0x1d714,
1474   0x1d716, 0x1d71b,
1475   0x1d736, 0x1d74e,
1476   0x1d750, 0x1d755,
1477   0x1d770, 0x1d788,
1478   0x1d78a, 0x1d78f,
1479   0x1d7aa, 0x1d7c2,
1480   0x1d7c4, 0x1d7c9
1481 }; /* CR_Lower */
1482 
1483 /* 'Print': [[:Print:]] */
1484 static const OnigCodePoint CR_Print[] = {
1485   423,
1486   0x0009, 0x000d,
1487   0x0020, 0x007e,
1488   0x0085, 0x0085,
1489   0x00a0, 0x0241,
1490   0x0250, 0x036f,
1491   0x0374, 0x0375,
1492   0x037a, 0x037a,
1493   0x037e, 0x037e,
1494   0x0384, 0x038a,
1495   0x038c, 0x038c,
1496   0x038e, 0x03a1,
1497   0x03a3, 0x03ce,
1498   0x03d0, 0x0486,
1499   0x0488, 0x04ce,
1500   0x04d0, 0x04f9,
1501   0x0500, 0x050f,
1502   0x0531, 0x0556,
1503   0x0559, 0x055f,
1504   0x0561, 0x0587,
1505   0x0589, 0x058a,
1506   0x0591, 0x05b9,
1507   0x05bb, 0x05c7,
1508   0x05d0, 0x05ea,
1509   0x05f0, 0x05f4,
1510   0x0600, 0x0603,
1511   0x060b, 0x0615,
1512   0x061b, 0x061b,
1513   0x061e, 0x061f,
1514   0x0621, 0x063a,
1515   0x0640, 0x065e,
1516   0x0660, 0x070d,
1517   0x070f, 0x074a,
1518   0x074d, 0x076d,
1519   0x0780, 0x07b1,
1520   0x0901, 0x0939,
1521   0x093c, 0x094d,
1522   0x0950, 0x0954,
1523   0x0958, 0x0970,
1524   0x097d, 0x097d,
1525   0x0981, 0x0983,
1526   0x0985, 0x098c,
1527   0x098f, 0x0990,
1528   0x0993, 0x09a8,
1529   0x09aa, 0x09b0,
1530   0x09b2, 0x09b2,
1531   0x09b6, 0x09b9,
1532   0x09bc, 0x09c4,
1533   0x09c7, 0x09c8,
1534   0x09cb, 0x09ce,
1535   0x09d7, 0x09d7,
1536   0x09dc, 0x09dd,
1537   0x09df, 0x09e3,
1538   0x09e6, 0x09fa,
1539   0x0a01, 0x0a03,
1540   0x0a05, 0x0a0a,
1541   0x0a0f, 0x0a10,
1542   0x0a13, 0x0a28,
1543   0x0a2a, 0x0a30,
1544   0x0a32, 0x0a33,
1545   0x0a35, 0x0a36,
1546   0x0a38, 0x0a39,
1547   0x0a3c, 0x0a3c,
1548   0x0a3e, 0x0a42,
1549   0x0a47, 0x0a48,
1550   0x0a4b, 0x0a4d,
1551   0x0a59, 0x0a5c,
1552   0x0a5e, 0x0a5e,
1553   0x0a66, 0x0a74,
1554   0x0a81, 0x0a83,
1555   0x0a85, 0x0a8d,
1556   0x0a8f, 0x0a91,
1557   0x0a93, 0x0aa8,
1558   0x0aaa, 0x0ab0,
1559   0x0ab2, 0x0ab3,
1560   0x0ab5, 0x0ab9,
1561   0x0abc, 0x0ac5,
1562   0x0ac7, 0x0ac9,
1563   0x0acb, 0x0acd,
1564   0x0ad0, 0x0ad0,
1565   0x0ae0, 0x0ae3,
1566   0x0ae6, 0x0aef,
1567   0x0af1, 0x0af1,
1568   0x0b01, 0x0b03,
1569   0x0b05, 0x0b0c,
1570   0x0b0f, 0x0b10,
1571   0x0b13, 0x0b28,
1572   0x0b2a, 0x0b30,
1573   0x0b32, 0x0b33,
1574   0x0b35, 0x0b39,
1575   0x0b3c, 0x0b43,
1576   0x0b47, 0x0b48,
1577   0x0b4b, 0x0b4d,
1578   0x0b56, 0x0b57,
1579   0x0b5c, 0x0b5d,
1580   0x0b5f, 0x0b61,
1581   0x0b66, 0x0b71,
1582   0x0b82, 0x0b83,
1583   0x0b85, 0x0b8a,
1584   0x0b8e, 0x0b90,
1585   0x0b92, 0x0b95,
1586   0x0b99, 0x0b9a,
1587   0x0b9c, 0x0b9c,
1588   0x0b9e, 0x0b9f,
1589   0x0ba3, 0x0ba4,
1590   0x0ba8, 0x0baa,
1591   0x0bae, 0x0bb9,
1592   0x0bbe, 0x0bc2,
1593   0x0bc6, 0x0bc8,
1594   0x0bca, 0x0bcd,
1595   0x0bd7, 0x0bd7,
1596   0x0be6, 0x0bfa,
1597   0x0c01, 0x0c03,
1598   0x0c05, 0x0c0c,
1599   0x0c0e, 0x0c10,
1600   0x0c12, 0x0c28,
1601   0x0c2a, 0x0c33,
1602   0x0c35, 0x0c39,
1603   0x0c3e, 0x0c44,
1604   0x0c46, 0x0c48,
1605   0x0c4a, 0x0c4d,
1606   0x0c55, 0x0c56,
1607   0x0c60, 0x0c61,
1608   0x0c66, 0x0c6f,
1609   0x0c82, 0x0c83,
1610   0x0c85, 0x0c8c,
1611   0x0c8e, 0x0c90,
1612   0x0c92, 0x0ca8,
1613   0x0caa, 0x0cb3,
1614   0x0cb5, 0x0cb9,
1615   0x0cbc, 0x0cc4,
1616   0x0cc6, 0x0cc8,
1617   0x0cca, 0x0ccd,
1618   0x0cd5, 0x0cd6,
1619   0x0cde, 0x0cde,
1620   0x0ce0, 0x0ce1,
1621   0x0ce6, 0x0cef,
1622   0x0d02, 0x0d03,
1623   0x0d05, 0x0d0c,
1624   0x0d0e, 0x0d10,
1625   0x0d12, 0x0d28,
1626   0x0d2a, 0x0d39,
1627   0x0d3e, 0x0d43,
1628   0x0d46, 0x0d48,
1629   0x0d4a, 0x0d4d,
1630   0x0d57, 0x0d57,
1631   0x0d60, 0x0d61,
1632   0x0d66, 0x0d6f,
1633   0x0d82, 0x0d83,
1634   0x0d85, 0x0d96,
1635   0x0d9a, 0x0db1,
1636   0x0db3, 0x0dbb,
1637   0x0dbd, 0x0dbd,
1638   0x0dc0, 0x0dc6,
1639   0x0dca, 0x0dca,
1640   0x0dcf, 0x0dd4,
1641   0x0dd6, 0x0dd6,
1642   0x0dd8, 0x0ddf,
1643   0x0df2, 0x0df4,
1644   0x0e01, 0x0e3a,
1645   0x0e3f, 0x0e5b,
1646   0x0e81, 0x0e82,
1647   0x0e84, 0x0e84,
1648   0x0e87, 0x0e88,
1649   0x0e8a, 0x0e8a,
1650   0x0e8d, 0x0e8d,
1651   0x0e94, 0x0e97,
1652   0x0e99, 0x0e9f,
1653   0x0ea1, 0x0ea3,
1654   0x0ea5, 0x0ea5,
1655   0x0ea7, 0x0ea7,
1656   0x0eaa, 0x0eab,
1657   0x0ead, 0x0eb9,
1658   0x0ebb, 0x0ebd,
1659   0x0ec0, 0x0ec4,
1660   0x0ec6, 0x0ec6,
1661   0x0ec8, 0x0ecd,
1662   0x0ed0, 0x0ed9,
1663   0x0edc, 0x0edd,
1664   0x0f00, 0x0f47,
1665   0x0f49, 0x0f6a,
1666   0x0f71, 0x0f8b,
1667   0x0f90, 0x0f97,
1668   0x0f99, 0x0fbc,
1669   0x0fbe, 0x0fcc,
1670   0x0fcf, 0x0fd1,
1671   0x1000, 0x1021,
1672   0x1023, 0x1027,
1673   0x1029, 0x102a,
1674   0x102c, 0x1032,
1675   0x1036, 0x1039,
1676   0x1040, 0x1059,
1677   0x10a0, 0x10c5,
1678   0x10d0, 0x10fc,
1679   0x1100, 0x1159,
1680   0x115f, 0x11a2,
1681   0x11a8, 0x11f9,
1682   0x1200, 0x1248,
1683   0x124a, 0x124d,
1684   0x1250, 0x1256,
1685   0x1258, 0x1258,
1686   0x125a, 0x125d,
1687   0x1260, 0x1288,
1688   0x128a, 0x128d,
1689   0x1290, 0x12b0,
1690   0x12b2, 0x12b5,
1691   0x12b8, 0x12be,
1692   0x12c0, 0x12c0,
1693   0x12c2, 0x12c5,
1694   0x12c8, 0x12d6,
1695   0x12d8, 0x1310,
1696   0x1312, 0x1315,
1697   0x1318, 0x135a,
1698   0x135f, 0x137c,
1699   0x1380, 0x1399,
1700   0x13a0, 0x13f4,
1701   0x1401, 0x1676,
1702   0x1680, 0x169c,
1703   0x16a0, 0x16f0,
1704   0x1700, 0x170c,
1705   0x170e, 0x1714,
1706   0x1720, 0x1736,
1707   0x1740, 0x1753,
1708   0x1760, 0x176c,
1709   0x176e, 0x1770,
1710   0x1772, 0x1773,
1711   0x1780, 0x17dd,
1712   0x17e0, 0x17e9,
1713   0x17f0, 0x17f9,
1714   0x1800, 0x180e,
1715   0x1810, 0x1819,
1716   0x1820, 0x1877,
1717   0x1880, 0x18a9,
1718   0x1900, 0x191c,
1719   0x1920, 0x192b,
1720   0x1930, 0x193b,
1721   0x1940, 0x1940,
1722   0x1944, 0x196d,
1723   0x1970, 0x1974,
1724   0x1980, 0x19a9,
1725   0x19b0, 0x19c9,
1726   0x19d0, 0x19d9,
1727   0x19de, 0x1a1b,
1728   0x1a1e, 0x1a1f,
1729   0x1d00, 0x1dc3,
1730   0x1e00, 0x1e9b,
1731   0x1ea0, 0x1ef9,
1732   0x1f00, 0x1f15,
1733   0x1f18, 0x1f1d,
1734   0x1f20, 0x1f45,
1735   0x1f48, 0x1f4d,
1736   0x1f50, 0x1f57,
1737   0x1f59, 0x1f59,
1738   0x1f5b, 0x1f5b,
1739   0x1f5d, 0x1f5d,
1740   0x1f5f, 0x1f7d,
1741   0x1f80, 0x1fb4,
1742   0x1fb6, 0x1fc4,
1743   0x1fc6, 0x1fd3,
1744   0x1fd6, 0x1fdb,
1745   0x1fdd, 0x1fef,
1746   0x1ff2, 0x1ff4,
1747   0x1ff6, 0x1ffe,
1748   0x2000, 0x2063,
1749   0x206a, 0x2071,
1750   0x2074, 0x208e,
1751   0x2090, 0x2094,
1752   0x20a0, 0x20b5,
1753   0x20d0, 0x20eb,
1754   0x2100, 0x214c,
1755   0x2153, 0x2183,
1756   0x2190, 0x23db,
1757   0x2400, 0x2426,
1758   0x2440, 0x244a,
1759   0x2460, 0x269c,
1760   0x26a0, 0x26b1,
1761   0x2701, 0x2704,
1762   0x2706, 0x2709,
1763   0x270c, 0x2727,
1764   0x2729, 0x274b,
1765   0x274d, 0x274d,
1766   0x274f, 0x2752,
1767   0x2756, 0x2756,
1768   0x2758, 0x275e,
1769   0x2761, 0x2794,
1770   0x2798, 0x27af,
1771   0x27b1, 0x27be,
1772   0x27c0, 0x27c6,
1773   0x27d0, 0x27eb,
1774   0x27f0, 0x2b13,
1775   0x2c00, 0x2c2e,
1776   0x2c30, 0x2c5e,
1777   0x2c80, 0x2cea,
1778   0x2cf9, 0x2d25,
1779   0x2d30, 0x2d65,
1780   0x2d6f, 0x2d6f,
1781   0x2d80, 0x2d96,
1782   0x2da0, 0x2da6,
1783   0x2da8, 0x2dae,
1784   0x2db0, 0x2db6,
1785   0x2db8, 0x2dbe,
1786   0x2dc0, 0x2dc6,
1787   0x2dc8, 0x2dce,
1788   0x2dd0, 0x2dd6,
1789   0x2dd8, 0x2dde,
1790   0x2e00, 0x2e17,
1791   0x2e1c, 0x2e1d,
1792   0x2e80, 0x2e99,
1793   0x2e9b, 0x2ef3,
1794   0x2f00, 0x2fd5,
1795   0x2ff0, 0x2ffb,
1796   0x3000, 0x303f,
1797   0x3041, 0x3096,
1798   0x3099, 0x30ff,
1799   0x3105, 0x312c,
1800   0x3131, 0x318e,
1801   0x3190, 0x31b7,
1802   0x31c0, 0x31cf,
1803   0x31f0, 0x321e,
1804   0x3220, 0x3243,
1805   0x3250, 0x32fe,
1806   0x3300, 0x4db5,
1807   0x4dc0, 0x9fbb,
1808   0xa000, 0xa48c,
1809   0xa490, 0xa4c6,
1810   0xa700, 0xa716,
1811   0xa800, 0xa82b,
1812   0xac00, 0xd7a3,
1813   0xe000, 0xfa2d,
1814   0xfa30, 0xfa6a,
1815   0xfa70, 0xfad9,
1816   0xfb00, 0xfb06,
1817   0xfb13, 0xfb17,
1818   0xfb1d, 0xfb36,
1819   0xfb38, 0xfb3c,
1820   0xfb3e, 0xfb3e,
1821   0xfb40, 0xfb41,
1822   0xfb43, 0xfb44,
1823   0xfb46, 0xfbb1,
1824   0xfbd3, 0xfd3f,
1825   0xfd50, 0xfd8f,
1826   0xfd92, 0xfdc7,
1827   0xfdf0, 0xfdfd,
1828   0xfe00, 0xfe19,
1829   0xfe20, 0xfe23,
1830   0xfe30, 0xfe52,
1831   0xfe54, 0xfe66,
1832   0xfe68, 0xfe6b,
1833   0xfe70, 0xfe74,
1834   0xfe76, 0xfefc,
1835   0xfeff, 0xfeff,
1836   0xff01, 0xffbe,
1837   0xffc2, 0xffc7,
1838   0xffca, 0xffcf,
1839   0xffd2, 0xffd7,
1840   0xffda, 0xffdc,
1841   0xffe0, 0xffe6,
1842   0xffe8, 0xffee,
1843   0xfff9, 0xfffd,
1844   0x10000, 0x1000b,
1845   0x1000d, 0x10026,
1846   0x10028, 0x1003a,
1847   0x1003c, 0x1003d,
1848   0x1003f, 0x1004d,
1849   0x10050, 0x1005d,
1850   0x10080, 0x100fa,
1851   0x10100, 0x10102,
1852   0x10107, 0x10133,
1853   0x10137, 0x1018a,
1854   0x10300, 0x1031e,
1855   0x10320, 0x10323,
1856   0x10330, 0x1034a,
1857   0x10380, 0x1039d,
1858   0x1039f, 0x103c3,
1859   0x103c8, 0x103d5,
1860   0x10400, 0x1049d,
1861   0x104a0, 0x104a9,
1862   0x10800, 0x10805,
1863   0x10808, 0x10808,
1864   0x1080a, 0x10835,
1865   0x10837, 0x10838,
1866   0x1083c, 0x1083c,
1867   0x1083f, 0x1083f,
1868   0x10a00, 0x10a03,
1869   0x10a05, 0x10a06,
1870   0x10a0c, 0x10a13,
1871   0x10a15, 0x10a17,
1872   0x10a19, 0x10a33,
1873   0x10a38, 0x10a3a,
1874   0x10a3f, 0x10a47,
1875   0x10a50, 0x10a58,
1876   0x1d000, 0x1d0f5,
1877   0x1d100, 0x1d126,
1878   0x1d12a, 0x1d1dd,
1879   0x1d200, 0x1d245,
1880   0x1d300, 0x1d356,
1881   0x1d400, 0x1d454,
1882   0x1d456, 0x1d49c,
1883   0x1d49e, 0x1d49f,
1884   0x1d4a2, 0x1d4a2,
1885   0x1d4a5, 0x1d4a6,
1886   0x1d4a9, 0x1d4ac,
1887   0x1d4ae, 0x1d4b9,
1888   0x1d4bb, 0x1d4bb,
1889   0x1d4bd, 0x1d4c3,
1890   0x1d4c5, 0x1d505,
1891   0x1d507, 0x1d50a,
1892   0x1d50d, 0x1d514,
1893   0x1d516, 0x1d51c,
1894   0x1d51e, 0x1d539,
1895   0x1d53b, 0x1d53e,
1896   0x1d540, 0x1d544,
1897   0x1d546, 0x1d546,
1898   0x1d54a, 0x1d550,
1899   0x1d552, 0x1d6a5,
1900   0x1d6a8, 0x1d7c9,
1901   0x1d7ce, 0x1d7ff,
1902   0x20000, 0x2a6d6,
1903   0x2f800, 0x2fa1d,
1904   0xe0001, 0xe0001,
1905   0xe0020, 0xe007f,
1906   0xe0100, 0xe01ef,
1907   0xf0000, 0xffffd,
1908   0x100000, 0x10fffd
1909 }; /* CR_Print */
1910 
1911 /* 'Punct': [[:Punct:]] */
1912 static const OnigCodePoint CR_Punct[] = {
1913   96,
1914   0x0021, 0x0023,
1915   0x0025, 0x002a,
1916   0x002c, 0x002f,
1917   0x003a, 0x003b,
1918   0x003f, 0x0040,
1919   0x005b, 0x005d,
1920   0x005f, 0x005f,
1921   0x007b, 0x007b,
1922   0x007d, 0x007d,
1923   0x00a1, 0x00a1,
1924   0x00ab, 0x00ab,
1925   0x00b7, 0x00b7,
1926   0x00bb, 0x00bb,
1927   0x00bf, 0x00bf,
1928   0x037e, 0x037e,
1929   0x0387, 0x0387,
1930   0x055a, 0x055f,
1931   0x0589, 0x058a,
1932   0x05be, 0x05be,
1933   0x05c0, 0x05c0,
1934   0x05c3, 0x05c3,
1935   0x05c6, 0x05c6,
1936   0x05f3, 0x05f4,
1937   0x060c, 0x060d,
1938   0x061b, 0x061b,
1939   0x061e, 0x061f,
1940   0x066a, 0x066d,
1941   0x06d4, 0x06d4,
1942   0x0700, 0x070d,
1943   0x0964, 0x0965,
1944   0x0970, 0x0970,
1945   0x0df4, 0x0df4,
1946   0x0e4f, 0x0e4f,
1947   0x0e5a, 0x0e5b,
1948   0x0f04, 0x0f12,
1949   0x0f3a, 0x0f3d,
1950   0x0f85, 0x0f85,
1951   0x0fd0, 0x0fd1,
1952   0x104a, 0x104f,
1953   0x10fb, 0x10fb,
1954   0x1361, 0x1368,
1955   0x166d, 0x166e,
1956   0x169b, 0x169c,
1957   0x16eb, 0x16ed,
1958   0x1735, 0x1736,
1959   0x17d4, 0x17d6,
1960   0x17d8, 0x17da,
1961   0x1800, 0x180a,
1962   0x1944, 0x1945,
1963   0x19de, 0x19df,
1964   0x1a1e, 0x1a1f,
1965   0x2010, 0x2027,
1966   0x2030, 0x2043,
1967   0x2045, 0x2051,
1968   0x2053, 0x205e,
1969   0x207d, 0x207e,
1970   0x208d, 0x208e,
1971   0x2329, 0x232a,
1972   0x23b4, 0x23b6,
1973   0x2768, 0x2775,
1974   0x27c5, 0x27c6,
1975   0x27e6, 0x27eb,
1976   0x2983, 0x2998,
1977   0x29d8, 0x29db,
1978   0x29fc, 0x29fd,
1979   0x2cf9, 0x2cfc,
1980   0x2cfe, 0x2cff,
1981   0x2e00, 0x2e17,
1982   0x2e1c, 0x2e1d,
1983   0x3001, 0x3003,
1984   0x3008, 0x3011,
1985   0x3014, 0x301f,
1986   0x3030, 0x3030,
1987   0x303d, 0x303d,
1988   0x30a0, 0x30a0,
1989   0x30fb, 0x30fb,
1990   0xfd3e, 0xfd3f,
1991   0xfe10, 0xfe19,
1992   0xfe30, 0xfe52,
1993   0xfe54, 0xfe61,
1994   0xfe63, 0xfe63,
1995   0xfe68, 0xfe68,
1996   0xfe6a, 0xfe6b,
1997   0xff01, 0xff03,
1998   0xff05, 0xff0a,
1999   0xff0c, 0xff0f,
2000   0xff1a, 0xff1b,
2001   0xff1f, 0xff20,
2002   0xff3b, 0xff3d,
2003   0xff3f, 0xff3f,
2004   0xff5b, 0xff5b,
2005   0xff5d, 0xff5d,
2006   0xff5f, 0xff65,
2007   0x10100, 0x10101,
2008   0x1039f, 0x1039f,
2009   0x10a50, 0x10a58
2010 }; /* CR_Punct */
2011 
2012 /* 'Space': [[:Space:]] */
2013 static const OnigCodePoint CR_Space[] = {
2014   11,
2015   0x0009, 0x000d,
2016   0x0020, 0x0020,
2017   0x0085, 0x0085,
2018   0x00a0, 0x00a0,
2019   0x1680, 0x1680,
2020   0x180e, 0x180e,
2021   0x2000, 0x200a,
2022   0x2028, 0x2029,
2023   0x202f, 0x202f,
2024   0x205f, 0x205f,
2025   0x3000, 0x3000
2026 }; /* CR_Space */
2027 
2028 /* 'Upper': [[:Upper:]] */
2029 static const OnigCodePoint CR_Upper[] = {
2030   476,
2031   0x0041, 0x005a,
2032   0x00c0, 0x00d6,
2033   0x00d8, 0x00de,
2034   0x0100, 0x0100,
2035   0x0102, 0x0102,
2036   0x0104, 0x0104,
2037   0x0106, 0x0106,
2038   0x0108, 0x0108,
2039   0x010a, 0x010a,
2040   0x010c, 0x010c,
2041   0x010e, 0x010e,
2042   0x0110, 0x0110,
2043   0x0112, 0x0112,
2044   0x0114, 0x0114,
2045   0x0116, 0x0116,
2046   0x0118, 0x0118,
2047   0x011a, 0x011a,
2048   0x011c, 0x011c,
2049   0x011e, 0x011e,
2050   0x0120, 0x0120,
2051   0x0122, 0x0122,
2052   0x0124, 0x0124,
2053   0x0126, 0x0126,
2054   0x0128, 0x0128,
2055   0x012a, 0x012a,
2056   0x012c, 0x012c,
2057   0x012e, 0x012e,
2058   0x0130, 0x0130,
2059   0x0132, 0x0132,
2060   0x0134, 0x0134,
2061   0x0136, 0x0136,
2062   0x0139, 0x0139,
2063   0x013b, 0x013b,
2064   0x013d, 0x013d,
2065   0x013f, 0x013f,
2066   0x0141, 0x0141,
2067   0x0143, 0x0143,
2068   0x0145, 0x0145,
2069   0x0147, 0x0147,
2070   0x014a, 0x014a,
2071   0x014c, 0x014c,
2072   0x014e, 0x014e,
2073   0x0150, 0x0150,
2074   0x0152, 0x0152,
2075   0x0154, 0x0154,
2076   0x0156, 0x0156,
2077   0x0158, 0x0158,
2078   0x015a, 0x015a,
2079   0x015c, 0x015c,
2080   0x015e, 0x015e,
2081   0x0160, 0x0160,
2082   0x0162, 0x0162,
2083   0x0164, 0x0164,
2084   0x0166, 0x0166,
2085   0x0168, 0x0168,
2086   0x016a, 0x016a,
2087   0x016c, 0x016c,
2088   0x016e, 0x016e,
2089   0x0170, 0x0170,
2090   0x0172, 0x0172,
2091   0x0174, 0x0174,
2092   0x0176, 0x0176,
2093   0x0178, 0x0179,
2094   0x017b, 0x017b,
2095   0x017d, 0x017d,
2096   0x0181, 0x0182,
2097   0x0184, 0x0184,
2098   0x0186, 0x0187,
2099   0x0189, 0x018b,
2100   0x018e, 0x0191,
2101   0x0193, 0x0194,
2102   0x0196, 0x0198,
2103   0x019c, 0x019d,
2104   0x019f, 0x01a0,
2105   0x01a2, 0x01a2,
2106   0x01a4, 0x01a4,
2107   0x01a6, 0x01a7,
2108   0x01a9, 0x01a9,
2109   0x01ac, 0x01ac,
2110   0x01ae, 0x01af,
2111   0x01b1, 0x01b3,
2112   0x01b5, 0x01b5,
2113   0x01b7, 0x01b8,
2114   0x01bc, 0x01bc,
2115   0x01c4, 0x01c4,
2116   0x01c7, 0x01c7,
2117   0x01ca, 0x01ca,
2118   0x01cd, 0x01cd,
2119   0x01cf, 0x01cf,
2120   0x01d1, 0x01d1,
2121   0x01d3, 0x01d3,
2122   0x01d5, 0x01d5,
2123   0x01d7, 0x01d7,
2124   0x01d9, 0x01d9,
2125   0x01db, 0x01db,
2126   0x01de, 0x01de,
2127   0x01e0, 0x01e0,
2128   0x01e2, 0x01e2,
2129   0x01e4, 0x01e4,
2130   0x01e6, 0x01e6,
2131   0x01e8, 0x01e8,
2132   0x01ea, 0x01ea,
2133   0x01ec, 0x01ec,
2134   0x01ee, 0x01ee,
2135   0x01f1, 0x01f1,
2136   0x01f4, 0x01f4,
2137   0x01f6, 0x01f8,
2138   0x01fa, 0x01fa,
2139   0x01fc, 0x01fc,
2140   0x01fe, 0x01fe,
2141   0x0200, 0x0200,
2142   0x0202, 0x0202,
2143   0x0204, 0x0204,
2144   0x0206, 0x0206,
2145   0x0208, 0x0208,
2146   0x020a, 0x020a,
2147   0x020c, 0x020c,
2148   0x020e, 0x020e,
2149   0x0210, 0x0210,
2150   0x0212, 0x0212,
2151   0x0214, 0x0214,
2152   0x0216, 0x0216,
2153   0x0218, 0x0218,
2154   0x021a, 0x021a,
2155   0x021c, 0x021c,
2156   0x021e, 0x021e,
2157   0x0220, 0x0220,
2158   0x0222, 0x0222,
2159   0x0224, 0x0224,
2160   0x0226, 0x0226,
2161   0x0228, 0x0228,
2162   0x022a, 0x022a,
2163   0x022c, 0x022c,
2164   0x022e, 0x022e,
2165   0x0230, 0x0230,
2166   0x0232, 0x0232,
2167   0x023a, 0x023b,
2168   0x023d, 0x023e,
2169   0x0241, 0x0241,
2170   0x0386, 0x0386,
2171   0x0388, 0x038a,
2172   0x038c, 0x038c,
2173   0x038e, 0x038f,
2174   0x0391, 0x03a1,
2175   0x03a3, 0x03ab,
2176   0x03d2, 0x03d4,
2177   0x03d8, 0x03d8,
2178   0x03da, 0x03da,
2179   0x03dc, 0x03dc,
2180   0x03de, 0x03de,
2181   0x03e0, 0x03e0,
2182   0x03e2, 0x03e2,
2183   0x03e4, 0x03e4,
2184   0x03e6, 0x03e6,
2185   0x03e8, 0x03e8,
2186   0x03ea, 0x03ea,
2187   0x03ec, 0x03ec,
2188   0x03ee, 0x03ee,
2189   0x03f4, 0x03f4,
2190   0x03f7, 0x03f7,
2191   0x03f9, 0x03fa,
2192   0x03fd, 0x042f,
2193   0x0460, 0x0460,
2194   0x0462, 0x0462,
2195   0x0464, 0x0464,
2196   0x0466, 0x0466,
2197   0x0468, 0x0468,
2198   0x046a, 0x046a,
2199   0x046c, 0x046c,
2200   0x046e, 0x046e,
2201   0x0470, 0x0470,
2202   0x0472, 0x0472,
2203   0x0474, 0x0474,
2204   0x0476, 0x0476,
2205   0x0478, 0x0478,
2206   0x047a, 0x047a,
2207   0x047c, 0x047c,
2208   0x047e, 0x047e,
2209   0x0480, 0x0480,
2210   0x048a, 0x048a,
2211   0x048c, 0x048c,
2212   0x048e, 0x048e,
2213   0x0490, 0x0490,
2214   0x0492, 0x0492,
2215   0x0494, 0x0494,
2216   0x0496, 0x0496,
2217   0x0498, 0x0498,
2218   0x049a, 0x049a,
2219   0x049c, 0x049c,
2220   0x049e, 0x049e,
2221   0x04a0, 0x04a0,
2222   0x04a2, 0x04a2,
2223   0x04a4, 0x04a4,
2224   0x04a6, 0x04a6,
2225   0x04a8, 0x04a8,
2226   0x04aa, 0x04aa,
2227   0x04ac, 0x04ac,
2228   0x04ae, 0x04ae,
2229   0x04b0, 0x04b0,
2230   0x04b2, 0x04b2,
2231   0x04b4, 0x04b4,
2232   0x04b6, 0x04b6,
2233   0x04b8, 0x04b8,
2234   0x04ba, 0x04ba,
2235   0x04bc, 0x04bc,
2236   0x04be, 0x04be,
2237   0x04c0, 0x04c1,
2238   0x04c3, 0x04c3,
2239   0x04c5, 0x04c5,
2240   0x04c7, 0x04c7,
2241   0x04c9, 0x04c9,
2242   0x04cb, 0x04cb,
2243   0x04cd, 0x04cd,
2244   0x04d0, 0x04d0,
2245   0x04d2, 0x04d2,
2246   0x04d4, 0x04d4,
2247   0x04d6, 0x04d6,
2248   0x04d8, 0x04d8,
2249   0x04da, 0x04da,
2250   0x04dc, 0x04dc,
2251   0x04de, 0x04de,
2252   0x04e0, 0x04e0,
2253   0x04e2, 0x04e2,
2254   0x04e4, 0x04e4,
2255   0x04e6, 0x04e6,
2256   0x04e8, 0x04e8,
2257   0x04ea, 0x04ea,
2258   0x04ec, 0x04ec,
2259   0x04ee, 0x04ee,
2260   0x04f0, 0x04f0,
2261   0x04f2, 0x04f2,
2262   0x04f4, 0x04f4,
2263   0x04f6, 0x04f6,
2264   0x04f8, 0x04f8,
2265   0x0500, 0x0500,
2266   0x0502, 0x0502,
2267   0x0504, 0x0504,
2268   0x0506, 0x0506,
2269   0x0508, 0x0508,
2270   0x050a, 0x050a,
2271   0x050c, 0x050c,
2272   0x050e, 0x050e,
2273   0x0531, 0x0556,
2274   0x10a0, 0x10c5,
2275   0x1e00, 0x1e00,
2276   0x1e02, 0x1e02,
2277   0x1e04, 0x1e04,
2278   0x1e06, 0x1e06,
2279   0x1e08, 0x1e08,
2280   0x1e0a, 0x1e0a,
2281   0x1e0c, 0x1e0c,
2282   0x1e0e, 0x1e0e,
2283   0x1e10, 0x1e10,
2284   0x1e12, 0x1e12,
2285   0x1e14, 0x1e14,
2286   0x1e16, 0x1e16,
2287   0x1e18, 0x1e18,
2288   0x1e1a, 0x1e1a,
2289   0x1e1c, 0x1e1c,
2290   0x1e1e, 0x1e1e,
2291   0x1e20, 0x1e20,
2292   0x1e22, 0x1e22,
2293   0x1e24, 0x1e24,
2294   0x1e26, 0x1e26,
2295   0x1e28, 0x1e28,
2296   0x1e2a, 0x1e2a,
2297   0x1e2c, 0x1e2c,
2298   0x1e2e, 0x1e2e,
2299   0x1e30, 0x1e30,
2300   0x1e32, 0x1e32,
2301   0x1e34, 0x1e34,
2302   0x1e36, 0x1e36,
2303   0x1e38, 0x1e38,
2304   0x1e3a, 0x1e3a,
2305   0x1e3c, 0x1e3c,
2306   0x1e3e, 0x1e3e,
2307   0x1e40, 0x1e40,
2308   0x1e42, 0x1e42,
2309   0x1e44, 0x1e44,
2310   0x1e46, 0x1e46,
2311   0x1e48, 0x1e48,
2312   0x1e4a, 0x1e4a,
2313   0x1e4c, 0x1e4c,
2314   0x1e4e, 0x1e4e,
2315   0x1e50, 0x1e50,
2316   0x1e52, 0x1e52,
2317   0x1e54, 0x1e54,
2318   0x1e56, 0x1e56,
2319   0x1e58, 0x1e58,
2320   0x1e5a, 0x1e5a,
2321   0x1e5c, 0x1e5c,
2322   0x1e5e, 0x1e5e,
2323   0x1e60, 0x1e60,
2324   0x1e62, 0x1e62,
2325   0x1e64, 0x1e64,
2326   0x1e66, 0x1e66,
2327   0x1e68, 0x1e68,
2328   0x1e6a, 0x1e6a,
2329   0x1e6c, 0x1e6c,
2330   0x1e6e, 0x1e6e,
2331   0x1e70, 0x1e70,
2332   0x1e72, 0x1e72,
2333   0x1e74, 0x1e74,
2334   0x1e76, 0x1e76,
2335   0x1e78, 0x1e78,
2336   0x1e7a, 0x1e7a,
2337   0x1e7c, 0x1e7c,
2338   0x1e7e, 0x1e7e,
2339   0x1e80, 0x1e80,
2340   0x1e82, 0x1e82,
2341   0x1e84, 0x1e84,
2342   0x1e86, 0x1e86,
2343   0x1e88, 0x1e88,
2344   0x1e8a, 0x1e8a,
2345   0x1e8c, 0x1e8c,
2346   0x1e8e, 0x1e8e,
2347   0x1e90, 0x1e90,
2348   0x1e92, 0x1e92,
2349   0x1e94, 0x1e94,
2350   0x1ea0, 0x1ea0,
2351   0x1ea2, 0x1ea2,
2352   0x1ea4, 0x1ea4,
2353   0x1ea6, 0x1ea6,
2354   0x1ea8, 0x1ea8,
2355   0x1eaa, 0x1eaa,
2356   0x1eac, 0x1eac,
2357   0x1eae, 0x1eae,
2358   0x1eb0, 0x1eb0,
2359   0x1eb2, 0x1eb2,
2360   0x1eb4, 0x1eb4,
2361   0x1eb6, 0x1eb6,
2362   0x1eb8, 0x1eb8,
2363   0x1eba, 0x1eba,
2364   0x1ebc, 0x1ebc,
2365   0x1ebe, 0x1ebe,
2366   0x1ec0, 0x1ec0,
2367   0x1ec2, 0x1ec2,
2368   0x1ec4, 0x1ec4,
2369   0x1ec6, 0x1ec6,
2370   0x1ec8, 0x1ec8,
2371   0x1eca, 0x1eca,
2372   0x1ecc, 0x1ecc,
2373   0x1ece, 0x1ece,
2374   0x1ed0, 0x1ed0,
2375   0x1ed2, 0x1ed2,
2376   0x1ed4, 0x1ed4,
2377   0x1ed6, 0x1ed6,
2378   0x1ed8, 0x1ed8,
2379   0x1eda, 0x1eda,
2380   0x1edc, 0x1edc,
2381   0x1ede, 0x1ede,
2382   0x1ee0, 0x1ee0,
2383   0x1ee2, 0x1ee2,
2384   0x1ee4, 0x1ee4,
2385   0x1ee6, 0x1ee6,
2386   0x1ee8, 0x1ee8,
2387   0x1eea, 0x1eea,
2388   0x1eec, 0x1eec,
2389   0x1eee, 0x1eee,
2390   0x1ef0, 0x1ef0,
2391   0x1ef2, 0x1ef2,
2392   0x1ef4, 0x1ef4,
2393   0x1ef6, 0x1ef6,
2394   0x1ef8, 0x1ef8,
2395   0x1f08, 0x1f0f,
2396   0x1f18, 0x1f1d,
2397   0x1f28, 0x1f2f,
2398   0x1f38, 0x1f3f,
2399   0x1f48, 0x1f4d,
2400   0x1f59, 0x1f59,
2401   0x1f5b, 0x1f5b,
2402   0x1f5d, 0x1f5d,
2403   0x1f5f, 0x1f5f,
2404   0x1f68, 0x1f6f,
2405   0x1fb8, 0x1fbb,
2406   0x1fc8, 0x1fcb,
2407   0x1fd8, 0x1fdb,
2408   0x1fe8, 0x1fec,
2409   0x1ff8, 0x1ffb,
2410   0x2102, 0x2102,
2411   0x2107, 0x2107,
2412   0x210b, 0x210d,
2413   0x2110, 0x2112,
2414   0x2115, 0x2115,
2415   0x2119, 0x211d,
2416   0x2124, 0x2124,
2417   0x2126, 0x2126,
2418   0x2128, 0x2128,
2419   0x212a, 0x212d,
2420   0x2130, 0x2131,
2421   0x2133, 0x2133,
2422   0x213e, 0x213f,
2423   0x2145, 0x2145,
2424   0x2c00, 0x2c2e,
2425   0x2c80, 0x2c80,
2426   0x2c82, 0x2c82,
2427   0x2c84, 0x2c84,
2428   0x2c86, 0x2c86,
2429   0x2c88, 0x2c88,
2430   0x2c8a, 0x2c8a,
2431   0x2c8c, 0x2c8c,
2432   0x2c8e, 0x2c8e,
2433   0x2c90, 0x2c90,
2434   0x2c92, 0x2c92,
2435   0x2c94, 0x2c94,
2436   0x2c96, 0x2c96,
2437   0x2c98, 0x2c98,
2438   0x2c9a, 0x2c9a,
2439   0x2c9c, 0x2c9c,
2440   0x2c9e, 0x2c9e,
2441   0x2ca0, 0x2ca0,
2442   0x2ca2, 0x2ca2,
2443   0x2ca4, 0x2ca4,
2444   0x2ca6, 0x2ca6,
2445   0x2ca8, 0x2ca8,
2446   0x2caa, 0x2caa,
2447   0x2cac, 0x2cac,
2448   0x2cae, 0x2cae,
2449   0x2cb0, 0x2cb0,
2450   0x2cb2, 0x2cb2,
2451   0x2cb4, 0x2cb4,
2452   0x2cb6, 0x2cb6,
2453   0x2cb8, 0x2cb8,
2454   0x2cba, 0x2cba,
2455   0x2cbc, 0x2cbc,
2456   0x2cbe, 0x2cbe,
2457   0x2cc0, 0x2cc0,
2458   0x2cc2, 0x2cc2,
2459   0x2cc4, 0x2cc4,
2460   0x2cc6, 0x2cc6,
2461   0x2cc8, 0x2cc8,
2462   0x2cca, 0x2cca,
2463   0x2ccc, 0x2ccc,
2464   0x2cce, 0x2cce,
2465   0x2cd0, 0x2cd0,
2466   0x2cd2, 0x2cd2,
2467   0x2cd4, 0x2cd4,
2468   0x2cd6, 0x2cd6,
2469   0x2cd8, 0x2cd8,
2470   0x2cda, 0x2cda,
2471   0x2cdc, 0x2cdc,
2472   0x2cde, 0x2cde,
2473   0x2ce0, 0x2ce0,
2474   0x2ce2, 0x2ce2,
2475   0xff21, 0xff3a,
2476   0x10400, 0x10427,
2477   0x1d400, 0x1d419,
2478   0x1d434, 0x1d44d,
2479   0x1d468, 0x1d481,
2480   0x1d49c, 0x1d49c,
2481   0x1d49e, 0x1d49f,
2482   0x1d4a2, 0x1d4a2,
2483   0x1d4a5, 0x1d4a6,
2484   0x1d4a9, 0x1d4ac,
2485   0x1d4ae, 0x1d4b5,
2486   0x1d4d0, 0x1d4e9,
2487   0x1d504, 0x1d505,
2488   0x1d507, 0x1d50a,
2489   0x1d50d, 0x1d514,
2490   0x1d516, 0x1d51c,
2491   0x1d538, 0x1d539,
2492   0x1d53b, 0x1d53e,
2493   0x1d540, 0x1d544,
2494   0x1d546, 0x1d546,
2495   0x1d54a, 0x1d550,
2496   0x1d56c, 0x1d585,
2497   0x1d5a0, 0x1d5b9,
2498   0x1d5d4, 0x1d5ed,
2499   0x1d608, 0x1d621,
2500   0x1d63c, 0x1d655,
2501   0x1d670, 0x1d689,
2502   0x1d6a8, 0x1d6c0,
2503   0x1d6e2, 0x1d6fa,
2504   0x1d71c, 0x1d734,
2505   0x1d756, 0x1d76e,
2506   0x1d790, 0x1d7a8
2507 }; /* CR_Upper */
2508 
2509 /* 'XDigit': [[:XDigit:]] */
2510 static const OnigCodePoint CR_XDigit[] = {
2511   3,
2512   0x0030, 0x0039,
2513   0x0041, 0x0046,
2514   0x0061, 0x0066
2515 }; /* CR_XDigit */
2516 
2517 /* 'Word': [[:Word:]] */
2518 static const OnigCodePoint CR_Word[] = {
2519   464,
2520   0x0030, 0x0039,
2521   0x0041, 0x005a,
2522   0x005f, 0x005f,
2523   0x0061, 0x007a,
2524   0x00aa, 0x00aa,
2525   0x00b2, 0x00b3,
2526   0x00b5, 0x00b5,
2527   0x00b9, 0x00ba,
2528   0x00bc, 0x00be,
2529   0x00c0, 0x00d6,
2530   0x00d8, 0x00f6,
2531   0x00f8, 0x0241,
2532   0x0250, 0x02c1,
2533   0x02c6, 0x02d1,
2534   0x02e0, 0x02e4,
2535   0x02ee, 0x02ee,
2536   0x0300, 0x036f,
2537   0x037a, 0x037a,
2538   0x0386, 0x0386,
2539   0x0388, 0x038a,
2540   0x038c, 0x038c,
2541   0x038e, 0x03a1,
2542   0x03a3, 0x03ce,
2543   0x03d0, 0x03f5,
2544   0x03f7, 0x0481,
2545   0x0483, 0x0486,
2546   0x0488, 0x04ce,
2547   0x04d0, 0x04f9,
2548   0x0500, 0x050f,
2549   0x0531, 0x0556,
2550   0x0559, 0x0559,
2551   0x0561, 0x0587,
2552   0x0591, 0x05b9,
2553   0x05bb, 0x05bd,
2554   0x05bf, 0x05bf,
2555   0x05c1, 0x05c2,
2556   0x05c4, 0x05c5,
2557   0x05c7, 0x05c7,
2558   0x05d0, 0x05ea,
2559   0x05f0, 0x05f2,
2560   0x0610, 0x0615,
2561   0x0621, 0x063a,
2562   0x0640, 0x065e,
2563   0x0660, 0x0669,
2564   0x066e, 0x06d3,
2565   0x06d5, 0x06dc,
2566   0x06de, 0x06e8,
2567   0x06ea, 0x06fc,
2568   0x06ff, 0x06ff,
2569   0x0710, 0x074a,
2570   0x074d, 0x076d,
2571   0x0780, 0x07b1,
2572   0x0901, 0x0939,
2573   0x093c, 0x094d,
2574   0x0950, 0x0954,
2575   0x0958, 0x0963,
2576   0x0966, 0x096f,
2577   0x097d, 0x097d,
2578   0x0981, 0x0983,
2579   0x0985, 0x098c,
2580   0x098f, 0x0990,
2581   0x0993, 0x09a8,
2582   0x09aa, 0x09b0,
2583   0x09b2, 0x09b2,
2584   0x09b6, 0x09b9,
2585   0x09bc, 0x09c4,
2586   0x09c7, 0x09c8,
2587   0x09cb, 0x09ce,
2588   0x09d7, 0x09d7,
2589   0x09dc, 0x09dd,
2590   0x09df, 0x09e3,
2591   0x09e6, 0x09f1,
2592   0x09f4, 0x09f9,
2593   0x0a01, 0x0a03,
2594   0x0a05, 0x0a0a,
2595   0x0a0f, 0x0a10,
2596   0x0a13, 0x0a28,
2597   0x0a2a, 0x0a30,
2598   0x0a32, 0x0a33,
2599   0x0a35, 0x0a36,
2600   0x0a38, 0x0a39,
2601   0x0a3c, 0x0a3c,
2602   0x0a3e, 0x0a42,
2603   0x0a47, 0x0a48,
2604   0x0a4b, 0x0a4d,
2605   0x0a59, 0x0a5c,
2606   0x0a5e, 0x0a5e,
2607   0x0a66, 0x0a74,
2608   0x0a81, 0x0a83,
2609   0x0a85, 0x0a8d,
2610   0x0a8f, 0x0a91,
2611   0x0a93, 0x0aa8,
2612   0x0aaa, 0x0ab0,
2613   0x0ab2, 0x0ab3,
2614   0x0ab5, 0x0ab9,
2615   0x0abc, 0x0ac5,
2616   0x0ac7, 0x0ac9,
2617   0x0acb, 0x0acd,
2618   0x0ad0, 0x0ad0,
2619   0x0ae0, 0x0ae3,
2620   0x0ae6, 0x0aef,
2621   0x0b01, 0x0b03,
2622   0x0b05, 0x0b0c,
2623   0x0b0f, 0x0b10,
2624   0x0b13, 0x0b28,
2625   0x0b2a, 0x0b30,
2626   0x0b32, 0x0b33,
2627   0x0b35, 0x0b39,
2628   0x0b3c, 0x0b43,
2629   0x0b47, 0x0b48,
2630   0x0b4b, 0x0b4d,
2631   0x0b56, 0x0b57,
2632   0x0b5c, 0x0b5d,
2633   0x0b5f, 0x0b61,
2634   0x0b66, 0x0b6f,
2635   0x0b71, 0x0b71,
2636   0x0b82, 0x0b83,
2637   0x0b85, 0x0b8a,
2638   0x0b8e, 0x0b90,
2639   0x0b92, 0x0b95,
2640   0x0b99, 0x0b9a,
2641   0x0b9c, 0x0b9c,
2642   0x0b9e, 0x0b9f,
2643   0x0ba3, 0x0ba4,
2644   0x0ba8, 0x0baa,
2645   0x0bae, 0x0bb9,
2646   0x0bbe, 0x0bc2,
2647   0x0bc6, 0x0bc8,
2648   0x0bca, 0x0bcd,
2649   0x0bd7, 0x0bd7,
2650   0x0be6, 0x0bf2,
2651   0x0c01, 0x0c03,
2652   0x0c05, 0x0c0c,
2653   0x0c0e, 0x0c10,
2654   0x0c12, 0x0c28,
2655   0x0c2a, 0x0c33,
2656   0x0c35, 0x0c39,
2657   0x0c3e, 0x0c44,
2658   0x0c46, 0x0c48,
2659   0x0c4a, 0x0c4d,
2660   0x0c55, 0x0c56,
2661   0x0c60, 0x0c61,
2662   0x0c66, 0x0c6f,
2663   0x0c82, 0x0c83,
2664   0x0c85, 0x0c8c,
2665   0x0c8e, 0x0c90,
2666   0x0c92, 0x0ca8,
2667   0x0caa, 0x0cb3,
2668   0x0cb5, 0x0cb9,
2669   0x0cbc, 0x0cc4,
2670   0x0cc6, 0x0cc8,
2671   0x0cca, 0x0ccd,
2672   0x0cd5, 0x0cd6,
2673   0x0cde, 0x0cde,
2674   0x0ce0, 0x0ce1,
2675   0x0ce6, 0x0cef,
2676   0x0d02, 0x0d03,
2677   0x0d05, 0x0d0c,
2678   0x0d0e, 0x0d10,
2679   0x0d12, 0x0d28,
2680   0x0d2a, 0x0d39,
2681   0x0d3e, 0x0d43,
2682   0x0d46, 0x0d48,
2683   0x0d4a, 0x0d4d,
2684   0x0d57, 0x0d57,
2685   0x0d60, 0x0d61,
2686   0x0d66, 0x0d6f,
2687   0x0d82, 0x0d83,
2688   0x0d85, 0x0d96,
2689   0x0d9a, 0x0db1,
2690   0x0db3, 0x0dbb,
2691   0x0dbd, 0x0dbd,
2692   0x0dc0, 0x0dc6,
2693   0x0dca, 0x0dca,
2694   0x0dcf, 0x0dd4,
2695   0x0dd6, 0x0dd6,
2696   0x0dd8, 0x0ddf,
2697   0x0df2, 0x0df3,
2698   0x0e01, 0x0e3a,
2699   0x0e40, 0x0e4e,
2700   0x0e50, 0x0e59,
2701   0x0e81, 0x0e82,
2702   0x0e84, 0x0e84,
2703   0x0e87, 0x0e88,
2704   0x0e8a, 0x0e8a,
2705   0x0e8d, 0x0e8d,
2706   0x0e94, 0x0e97,
2707   0x0e99, 0x0e9f,
2708   0x0ea1, 0x0ea3,
2709   0x0ea5, 0x0ea5,
2710   0x0ea7, 0x0ea7,
2711   0x0eaa, 0x0eab,
2712   0x0ead, 0x0eb9,
2713   0x0ebb, 0x0ebd,
2714   0x0ec0, 0x0ec4,
2715   0x0ec6, 0x0ec6,
2716   0x0ec8, 0x0ecd,
2717   0x0ed0, 0x0ed9,
2718   0x0edc, 0x0edd,
2719   0x0f00, 0x0f00,
2720   0x0f18, 0x0f19,
2721   0x0f20, 0x0f33,
2722   0x0f35, 0x0f35,
2723   0x0f37, 0x0f37,
2724   0x0f39, 0x0f39,
2725   0x0f3e, 0x0f47,
2726   0x0f49, 0x0f6a,
2727   0x0f71, 0x0f84,
2728   0x0f86, 0x0f8b,
2729   0x0f90, 0x0f97,
2730   0x0f99, 0x0fbc,
2731   0x0fc6, 0x0fc6,
2732   0x1000, 0x1021,
2733   0x1023, 0x1027,
2734   0x1029, 0x102a,
2735   0x102c, 0x1032,
2736   0x1036, 0x1039,
2737   0x1040, 0x1049,
2738   0x1050, 0x1059,
2739   0x10a0, 0x10c5,
2740   0x10d0, 0x10fa,
2741   0x10fc, 0x10fc,
2742   0x1100, 0x1159,
2743   0x115f, 0x11a2,
2744   0x11a8, 0x11f9,
2745   0x1200, 0x1248,
2746   0x124a, 0x124d,
2747   0x1250, 0x1256,
2748   0x1258, 0x1258,
2749   0x125a, 0x125d,
2750   0x1260, 0x1288,
2751   0x128a, 0x128d,
2752   0x1290, 0x12b0,
2753   0x12b2, 0x12b5,
2754   0x12b8, 0x12be,
2755   0x12c0, 0x12c0,
2756   0x12c2, 0x12c5,
2757   0x12c8, 0x12d6,
2758   0x12d8, 0x1310,
2759   0x1312, 0x1315,
2760   0x1318, 0x135a,
2761   0x135f, 0x135f,
2762   0x1369, 0x137c,
2763   0x1380, 0x138f,
2764   0x13a0, 0x13f4,
2765   0x1401, 0x166c,
2766   0x166f, 0x1676,
2767   0x1681, 0x169a,
2768   0x16a0, 0x16ea,
2769   0x16ee, 0x16f0,
2770   0x1700, 0x170c,
2771   0x170e, 0x1714,
2772   0x1720, 0x1734,
2773   0x1740, 0x1753,
2774   0x1760, 0x176c,
2775   0x176e, 0x1770,
2776   0x1772, 0x1773,
2777   0x1780, 0x17b3,
2778   0x17b6, 0x17d3,
2779   0x17d7, 0x17d7,
2780   0x17dc, 0x17dd,
2781   0x17e0, 0x17e9,
2782   0x17f0, 0x17f9,
2783   0x180b, 0x180d,
2784   0x1810, 0x1819,
2785   0x1820, 0x1877,
2786   0x1880, 0x18a9,
2787   0x1900, 0x191c,
2788   0x1920, 0x192b,
2789   0x1930, 0x193b,
2790   0x1946, 0x196d,
2791   0x1970, 0x1974,
2792   0x1980, 0x19a9,
2793   0x19b0, 0x19c9,
2794   0x19d0, 0x19d9,
2795   0x1a00, 0x1a1b,
2796   0x1d00, 0x1dc3,
2797   0x1e00, 0x1e9b,
2798   0x1ea0, 0x1ef9,
2799   0x1f00, 0x1f15,
2800   0x1f18, 0x1f1d,
2801   0x1f20, 0x1f45,
2802   0x1f48, 0x1f4d,
2803   0x1f50, 0x1f57,
2804   0x1f59, 0x1f59,
2805   0x1f5b, 0x1f5b,
2806   0x1f5d, 0x1f5d,
2807   0x1f5f, 0x1f7d,
2808   0x1f80, 0x1fb4,
2809   0x1fb6, 0x1fbc,
2810   0x1fbe, 0x1fbe,
2811   0x1fc2, 0x1fc4,
2812   0x1fc6, 0x1fcc,
2813   0x1fd0, 0x1fd3,
2814   0x1fd6, 0x1fdb,
2815   0x1fe0, 0x1fec,
2816   0x1ff2, 0x1ff4,
2817   0x1ff6, 0x1ffc,
2818   0x203f, 0x2040,
2819   0x2054, 0x2054,
2820   0x2070, 0x2071,
2821   0x2074, 0x2079,
2822   0x207f, 0x2089,
2823   0x2090, 0x2094,
2824   0x20d0, 0x20eb,
2825   0x2102, 0x2102,
2826   0x2107, 0x2107,
2827   0x210a, 0x2113,
2828   0x2115, 0x2115,
2829   0x2119, 0x211d,
2830   0x2124, 0x2124,
2831   0x2126, 0x2126,
2832   0x2128, 0x2128,
2833   0x212a, 0x212d,
2834   0x212f, 0x2131,
2835   0x2133, 0x2139,
2836   0x213c, 0x213f,
2837   0x2145, 0x2149,
2838   0x2153, 0x2183,
2839   0x2460, 0x249b,
2840   0x24ea, 0x24ff,
2841   0x2776, 0x2793,
2842   0x2c00, 0x2c2e,
2843   0x2c30, 0x2c5e,
2844   0x2c80, 0x2ce4,
2845   0x2cfd, 0x2cfd,
2846   0x2d00, 0x2d25,
2847   0x2d30, 0x2d65,
2848   0x2d6f, 0x2d6f,
2849   0x2d80, 0x2d96,
2850   0x2da0, 0x2da6,
2851   0x2da8, 0x2dae,
2852   0x2db0, 0x2db6,
2853   0x2db8, 0x2dbe,
2854   0x2dc0, 0x2dc6,
2855   0x2dc8, 0x2dce,
2856   0x2dd0, 0x2dd6,
2857   0x2dd8, 0x2dde,
2858   0x3005, 0x3007,
2859   0x3021, 0x302f,
2860   0x3031, 0x3035,
2861   0x3038, 0x303c,
2862   0x3041, 0x3096,
2863   0x3099, 0x309a,
2864   0x309d, 0x309f,
2865   0x30a1, 0x30fa,
2866   0x30fc, 0x30ff,
2867   0x3105, 0x312c,
2868   0x3131, 0x318e,
2869   0x3192, 0x3195,
2870   0x31a0, 0x31b7,
2871   0x31f0, 0x31ff,
2872   0x3220, 0x3229,
2873   0x3251, 0x325f,
2874   0x3280, 0x3289,
2875   0x32b1, 0x32bf,
2876   0x3400, 0x4db5,
2877   0x4e00, 0x9fbb,
2878   0xa000, 0xa48c,
2879   0xa800, 0xa827,
2880   0xac00, 0xd7a3,
2881   0xf900, 0xfa2d,
2882   0xfa30, 0xfa6a,
2883   0xfa70, 0xfad9,
2884   0xfb00, 0xfb06,
2885   0xfb13, 0xfb17,
2886   0xfb1d, 0xfb28,
2887   0xfb2a, 0xfb36,
2888   0xfb38, 0xfb3c,
2889   0xfb3e, 0xfb3e,
2890   0xfb40, 0xfb41,
2891   0xfb43, 0xfb44,
2892   0xfb46, 0xfbb1,
2893   0xfbd3, 0xfd3d,
2894   0xfd50, 0xfd8f,
2895   0xfd92, 0xfdc7,
2896   0xfdf0, 0xfdfb,
2897   0xfe00, 0xfe0f,
2898   0xfe20, 0xfe23,
2899   0xfe33, 0xfe34,
2900   0xfe4d, 0xfe4f,
2901   0xfe70, 0xfe74,
2902   0xfe76, 0xfefc,
2903   0xff10, 0xff19,
2904   0xff21, 0xff3a,
2905   0xff3f, 0xff3f,
2906   0xff41, 0xff5a,
2907   0xff66, 0xffbe,
2908   0xffc2, 0xffc7,
2909   0xffca, 0xffcf,
2910   0xffd2, 0xffd7,
2911   0xffda, 0xffdc,
2912   0x10000, 0x1000b,
2913   0x1000d, 0x10026,
2914   0x10028, 0x1003a,
2915   0x1003c, 0x1003d,
2916   0x1003f, 0x1004d,
2917   0x10050, 0x1005d,
2918   0x10080, 0x100fa,
2919   0x10107, 0x10133,
2920   0x10140, 0x10178,
2921   0x1018a, 0x1018a,
2922   0x10300, 0x1031e,
2923   0x10320, 0x10323,
2924   0x10330, 0x1034a,
2925   0x10380, 0x1039d,
2926   0x103a0, 0x103c3,
2927   0x103c8, 0x103cf,
2928   0x103d1, 0x103d5,
2929   0x10400, 0x1049d,
2930   0x104a0, 0x104a9,
2931   0x10800, 0x10805,
2932   0x10808, 0x10808,
2933   0x1080a, 0x10835,
2934   0x10837, 0x10838,
2935   0x1083c, 0x1083c,
2936   0x1083f, 0x1083f,
2937   0x10a00, 0x10a03,
2938   0x10a05, 0x10a06,
2939   0x10a0c, 0x10a13,
2940   0x10a15, 0x10a17,
2941   0x10a19, 0x10a33,
2942   0x10a38, 0x10a3a,
2943   0x10a3f, 0x10a47,
2944   0x1d165, 0x1d169,
2945   0x1d16d, 0x1d172,
2946   0x1d17b, 0x1d182,
2947   0x1d185, 0x1d18b,
2948   0x1d1aa, 0x1d1ad,
2949   0x1d242, 0x1d244,
2950   0x1d400, 0x1d454,
2951   0x1d456, 0x1d49c,
2952   0x1d49e, 0x1d49f,
2953   0x1d4a2, 0x1d4a2,
2954   0x1d4a5, 0x1d4a6,
2955   0x1d4a9, 0x1d4ac,
2956   0x1d4ae, 0x1d4b9,
2957   0x1d4bb, 0x1d4bb,
2958   0x1d4bd, 0x1d4c3,
2959   0x1d4c5, 0x1d505,
2960   0x1d507, 0x1d50a,
2961   0x1d50d, 0x1d514,
2962   0x1d516, 0x1d51c,
2963   0x1d51e, 0x1d539,
2964   0x1d53b, 0x1d53e,
2965   0x1d540, 0x1d544,
2966   0x1d546, 0x1d546,
2967   0x1d54a, 0x1d550,
2968   0x1d552, 0x1d6a5,
2969   0x1d6a8, 0x1d6c0,
2970   0x1d6c2, 0x1d6da,
2971   0x1d6dc, 0x1d6fa,
2972   0x1d6fc, 0x1d714,
2973   0x1d716, 0x1d734,
2974   0x1d736, 0x1d74e,
2975   0x1d750, 0x1d76e,
2976   0x1d770, 0x1d788,
2977   0x1d78a, 0x1d7a8,
2978   0x1d7aa, 0x1d7c2,
2979   0x1d7c4, 0x1d7c9,
2980   0x1d7ce, 0x1d7ff,
2981   0x20000, 0x2a6d6,
2982   0x2f800, 0x2fa1d,
2983   0xe0100, 0xe01ef
2984 }; /* CR_Word */
2985 
2986 /* 'Alnum': [[:Alnum:]] */
2987 static const OnigCodePoint CR_Alnum[] = {
2988   436,
2989   0x0030, 0x0039,
2990   0x0041, 0x005a,
2991   0x0061, 0x007a,
2992   0x00aa, 0x00aa,
2993   0x00b5, 0x00b5,
2994   0x00ba, 0x00ba,
2995   0x00c0, 0x00d6,
2996   0x00d8, 0x00f6,
2997   0x00f8, 0x0241,
2998   0x0250, 0x02c1,
2999   0x02c6, 0x02d1,
3000   0x02e0, 0x02e4,
3001   0x02ee, 0x02ee,
3002   0x0300, 0x036f,
3003   0x037a, 0x037a,
3004   0x0386, 0x0386,
3005   0x0388, 0x038a,
3006   0x038c, 0x038c,
3007   0x038e, 0x03a1,
3008   0x03a3, 0x03ce,
3009   0x03d0, 0x03f5,
3010   0x03f7, 0x0481,
3011   0x0483, 0x0486,
3012   0x0488, 0x04ce,
3013   0x04d0, 0x04f9,
3014   0x0500, 0x050f,
3015   0x0531, 0x0556,
3016   0x0559, 0x0559,
3017   0x0561, 0x0587,
3018   0x0591, 0x05b9,
3019   0x05bb, 0x05bd,
3020   0x05bf, 0x05bf,
3021   0x05c1, 0x05c2,
3022   0x05c4, 0x05c5,
3023   0x05c7, 0x05c7,
3024   0x05d0, 0x05ea,
3025   0x05f0, 0x05f2,
3026   0x0610, 0x0615,
3027   0x0621, 0x063a,
3028   0x0640, 0x065e,
3029   0x0660, 0x0669,
3030   0x066e, 0x06d3,
3031   0x06d5, 0x06dc,
3032   0x06de, 0x06e8,
3033   0x06ea, 0x06fc,
3034   0x06ff, 0x06ff,
3035   0x0710, 0x074a,
3036   0x074d, 0x076d,
3037   0x0780, 0x07b1,
3038   0x0901, 0x0939,
3039   0x093c, 0x094d,
3040   0x0950, 0x0954,
3041   0x0958, 0x0963,
3042   0x0966, 0x096f,
3043   0x097d, 0x097d,
3044   0x0981, 0x0983,
3045   0x0985, 0x098c,
3046   0x098f, 0x0990,
3047   0x0993, 0x09a8,
3048   0x09aa, 0x09b0,
3049   0x09b2, 0x09b2,
3050   0x09b6, 0x09b9,
3051   0x09bc, 0x09c4,
3052   0x09c7, 0x09c8,
3053   0x09cb, 0x09ce,
3054   0x09d7, 0x09d7,
3055   0x09dc, 0x09dd,
3056   0x09df, 0x09e3,
3057   0x09e6, 0x09f1,
3058   0x0a01, 0x0a03,
3059   0x0a05, 0x0a0a,
3060   0x0a0f, 0x0a10,
3061   0x0a13, 0x0a28,
3062   0x0a2a, 0x0a30,
3063   0x0a32, 0x0a33,
3064   0x0a35, 0x0a36,
3065   0x0a38, 0x0a39,
3066   0x0a3c, 0x0a3c,
3067   0x0a3e, 0x0a42,
3068   0x0a47, 0x0a48,
3069   0x0a4b, 0x0a4d,
3070   0x0a59, 0x0a5c,
3071   0x0a5e, 0x0a5e,
3072   0x0a66, 0x0a74,
3073   0x0a81, 0x0a83,
3074   0x0a85, 0x0a8d,
3075   0x0a8f, 0x0a91,
3076   0x0a93, 0x0aa8,
3077   0x0aaa, 0x0ab0,
3078   0x0ab2, 0x0ab3,
3079   0x0ab5, 0x0ab9,
3080   0x0abc, 0x0ac5,
3081   0x0ac7, 0x0ac9,
3082   0x0acb, 0x0acd,
3083   0x0ad0, 0x0ad0,
3084   0x0ae0, 0x0ae3,
3085   0x0ae6, 0x0aef,
3086   0x0b01, 0x0b03,
3087   0x0b05, 0x0b0c,
3088   0x0b0f, 0x0b10,
3089   0x0b13, 0x0b28,
3090   0x0b2a, 0x0b30,
3091   0x0b32, 0x0b33,
3092   0x0b35, 0x0b39,
3093   0x0b3c, 0x0b43,
3094   0x0b47, 0x0b48,
3095   0x0b4b, 0x0b4d,
3096   0x0b56, 0x0b57,
3097   0x0b5c, 0x0b5d,
3098   0x0b5f, 0x0b61,
3099   0x0b66, 0x0b6f,
3100   0x0b71, 0x0b71,
3101   0x0b82, 0x0b83,
3102   0x0b85, 0x0b8a,
3103   0x0b8e, 0x0b90,
3104   0x0b92, 0x0b95,
3105   0x0b99, 0x0b9a,
3106   0x0b9c, 0x0b9c,
3107   0x0b9e, 0x0b9f,
3108   0x0ba3, 0x0ba4,
3109   0x0ba8, 0x0baa,
3110   0x0bae, 0x0bb9,
3111   0x0bbe, 0x0bc2,
3112   0x0bc6, 0x0bc8,
3113   0x0bca, 0x0bcd,
3114   0x0bd7, 0x0bd7,
3115   0x0be6, 0x0bef,
3116   0x0c01, 0x0c03,
3117   0x0c05, 0x0c0c,
3118   0x0c0e, 0x0c10,
3119   0x0c12, 0x0c28,
3120   0x0c2a, 0x0c33,
3121   0x0c35, 0x0c39,
3122   0x0c3e, 0x0c44,
3123   0x0c46, 0x0c48,
3124   0x0c4a, 0x0c4d,
3125   0x0c55, 0x0c56,
3126   0x0c60, 0x0c61,
3127   0x0c66, 0x0c6f,
3128   0x0c82, 0x0c83,
3129   0x0c85, 0x0c8c,
3130   0x0c8e, 0x0c90,
3131   0x0c92, 0x0ca8,
3132   0x0caa, 0x0cb3,
3133   0x0cb5, 0x0cb9,
3134   0x0cbc, 0x0cc4,
3135   0x0cc6, 0x0cc8,
3136   0x0cca, 0x0ccd,
3137   0x0cd5, 0x0cd6,
3138   0x0cde, 0x0cde,
3139   0x0ce0, 0x0ce1,
3140   0x0ce6, 0x0cef,
3141   0x0d02, 0x0d03,
3142   0x0d05, 0x0d0c,
3143   0x0d0e, 0x0d10,
3144   0x0d12, 0x0d28,
3145   0x0d2a, 0x0d39,
3146   0x0d3e, 0x0d43,
3147   0x0d46, 0x0d48,
3148   0x0d4a, 0x0d4d,
3149   0x0d57, 0x0d57,
3150   0x0d60, 0x0d61,
3151   0x0d66, 0x0d6f,
3152   0x0d82, 0x0d83,
3153   0x0d85, 0x0d96,
3154   0x0d9a, 0x0db1,
3155   0x0db3, 0x0dbb,
3156   0x0dbd, 0x0dbd,
3157   0x0dc0, 0x0dc6,
3158   0x0dca, 0x0dca,
3159   0x0dcf, 0x0dd4,
3160   0x0dd6, 0x0dd6,
3161   0x0dd8, 0x0ddf,
3162   0x0df2, 0x0df3,
3163   0x0e01, 0x0e3a,
3164   0x0e40, 0x0e4e,
3165   0x0e50, 0x0e59,
3166   0x0e81, 0x0e82,
3167   0x0e84, 0x0e84,
3168   0x0e87, 0x0e88,
3169   0x0e8a, 0x0e8a,
3170   0x0e8d, 0x0e8d,
3171   0x0e94, 0x0e97,
3172   0x0e99, 0x0e9f,
3173   0x0ea1, 0x0ea3,
3174   0x0ea5, 0x0ea5,
3175   0x0ea7, 0x0ea7,
3176   0x0eaa, 0x0eab,
3177   0x0ead, 0x0eb9,
3178   0x0ebb, 0x0ebd,
3179   0x0ec0, 0x0ec4,
3180   0x0ec6, 0x0ec6,
3181   0x0ec8, 0x0ecd,
3182   0x0ed0, 0x0ed9,
3183   0x0edc, 0x0edd,
3184   0x0f00, 0x0f00,
3185   0x0f18, 0x0f19,
3186   0x0f20, 0x0f29,
3187   0x0f35, 0x0f35,
3188   0x0f37, 0x0f37,
3189   0x0f39, 0x0f39,
3190   0x0f3e, 0x0f47,
3191   0x0f49, 0x0f6a,
3192   0x0f71, 0x0f84,
3193   0x0f86, 0x0f8b,
3194   0x0f90, 0x0f97,
3195   0x0f99, 0x0fbc,
3196   0x0fc6, 0x0fc6,
3197   0x1000, 0x1021,
3198   0x1023, 0x1027,
3199   0x1029, 0x102a,
3200   0x102c, 0x1032,
3201   0x1036, 0x1039,
3202   0x1040, 0x1049,
3203   0x1050, 0x1059,
3204   0x10a0, 0x10c5,
3205   0x10d0, 0x10fa,
3206   0x10fc, 0x10fc,
3207   0x1100, 0x1159,
3208   0x115f, 0x11a2,
3209   0x11a8, 0x11f9,
3210   0x1200, 0x1248,
3211   0x124a, 0x124d,
3212   0x1250, 0x1256,
3213   0x1258, 0x1258,
3214   0x125a, 0x125d,
3215   0x1260, 0x1288,
3216   0x128a, 0x128d,
3217   0x1290, 0x12b0,
3218   0x12b2, 0x12b5,
3219   0x12b8, 0x12be,
3220   0x12c0, 0x12c0,
3221   0x12c2, 0x12c5,
3222   0x12c8, 0x12d6,
3223   0x12d8, 0x1310,
3224   0x1312, 0x1315,
3225   0x1318, 0x135a,
3226   0x135f, 0x135f,
3227   0x1380, 0x138f,
3228   0x13a0, 0x13f4,
3229   0x1401, 0x166c,
3230   0x166f, 0x1676,
3231   0x1681, 0x169a,
3232   0x16a0, 0x16ea,
3233   0x1700, 0x170c,
3234   0x170e, 0x1714,
3235   0x1720, 0x1734,
3236   0x1740, 0x1753,
3237   0x1760, 0x176c,
3238   0x176e, 0x1770,
3239   0x1772, 0x1773,
3240   0x1780, 0x17b3,
3241   0x17b6, 0x17d3,
3242   0x17d7, 0x17d7,
3243   0x17dc, 0x17dd,
3244   0x17e0, 0x17e9,
3245   0x180b, 0x180d,
3246   0x1810, 0x1819,
3247   0x1820, 0x1877,
3248   0x1880, 0x18a9,
3249   0x1900, 0x191c,
3250   0x1920, 0x192b,
3251   0x1930, 0x193b,
3252   0x1946, 0x196d,
3253   0x1970, 0x1974,
3254   0x1980, 0x19a9,
3255   0x19b0, 0x19c9,
3256   0x19d0, 0x19d9,
3257   0x1a00, 0x1a1b,
3258   0x1d00, 0x1dc3,
3259   0x1e00, 0x1e9b,
3260   0x1ea0, 0x1ef9,
3261   0x1f00, 0x1f15,
3262   0x1f18, 0x1f1d,
3263   0x1f20, 0x1f45,
3264   0x1f48, 0x1f4d,
3265   0x1f50, 0x1f57,
3266   0x1f59, 0x1f59,
3267   0x1f5b, 0x1f5b,
3268   0x1f5d, 0x1f5d,
3269   0x1f5f, 0x1f7d,
3270   0x1f80, 0x1fb4,
3271   0x1fb6, 0x1fbc,
3272   0x1fbe, 0x1fbe,
3273   0x1fc2, 0x1fc4,
3274   0x1fc6, 0x1fcc,
3275   0x1fd0, 0x1fd3,
3276   0x1fd6, 0x1fdb,
3277   0x1fe0, 0x1fec,
3278   0x1ff2, 0x1ff4,
3279   0x1ff6, 0x1ffc,
3280   0x2071, 0x2071,
3281   0x207f, 0x207f,
3282   0x2090, 0x2094,
3283   0x20d0, 0x20eb,
3284   0x2102, 0x2102,
3285   0x2107, 0x2107,
3286   0x210a, 0x2113,
3287   0x2115, 0x2115,
3288   0x2119, 0x211d,
3289   0x2124, 0x2124,
3290   0x2126, 0x2126,
3291   0x2128, 0x2128,
3292   0x212a, 0x212d,
3293   0x212f, 0x2131,
3294   0x2133, 0x2139,
3295   0x213c, 0x213f,
3296   0x2145, 0x2149,
3297   0x2c00, 0x2c2e,
3298   0x2c30, 0x2c5e,
3299   0x2c80, 0x2ce4,
3300   0x2d00, 0x2d25,
3301   0x2d30, 0x2d65,
3302   0x2d6f, 0x2d6f,
3303   0x2d80, 0x2d96,
3304   0x2da0, 0x2da6,
3305   0x2da8, 0x2dae,
3306   0x2db0, 0x2db6,
3307   0x2db8, 0x2dbe,
3308   0x2dc0, 0x2dc6,
3309   0x2dc8, 0x2dce,
3310   0x2dd0, 0x2dd6,
3311   0x2dd8, 0x2dde,
3312   0x3005, 0x3006,
3313   0x302a, 0x302f,
3314   0x3031, 0x3035,
3315   0x303b, 0x303c,
3316   0x3041, 0x3096,
3317   0x3099, 0x309a,
3318   0x309d, 0x309f,
3319   0x30a1, 0x30fa,
3320   0x30fc, 0x30ff,
3321   0x3105, 0x312c,
3322   0x3131, 0x318e,
3323   0x31a0, 0x31b7,
3324   0x31f0, 0x31ff,
3325   0x3400, 0x4db5,
3326   0x4e00, 0x9fbb,
3327   0xa000, 0xa48c,
3328   0xa800, 0xa827,
3329   0xac00, 0xd7a3,
3330   0xf900, 0xfa2d,
3331   0xfa30, 0xfa6a,
3332   0xfa70, 0xfad9,
3333   0xfb00, 0xfb06,
3334   0xfb13, 0xfb17,
3335   0xfb1d, 0xfb28,
3336   0xfb2a, 0xfb36,
3337   0xfb38, 0xfb3c,
3338   0xfb3e, 0xfb3e,
3339   0xfb40, 0xfb41,
3340   0xfb43, 0xfb44,
3341   0xfb46, 0xfbb1,
3342   0xfbd3, 0xfd3d,
3343   0xfd50, 0xfd8f,
3344   0xfd92, 0xfdc7,
3345   0xfdf0, 0xfdfb,
3346   0xfe00, 0xfe0f,
3347   0xfe20, 0xfe23,
3348   0xfe70, 0xfe74,
3349   0xfe76, 0xfefc,
3350   0xff10, 0xff19,
3351   0xff21, 0xff3a,
3352   0xff41, 0xff5a,
3353   0xff66, 0xffbe,
3354   0xffc2, 0xffc7,
3355   0xffca, 0xffcf,
3356   0xffd2, 0xffd7,
3357   0xffda, 0xffdc,
3358   0x10000, 0x1000b,
3359   0x1000d, 0x10026,
3360   0x10028, 0x1003a,
3361   0x1003c, 0x1003d,
3362   0x1003f, 0x1004d,
3363   0x10050, 0x1005d,
3364   0x10080, 0x100fa,
3365   0x10300, 0x1031e,
3366   0x10330, 0x10349,
3367   0x10380, 0x1039d,
3368   0x103a0, 0x103c3,
3369   0x103c8, 0x103cf,
3370   0x10400, 0x1049d,
3371   0x104a0, 0x104a9,
3372   0x10800, 0x10805,
3373   0x10808, 0x10808,
3374   0x1080a, 0x10835,
3375   0x10837, 0x10838,
3376   0x1083c, 0x1083c,
3377   0x1083f, 0x1083f,
3378   0x10a00, 0x10a03,
3379   0x10a05, 0x10a06,
3380   0x10a0c, 0x10a13,
3381   0x10a15, 0x10a17,
3382   0x10a19, 0x10a33,
3383   0x10a38, 0x10a3a,
3384   0x10a3f, 0x10a3f,
3385   0x1d165, 0x1d169,
3386   0x1d16d, 0x1d172,
3387   0x1d17b, 0x1d182,
3388   0x1d185, 0x1d18b,
3389   0x1d1aa, 0x1d1ad,
3390   0x1d242, 0x1d244,
3391   0x1d400, 0x1d454,
3392   0x1d456, 0x1d49c,
3393   0x1d49e, 0x1d49f,
3394   0x1d4a2, 0x1d4a2,
3395   0x1d4a5, 0x1d4a6,
3396   0x1d4a9, 0x1d4ac,
3397   0x1d4ae, 0x1d4b9,
3398   0x1d4bb, 0x1d4bb,
3399   0x1d4bd, 0x1d4c3,
3400   0x1d4c5, 0x1d505,
3401   0x1d507, 0x1d50a,
3402   0x1d50d, 0x1d514,
3403   0x1d516, 0x1d51c,
3404   0x1d51e, 0x1d539,
3405   0x1d53b, 0x1d53e,
3406   0x1d540, 0x1d544,
3407   0x1d546, 0x1d546,
3408   0x1d54a, 0x1d550,
3409   0x1d552, 0x1d6a5,
3410   0x1d6a8, 0x1d6c0,
3411   0x1d6c2, 0x1d6da,
3412   0x1d6dc, 0x1d6fa,
3413   0x1d6fc, 0x1d714,
3414   0x1d716, 0x1d734,
3415   0x1d736, 0x1d74e,
3416   0x1d750, 0x1d76e,
3417   0x1d770, 0x1d788,
3418   0x1d78a, 0x1d7a8,
3419   0x1d7aa, 0x1d7c2,
3420   0x1d7c4, 0x1d7c9,
3421   0x1d7ce, 0x1d7ff,
3422   0x20000, 0x2a6d6,
3423   0x2f800, 0x2fa1d,
3424   0xe0100, 0xe01ef
3425 }; /* CR_Alnum */
3426 
3427 /* 'ASCII': [[:ASCII:]] */
3428 static const OnigCodePoint CR_ASCII[] = {
3429   1,
3430   0x0000, 0x007f
3431 }; /* CR_ASCII */
3432 
3433 #ifdef USE_UNICODE_PROPERTIES
3434 
3435 /* 'Any': - */
3436 static const OnigCodePoint CR_Any[] = {
3437   1,
3438   0x0000, 0x10ffff
3439 }; /* CR_Any */
3440 
3441 /* 'Assigned': - */
3442 static const OnigCodePoint CR_Assigned[] = {
3443   420,
3444   0x0000, 0x0241,
3445   0x0250, 0x036f,
3446   0x0374, 0x0375,
3447   0x037a, 0x037a,
3448   0x037e, 0x037e,
3449   0x0384, 0x038a,
3450   0x038c, 0x038c,
3451   0x038e, 0x03a1,
3452   0x03a3, 0x03ce,
3453   0x03d0, 0x0486,
3454   0x0488, 0x04ce,
3455   0x04d0, 0x04f9,
3456   0x0500, 0x050f,
3457   0x0531, 0x0556,
3458   0x0559, 0x055f,
3459   0x0561, 0x0587,
3460   0x0589, 0x058a,
3461   0x0591, 0x05b9,
3462   0x05bb, 0x05c7,
3463   0x05d0, 0x05ea,
3464   0x05f0, 0x05f4,
3465   0x0600, 0x0603,
3466   0x060b, 0x0615,
3467   0x061b, 0x061b,
3468   0x061e, 0x061f,
3469   0x0621, 0x063a,
3470   0x0640, 0x065e,
3471   0x0660, 0x070d,
3472   0x070f, 0x074a,
3473   0x074d, 0x076d,
3474   0x0780, 0x07b1,
3475   0x0901, 0x0939,
3476   0x093c, 0x094d,
3477   0x0950, 0x0954,
3478   0x0958, 0x0970,
3479   0x097d, 0x097d,
3480   0x0981, 0x0983,
3481   0x0985, 0x098c,
3482   0x098f, 0x0990,
3483   0x0993, 0x09a8,
3484   0x09aa, 0x09b0,
3485   0x09b2, 0x09b2,
3486   0x09b6, 0x09b9,
3487   0x09bc, 0x09c4,
3488   0x09c7, 0x09c8,
3489   0x09cb, 0x09ce,
3490   0x09d7, 0x09d7,
3491   0x09dc, 0x09dd,
3492   0x09df, 0x09e3,
3493   0x09e6, 0x09fa,
3494   0x0a01, 0x0a03,
3495   0x0a05, 0x0a0a,
3496   0x0a0f, 0x0a10,
3497   0x0a13, 0x0a28,
3498   0x0a2a, 0x0a30,
3499   0x0a32, 0x0a33,
3500   0x0a35, 0x0a36,
3501   0x0a38, 0x0a39,
3502   0x0a3c, 0x0a3c,
3503   0x0a3e, 0x0a42,
3504   0x0a47, 0x0a48,
3505   0x0a4b, 0x0a4d,
3506   0x0a59, 0x0a5c,
3507   0x0a5e, 0x0a5e,
3508   0x0a66, 0x0a74,
3509   0x0a81, 0x0a83,
3510   0x0a85, 0x0a8d,
3511   0x0a8f, 0x0a91,
3512   0x0a93, 0x0aa8,
3513   0x0aaa, 0x0ab0,
3514   0x0ab2, 0x0ab3,
3515   0x0ab5, 0x0ab9,
3516   0x0abc, 0x0ac5,
3517   0x0ac7, 0x0ac9,
3518   0x0acb, 0x0acd,
3519   0x0ad0, 0x0ad0,
3520   0x0ae0, 0x0ae3,
3521   0x0ae6, 0x0aef,
3522   0x0af1, 0x0af1,
3523   0x0b01, 0x0b03,
3524   0x0b05, 0x0b0c,
3525   0x0b0f, 0x0b10,
3526   0x0b13, 0x0b28,
3527   0x0b2a, 0x0b30,
3528   0x0b32, 0x0b33,
3529   0x0b35, 0x0b39,
3530   0x0b3c, 0x0b43,
3531   0x0b47, 0x0b48,
3532   0x0b4b, 0x0b4d,
3533   0x0b56, 0x0b57,
3534   0x0b5c, 0x0b5d,
3535   0x0b5f, 0x0b61,
3536   0x0b66, 0x0b71,
3537   0x0b82, 0x0b83,
3538   0x0b85, 0x0b8a,
3539   0x0b8e, 0x0b90,
3540   0x0b92, 0x0b95,
3541   0x0b99, 0x0b9a,
3542   0x0b9c, 0x0b9c,
3543   0x0b9e, 0x0b9f,
3544   0x0ba3, 0x0ba4,
3545   0x0ba8, 0x0baa,
3546   0x0bae, 0x0bb9,
3547   0x0bbe, 0x0bc2,
3548   0x0bc6, 0x0bc8,
3549   0x0bca, 0x0bcd,
3550   0x0bd7, 0x0bd7,
3551   0x0be6, 0x0bfa,
3552   0x0c01, 0x0c03,
3553   0x0c05, 0x0c0c,
3554   0x0c0e, 0x0c10,
3555   0x0c12, 0x0c28,
3556   0x0c2a, 0x0c33,
3557   0x0c35, 0x0c39,
3558   0x0c3e, 0x0c44,
3559   0x0c46, 0x0c48,
3560   0x0c4a, 0x0c4d,
3561   0x0c55, 0x0c56,
3562   0x0c60, 0x0c61,
3563   0x0c66, 0x0c6f,
3564   0x0c82, 0x0c83,
3565   0x0c85, 0x0c8c,
3566   0x0c8e, 0x0c90,
3567   0x0c92, 0x0ca8,
3568   0x0caa, 0x0cb3,
3569   0x0cb5, 0x0cb9,
3570   0x0cbc, 0x0cc4,
3571   0x0cc6, 0x0cc8,
3572   0x0cca, 0x0ccd,
3573   0x0cd5, 0x0cd6,
3574   0x0cde, 0x0cde,
3575   0x0ce0, 0x0ce1,
3576   0x0ce6, 0x0cef,
3577   0x0d02, 0x0d03,
3578   0x0d05, 0x0d0c,
3579   0x0d0e, 0x0d10,
3580   0x0d12, 0x0d28,
3581   0x0d2a, 0x0d39,
3582   0x0d3e, 0x0d43,
3583   0x0d46, 0x0d48,
3584   0x0d4a, 0x0d4d,
3585   0x0d57, 0x0d57,
3586   0x0d60, 0x0d61,
3587   0x0d66, 0x0d6f,
3588   0x0d82, 0x0d83,
3589   0x0d85, 0x0d96,
3590   0x0d9a, 0x0db1,
3591   0x0db3, 0x0dbb,
3592   0x0dbd, 0x0dbd,
3593   0x0dc0, 0x0dc6,
3594   0x0dca, 0x0dca,
3595   0x0dcf, 0x0dd4,
3596   0x0dd6, 0x0dd6,
3597   0x0dd8, 0x0ddf,
3598   0x0df2, 0x0df4,
3599   0x0e01, 0x0e3a,
3600   0x0e3f, 0x0e5b,
3601   0x0e81, 0x0e82,
3602   0x0e84, 0x0e84,
3603   0x0e87, 0x0e88,
3604   0x0e8a, 0x0e8a,
3605   0x0e8d, 0x0e8d,
3606   0x0e94, 0x0e97,
3607   0x0e99, 0x0e9f,
3608   0x0ea1, 0x0ea3,
3609   0x0ea5, 0x0ea5,
3610   0x0ea7, 0x0ea7,
3611   0x0eaa, 0x0eab,
3612   0x0ead, 0x0eb9,
3613   0x0ebb, 0x0ebd,
3614   0x0ec0, 0x0ec4,
3615   0x0ec6, 0x0ec6,
3616   0x0ec8, 0x0ecd,
3617   0x0ed0, 0x0ed9,
3618   0x0edc, 0x0edd,
3619   0x0f00, 0x0f47,
3620   0x0f49, 0x0f6a,
3621   0x0f71, 0x0f8b,
3622   0x0f90, 0x0f97,
3623   0x0f99, 0x0fbc,
3624   0x0fbe, 0x0fcc,
3625   0x0fcf, 0x0fd1,
3626   0x1000, 0x1021,
3627   0x1023, 0x1027,
3628   0x1029, 0x102a,
3629   0x102c, 0x1032,
3630   0x1036, 0x1039,
3631   0x1040, 0x1059,
3632   0x10a0, 0x10c5,
3633   0x10d0, 0x10fc,
3634   0x1100, 0x1159,
3635   0x115f, 0x11a2,
3636   0x11a8, 0x11f9,
3637   0x1200, 0x1248,
3638   0x124a, 0x124d,
3639   0x1250, 0x1256,
3640   0x1258, 0x1258,
3641   0x125a, 0x125d,
3642   0x1260, 0x1288,
3643   0x128a, 0x128d,
3644   0x1290, 0x12b0,
3645   0x12b2, 0x12b5,
3646   0x12b8, 0x12be,
3647   0x12c0, 0x12c0,
3648   0x12c2, 0x12c5,
3649   0x12c8, 0x12d6,
3650   0x12d8, 0x1310,
3651   0x1312, 0x1315,
3652   0x1318, 0x135a,
3653   0x135f, 0x137c,
3654   0x1380, 0x1399,
3655   0x13a0, 0x13f4,
3656   0x1401, 0x1676,
3657   0x1680, 0x169c,
3658   0x16a0, 0x16f0,
3659   0x1700, 0x170c,
3660   0x170e, 0x1714,
3661   0x1720, 0x1736,
3662   0x1740, 0x1753,
3663   0x1760, 0x176c,
3664   0x176e, 0x1770,
3665   0x1772, 0x1773,
3666   0x1780, 0x17dd,
3667   0x17e0, 0x17e9,
3668   0x17f0, 0x17f9,
3669   0x1800, 0x180e,
3670   0x1810, 0x1819,
3671   0x1820, 0x1877,
3672   0x1880, 0x18a9,
3673   0x1900, 0x191c,
3674   0x1920, 0x192b,
3675   0x1930, 0x193b,
3676   0x1940, 0x1940,
3677   0x1944, 0x196d,
3678   0x1970, 0x1974,
3679   0x1980, 0x19a9,
3680   0x19b0, 0x19c9,
3681   0x19d0, 0x19d9,
3682   0x19de, 0x1a1b,
3683   0x1a1e, 0x1a1f,
3684   0x1d00, 0x1dc3,
3685   0x1e00, 0x1e9b,
3686   0x1ea0, 0x1ef9,
3687   0x1f00, 0x1f15,
3688   0x1f18, 0x1f1d,
3689   0x1f20, 0x1f45,
3690   0x1f48, 0x1f4d,
3691   0x1f50, 0x1f57,
3692   0x1f59, 0x1f59,
3693   0x1f5b, 0x1f5b,
3694   0x1f5d, 0x1f5d,
3695   0x1f5f, 0x1f7d,
3696   0x1f80, 0x1fb4,
3697   0x1fb6, 0x1fc4,
3698   0x1fc6, 0x1fd3,
3699   0x1fd6, 0x1fdb,
3700   0x1fdd, 0x1fef,
3701   0x1ff2, 0x1ff4,
3702   0x1ff6, 0x1ffe,
3703   0x2000, 0x2063,
3704   0x206a, 0x2071,
3705   0x2074, 0x208e,
3706   0x2090, 0x2094,
3707   0x20a0, 0x20b5,
3708   0x20d0, 0x20eb,
3709   0x2100, 0x214c,
3710   0x2153, 0x2183,
3711   0x2190, 0x23db,
3712   0x2400, 0x2426,
3713   0x2440, 0x244a,
3714   0x2460, 0x269c,
3715   0x26a0, 0x26b1,
3716   0x2701, 0x2704,
3717   0x2706, 0x2709,
3718   0x270c, 0x2727,
3719   0x2729, 0x274b,
3720   0x274d, 0x274d,
3721   0x274f, 0x2752,
3722   0x2756, 0x2756,
3723   0x2758, 0x275e,
3724   0x2761, 0x2794,
3725   0x2798, 0x27af,
3726   0x27b1, 0x27be,
3727   0x27c0, 0x27c6,
3728   0x27d0, 0x27eb,
3729   0x27f0, 0x2b13,
3730   0x2c00, 0x2c2e,
3731   0x2c30, 0x2c5e,
3732   0x2c80, 0x2cea,
3733   0x2cf9, 0x2d25,
3734   0x2d30, 0x2d65,
3735   0x2d6f, 0x2d6f,
3736   0x2d80, 0x2d96,
3737   0x2da0, 0x2da6,
3738   0x2da8, 0x2dae,
3739   0x2db0, 0x2db6,
3740   0x2db8, 0x2dbe,
3741   0x2dc0, 0x2dc6,
3742   0x2dc8, 0x2dce,
3743   0x2dd0, 0x2dd6,
3744   0x2dd8, 0x2dde,
3745   0x2e00, 0x2e17,
3746   0x2e1c, 0x2e1d,
3747   0x2e80, 0x2e99,
3748   0x2e9b, 0x2ef3,
3749   0x2f00, 0x2fd5,
3750   0x2ff0, 0x2ffb,
3751   0x3000, 0x303f,
3752   0x3041, 0x3096,
3753   0x3099, 0x30ff,
3754   0x3105, 0x312c,
3755   0x3131, 0x318e,
3756   0x3190, 0x31b7,
3757   0x31c0, 0x31cf,
3758   0x31f0, 0x321e,
3759   0x3220, 0x3243,
3760   0x3250, 0x32fe,
3761   0x3300, 0x4db5,
3762   0x4dc0, 0x9fbb,
3763   0xa000, 0xa48c,
3764   0xa490, 0xa4c6,
3765   0xa700, 0xa716,
3766   0xa800, 0xa82b,
3767   0xac00, 0xd7a3,
3768   0xd800, 0xfa2d,
3769   0xfa30, 0xfa6a,
3770   0xfa70, 0xfad9,
3771   0xfb00, 0xfb06,
3772   0xfb13, 0xfb17,
3773   0xfb1d, 0xfb36,
3774   0xfb38, 0xfb3c,
3775   0xfb3e, 0xfb3e,
3776   0xfb40, 0xfb41,
3777   0xfb43, 0xfb44,
3778   0xfb46, 0xfbb1,
3779   0xfbd3, 0xfd3f,
3780   0xfd50, 0xfd8f,
3781   0xfd92, 0xfdc7,
3782   0xfdf0, 0xfdfd,
3783   0xfe00, 0xfe19,
3784   0xfe20, 0xfe23,
3785   0xfe30, 0xfe52,
3786   0xfe54, 0xfe66,
3787   0xfe68, 0xfe6b,
3788   0xfe70, 0xfe74,
3789   0xfe76, 0xfefc,
3790   0xfeff, 0xfeff,
3791   0xff01, 0xffbe,
3792   0xffc2, 0xffc7,
3793   0xffca, 0xffcf,
3794   0xffd2, 0xffd7,
3795   0xffda, 0xffdc,
3796   0xffe0, 0xffe6,
3797   0xffe8, 0xffee,
3798   0xfff9, 0xfffd,
3799   0x10000, 0x1000b,
3800   0x1000d, 0x10026,
3801   0x10028, 0x1003a,
3802   0x1003c, 0x1003d,
3803   0x1003f, 0x1004d,
3804   0x10050, 0x1005d,
3805   0x10080, 0x100fa,
3806   0x10100, 0x10102,
3807   0x10107, 0x10133,
3808   0x10137, 0x1018a,
3809   0x10300, 0x1031e,
3810   0x10320, 0x10323,
3811   0x10330, 0x1034a,
3812   0x10380, 0x1039d,
3813   0x1039f, 0x103c3,
3814   0x103c8, 0x103d5,
3815   0x10400, 0x1049d,
3816   0x104a0, 0x104a9,
3817   0x10800, 0x10805,
3818   0x10808, 0x10808,
3819   0x1080a, 0x10835,
3820   0x10837, 0x10838,
3821   0x1083c, 0x1083c,
3822   0x1083f, 0x1083f,
3823   0x10a00, 0x10a03,
3824   0x10a05, 0x10a06,
3825   0x10a0c, 0x10a13,
3826   0x10a15, 0x10a17,
3827   0x10a19, 0x10a33,
3828   0x10a38, 0x10a3a,
3829   0x10a3f, 0x10a47,
3830   0x10a50, 0x10a58,
3831   0x1d000, 0x1d0f5,
3832   0x1d100, 0x1d126,
3833   0x1d12a, 0x1d1dd,
3834   0x1d200, 0x1d245,
3835   0x1d300, 0x1d356,
3836   0x1d400, 0x1d454,
3837   0x1d456, 0x1d49c,
3838   0x1d49e, 0x1d49f,
3839   0x1d4a2, 0x1d4a2,
3840   0x1d4a5, 0x1d4a6,
3841   0x1d4a9, 0x1d4ac,
3842   0x1d4ae, 0x1d4b9,
3843   0x1d4bb, 0x1d4bb,
3844   0x1d4bd, 0x1d4c3,
3845   0x1d4c5, 0x1d505,
3846   0x1d507, 0x1d50a,
3847   0x1d50d, 0x1d514,
3848   0x1d516, 0x1d51c,
3849   0x1d51e, 0x1d539,
3850   0x1d53b, 0x1d53e,
3851   0x1d540, 0x1d544,
3852   0x1d546, 0x1d546,
3853   0x1d54a, 0x1d550,
3854   0x1d552, 0x1d6a5,
3855   0x1d6a8, 0x1d7c9,
3856   0x1d7ce, 0x1d7ff,
3857   0x20000, 0x2a6d6,
3858   0x2f800, 0x2fa1d,
3859   0xe0001, 0xe0001,
3860   0xe0020, 0xe007f,
3861   0xe0100, 0xe01ef,
3862   0xf0000, 0xffffd,
3863   0x100000, 0x10fffd
3864 }; /* CR_Assigned */
3865 
3866 /* 'C': Major Category */
3867 static const OnigCodePoint CR_C[] = {
3868   422,
3869   0x0000, 0x001f,
3870   0x007f, 0x009f,
3871   0x00ad, 0x00ad,
3872   0x0242, 0x024f,
3873   0x0370, 0x0373,
3874   0x0376, 0x0379,
3875   0x037b, 0x037d,
3876   0x037f, 0x0383,
3877   0x038b, 0x038b,
3878   0x038d, 0x038d,
3879   0x03a2, 0x03a2,
3880   0x03cf, 0x03cf,
3881   0x0487, 0x0487,
3882   0x04cf, 0x04cf,
3883   0x04fa, 0x04ff,
3884   0x0510, 0x0530,
3885   0x0557, 0x0558,
3886   0x0560, 0x0560,
3887   0x0588, 0x0588,
3888   0x058b, 0x0590,
3889   0x05ba, 0x05ba,
3890   0x05c8, 0x05cf,
3891   0x05eb, 0x05ef,
3892   0x05f5, 0x060a,
3893   0x0616, 0x061a,
3894   0x061c, 0x061d,
3895   0x0620, 0x0620,
3896   0x063b, 0x063f,
3897   0x065f, 0x065f,
3898   0x06dd, 0x06dd,
3899   0x070e, 0x070f,
3900   0x074b, 0x074c,
3901   0x076e, 0x077f,
3902   0x07b2, 0x0900,
3903   0x093a, 0x093b,
3904   0x094e, 0x094f,
3905   0x0955, 0x0957,
3906   0x0971, 0x097c,
3907   0x097e, 0x0980,
3908   0x0984, 0x0984,
3909   0x098d, 0x098e,
3910   0x0991, 0x0992,
3911   0x09a9, 0x09a9,
3912   0x09b1, 0x09b1,
3913   0x09b3, 0x09b5,
3914   0x09ba, 0x09bb,
3915   0x09c5, 0x09c6,
3916   0x09c9, 0x09ca,
3917   0x09cf, 0x09d6,
3918   0x09d8, 0x09db,
3919   0x09de, 0x09de,
3920   0x09e4, 0x09e5,
3921   0x09fb, 0x0a00,
3922   0x0a04, 0x0a04,
3923   0x0a0b, 0x0a0e,
3924   0x0a11, 0x0a12,
3925   0x0a29, 0x0a29,
3926   0x0a31, 0x0a31,
3927   0x0a34, 0x0a34,
3928   0x0a37, 0x0a37,
3929   0x0a3a, 0x0a3b,
3930   0x0a3d, 0x0a3d,
3931   0x0a43, 0x0a46,
3932   0x0a49, 0x0a4a,
3933   0x0a4e, 0x0a58,
3934   0x0a5d, 0x0a5d,
3935   0x0a5f, 0x0a65,
3936   0x0a75, 0x0a80,
3937   0x0a84, 0x0a84,
3938   0x0a8e, 0x0a8e,
3939   0x0a92, 0x0a92,
3940   0x0aa9, 0x0aa9,
3941   0x0ab1, 0x0ab1,
3942   0x0ab4, 0x0ab4,
3943   0x0aba, 0x0abb,
3944   0x0ac6, 0x0ac6,
3945   0x0aca, 0x0aca,
3946   0x0ace, 0x0acf,
3947   0x0ad1, 0x0adf,
3948   0x0ae4, 0x0ae5,
3949   0x0af0, 0x0af0,
3950   0x0af2, 0x0b00,
3951   0x0b04, 0x0b04,
3952   0x0b0d, 0x0b0e,
3953   0x0b11, 0x0b12,
3954   0x0b29, 0x0b29,
3955   0x0b31, 0x0b31,
3956   0x0b34, 0x0b34,
3957   0x0b3a, 0x0b3b,
3958   0x0b44, 0x0b46,
3959   0x0b49, 0x0b4a,
3960   0x0b4e, 0x0b55,
3961   0x0b58, 0x0b5b,
3962   0x0b5e, 0x0b5e,
3963   0x0b62, 0x0b65,
3964   0x0b72, 0x0b81,
3965   0x0b84, 0x0b84,
3966   0x0b8b, 0x0b8d,
3967   0x0b91, 0x0b91,
3968   0x0b96, 0x0b98,
3969   0x0b9b, 0x0b9b,
3970   0x0b9d, 0x0b9d,
3971   0x0ba0, 0x0ba2,
3972   0x0ba5, 0x0ba7,
3973   0x0bab, 0x0bad,
3974   0x0bba, 0x0bbd,
3975   0x0bc3, 0x0bc5,
3976   0x0bc9, 0x0bc9,
3977   0x0bce, 0x0bd6,
3978   0x0bd8, 0x0be5,
3979   0x0bfb, 0x0c00,
3980   0x0c04, 0x0c04,
3981   0x0c0d, 0x0c0d,
3982   0x0c11, 0x0c11,
3983   0x0c29, 0x0c29,
3984   0x0c34, 0x0c34,
3985   0x0c3a, 0x0c3d,
3986   0x0c45, 0x0c45,
3987   0x0c49, 0x0c49,
3988   0x0c4e, 0x0c54,
3989   0x0c57, 0x0c5f,
3990   0x0c62, 0x0c65,
3991   0x0c70, 0x0c81,
3992   0x0c84, 0x0c84,
3993   0x0c8d, 0x0c8d,
3994   0x0c91, 0x0c91,
3995   0x0ca9, 0x0ca9,
3996   0x0cb4, 0x0cb4,
3997   0x0cba, 0x0cbb,
3998   0x0cc5, 0x0cc5,
3999   0x0cc9, 0x0cc9,
4000   0x0cce, 0x0cd4,
4001   0x0cd7, 0x0cdd,
4002   0x0cdf, 0x0cdf,
4003   0x0ce2, 0x0ce5,
4004   0x0cf0, 0x0d01,
4005   0x0d04, 0x0d04,
4006   0x0d0d, 0x0d0d,
4007   0x0d11, 0x0d11,
4008   0x0d29, 0x0d29,
4009   0x0d3a, 0x0d3d,
4010   0x0d44, 0x0d45,
4011   0x0d49, 0x0d49,
4012   0x0d4e, 0x0d56,
4013   0x0d58, 0x0d5f,
4014   0x0d62, 0x0d65,
4015   0x0d70, 0x0d81,
4016   0x0d84, 0x0d84,
4017   0x0d97, 0x0d99,
4018   0x0db2, 0x0db2,
4019   0x0dbc, 0x0dbc,
4020   0x0dbe, 0x0dbf,
4021   0x0dc7, 0x0dc9,
4022   0x0dcb, 0x0dce,
4023   0x0dd5, 0x0dd5,
4024   0x0dd7, 0x0dd7,
4025   0x0de0, 0x0df1,
4026   0x0df5, 0x0e00,
4027   0x0e3b, 0x0e3e,
4028   0x0e5c, 0x0e80,
4029   0x0e83, 0x0e83,
4030   0x0e85, 0x0e86,
4031   0x0e89, 0x0e89,
4032   0x0e8b, 0x0e8c,
4033   0x0e8e, 0x0e93,
4034   0x0e98, 0x0e98,
4035   0x0ea0, 0x0ea0,
4036   0x0ea4, 0x0ea4,
4037   0x0ea6, 0x0ea6,
4038   0x0ea8, 0x0ea9,
4039   0x0eac, 0x0eac,
4040   0x0eba, 0x0eba,
4041   0x0ebe, 0x0ebf,
4042   0x0ec5, 0x0ec5,
4043   0x0ec7, 0x0ec7,
4044   0x0ece, 0x0ecf,
4045   0x0eda, 0x0edb,
4046   0x0ede, 0x0eff,
4047   0x0f48, 0x0f48,
4048   0x0f6b, 0x0f70,
4049   0x0f8c, 0x0f8f,
4050   0x0f98, 0x0f98,
4051   0x0fbd, 0x0fbd,
4052   0x0fcd, 0x0fce,
4053   0x0fd2, 0x0fff,
4054   0x1022, 0x1022,
4055   0x1028, 0x1028,
4056   0x102b, 0x102b,
4057   0x1033, 0x1035,
4058   0x103a, 0x103f,
4059   0x105a, 0x109f,
4060   0x10c6, 0x10cf,
4061   0x10fd, 0x10ff,
4062   0x115a, 0x115e,
4063   0x11a3, 0x11a7,
4064   0x11fa, 0x11ff,
4065   0x1249, 0x1249,
4066   0x124e, 0x124f,
4067   0x1257, 0x1257,
4068   0x1259, 0x1259,
4069   0x125e, 0x125f,
4070   0x1289, 0x1289,
4071   0x128e, 0x128f,
4072   0x12b1, 0x12b1,
4073   0x12b6, 0x12b7,
4074   0x12bf, 0x12bf,
4075   0x12c1, 0x12c1,
4076   0x12c6, 0x12c7,
4077   0x12d7, 0x12d7,
4078   0x1311, 0x1311,
4079   0x1316, 0x1317,
4080   0x135b, 0x135e,
4081   0x137d, 0x137f,
4082   0x139a, 0x139f,
4083   0x13f5, 0x1400,
4084   0x1677, 0x167f,
4085   0x169d, 0x169f,
4086   0x16f1, 0x16ff,
4087   0x170d, 0x170d,
4088   0x1715, 0x171f,
4089   0x1737, 0x173f,
4090   0x1754, 0x175f,
4091   0x176d, 0x176d,
4092   0x1771, 0x1771,
4093   0x1774, 0x177f,
4094   0x17b4, 0x17b5,
4095   0x17de, 0x17df,
4096   0x17ea, 0x17ef,
4097   0x17fa, 0x17ff,
4098   0x180f, 0x180f,
4099   0x181a, 0x181f,
4100   0x1878, 0x187f,
4101   0x18aa, 0x18ff,
4102   0x191d, 0x191f,
4103   0x192c, 0x192f,
4104   0x193c, 0x193f,
4105   0x1941, 0x1943,
4106   0x196e, 0x196f,
4107   0x1975, 0x197f,
4108   0x19aa, 0x19af,
4109   0x19ca, 0x19cf,
4110   0x19da, 0x19dd,
4111   0x1a1c, 0x1a1d,
4112   0x1a20, 0x1cff,
4113   0x1dc4, 0x1dff,
4114   0x1e9c, 0x1e9f,
4115   0x1efa, 0x1eff,
4116   0x1f16, 0x1f17,
4117   0x1f1e, 0x1f1f,
4118   0x1f46, 0x1f47,
4119   0x1f4e, 0x1f4f,
4120   0x1f58, 0x1f58,
4121   0x1f5a, 0x1f5a,
4122   0x1f5c, 0x1f5c,
4123   0x1f5e, 0x1f5e,
4124   0x1f7e, 0x1f7f,
4125   0x1fb5, 0x1fb5,
4126   0x1fc5, 0x1fc5,
4127   0x1fd4, 0x1fd5,
4128   0x1fdc, 0x1fdc,
4129   0x1ff0, 0x1ff1,
4130   0x1ff5, 0x1ff5,
4131   0x1fff, 0x1fff,
4132   0x200b, 0x200f,
4133   0x202a, 0x202e,
4134   0x2060, 0x206f,
4135   0x2072, 0x2073,
4136   0x208f, 0x208f,
4137   0x2095, 0x209f,
4138   0x20b6, 0x20cf,
4139   0x20ec, 0x20ff,
4140   0x214d, 0x2152,
4141   0x2184, 0x218f,
4142   0x23dc, 0x23ff,
4143   0x2427, 0x243f,
4144   0x244b, 0x245f,
4145   0x269d, 0x269f,
4146   0x26b2, 0x2700,
4147   0x2705, 0x2705,
4148   0x270a, 0x270b,
4149   0x2728, 0x2728,
4150   0x274c, 0x274c,
4151   0x274e, 0x274e,
4152   0x2753, 0x2755,
4153   0x2757, 0x2757,
4154   0x275f, 0x2760,
4155   0x2795, 0x2797,
4156   0x27b0, 0x27b0,
4157   0x27bf, 0x27bf,
4158   0x27c7, 0x27cf,
4159   0x27ec, 0x27ef,
4160   0x2b14, 0x2bff,
4161   0x2c2f, 0x2c2f,
4162   0x2c5f, 0x2c7f,
4163   0x2ceb, 0x2cf8,
4164   0x2d26, 0x2d2f,
4165   0x2d66, 0x2d6e,
4166   0x2d70, 0x2d7f,
4167   0x2d97, 0x2d9f,
4168   0x2da7, 0x2da7,
4169   0x2daf, 0x2daf,
4170   0x2db7, 0x2db7,
4171   0x2dbf, 0x2dbf,
4172   0x2dc7, 0x2dc7,
4173   0x2dcf, 0x2dcf,
4174   0x2dd7, 0x2dd7,
4175   0x2ddf, 0x2dff,
4176   0x2e18, 0x2e1b,
4177   0x2e1e, 0x2e7f,
4178   0x2e9a, 0x2e9a,
4179   0x2ef4, 0x2eff,
4180   0x2fd6, 0x2fef,
4181   0x2ffc, 0x2fff,
4182   0x3040, 0x3040,
4183   0x3097, 0x3098,
4184   0x3100, 0x3104,
4185   0x312d, 0x3130,
4186   0x318f, 0x318f,
4187   0x31b8, 0x31bf,
4188   0x31d0, 0x31ef,
4189   0x321f, 0x321f,
4190   0x3244, 0x324f,
4191   0x32ff, 0x32ff,
4192   0x4db6, 0x4dbf,
4193   0x9fbc, 0x9fff,
4194   0xa48d, 0xa48f,
4195   0xa4c7, 0xa6ff,
4196   0xa717, 0xa7ff,
4197   0xa82c, 0xabff,
4198   0xd7a4, 0xf8ff,
4199   0xfa2e, 0xfa2f,
4200   0xfa6b, 0xfa6f,
4201   0xfada, 0xfaff,
4202   0xfb07, 0xfb12,
4203   0xfb18, 0xfb1c,
4204   0xfb37, 0xfb37,
4205   0xfb3d, 0xfb3d,
4206   0xfb3f, 0xfb3f,
4207   0xfb42, 0xfb42,
4208   0xfb45, 0xfb45,
4209   0xfbb2, 0xfbd2,
4210   0xfd40, 0xfd4f,
4211   0xfd90, 0xfd91,
4212   0xfdc8, 0xfdef,
4213   0xfdfe, 0xfdff,
4214   0xfe1a, 0xfe1f,
4215   0xfe24, 0xfe2f,
4216   0xfe53, 0xfe53,
4217   0xfe67, 0xfe67,
4218   0xfe6c, 0xfe6f,
4219   0xfe75, 0xfe75,
4220   0xfefd, 0xff00,
4221   0xffbf, 0xffc1,
4222   0xffc8, 0xffc9,
4223   0xffd0, 0xffd1,
4224   0xffd8, 0xffd9,
4225   0xffdd, 0xffdf,
4226   0xffe7, 0xffe7,
4227   0xffef, 0xfffb,
4228   0xfffe, 0xffff,
4229   0x1000c, 0x1000c,
4230   0x10027, 0x10027,
4231   0x1003b, 0x1003b,
4232   0x1003e, 0x1003e,
4233   0x1004e, 0x1004f,
4234   0x1005e, 0x1007f,
4235   0x100fb, 0x100ff,
4236   0x10103, 0x10106,
4237   0x10134, 0x10136,
4238   0x1018b, 0x102ff,
4239   0x1031f, 0x1031f,
4240   0x10324, 0x1032f,
4241   0x1034b, 0x1037f,
4242   0x1039e, 0x1039e,
4243   0x103c4, 0x103c7,
4244   0x103d6, 0x103ff,
4245   0x1049e, 0x1049f,
4246   0x104aa, 0x107ff,
4247   0x10806, 0x10807,
4248   0x10809, 0x10809,
4249   0x10836, 0x10836,
4250   0x10839, 0x1083b,
4251   0x1083d, 0x1083e,
4252   0x10840, 0x109ff,
4253   0x10a04, 0x10a04,
4254   0x10a07, 0x10a0b,
4255   0x10a14, 0x10a14,
4256   0x10a18, 0x10a18,
4257   0x10a34, 0x10a37,
4258   0x10a3b, 0x10a3e,
4259   0x10a48, 0x10a4f,
4260   0x10a59, 0x1cfff,
4261   0x1d0f6, 0x1d0ff,
4262   0x1d127, 0x1d129,
4263   0x1d173, 0x1d17a,
4264   0x1d1de, 0x1d1ff,
4265   0x1d246, 0x1d2ff,
4266   0x1d357, 0x1d3ff,
4267   0x1d455, 0x1d455,
4268   0x1d49d, 0x1d49d,
4269   0x1d4a0, 0x1d4a1,
4270   0x1d4a3, 0x1d4a4,
4271   0x1d4a7, 0x1d4a8,
4272   0x1d4ad, 0x1d4ad,
4273   0x1d4ba, 0x1d4ba,
4274   0x1d4bc, 0x1d4bc,
4275   0x1d4c4, 0x1d4c4,
4276   0x1d506, 0x1d506,
4277   0x1d50b, 0x1d50c,
4278   0x1d515, 0x1d515,
4279   0x1d51d, 0x1d51d,
4280   0x1d53a, 0x1d53a,
4281   0x1d53f, 0x1d53f,
4282   0x1d545, 0x1d545,
4283   0x1d547, 0x1d549,
4284   0x1d551, 0x1d551,
4285   0x1d6a6, 0x1d6a7,
4286   0x1d7ca, 0x1d7cd,
4287   0x1d800, 0x1ffff,
4288   0x2a6d7, 0x2f7ff,
4289   0x2fa1e, 0xe00ff,
4290   0xe01f0, 0x10ffff
4291 }; /* CR_C */
4292 
4293 /* 'Cc': General Category */
4294 static const OnigCodePoint CR_Cc[] = {
4295   2,
4296   0x0000, 0x001f,
4297   0x007f, 0x009f
4298 }; /* CR_Cc */
4299 
4300 /* 'Cf': General Category */
4301 static const OnigCodePoint CR_Cf[] = {
4302   14,
4303   0x00ad, 0x00ad,
4304   0x0600, 0x0603,
4305   0x06dd, 0x06dd,
4306   0x070f, 0x070f,
4307   0x17b4, 0x17b5,
4308   0x200b, 0x200f,
4309   0x202a, 0x202e,
4310   0x2060, 0x2063,
4311   0x206a, 0x206f,
4312   0xfeff, 0xfeff,
4313   0xfff9, 0xfffb,
4314   0x1d173, 0x1d17a,
4315   0xe0001, 0xe0001,
4316   0xe0020, 0xe007f
4317 }; /* CR_Cf */
4318 
4319 /* 'Cn': General Category */
4320 static const OnigCodePoint CR_Cn[] = {
4321   420,
4322   0x0242, 0x024f,
4323   0x0370, 0x0373,
4324   0x0376, 0x0379,
4325   0x037b, 0x037d,
4326   0x037f, 0x0383,
4327   0x038b, 0x038b,
4328   0x038d, 0x038d,
4329   0x03a2, 0x03a2,
4330   0x03cf, 0x03cf,
4331   0x0487, 0x0487,
4332   0x04cf, 0x04cf,
4333   0x04fa, 0x04ff,
4334   0x0510, 0x0530,
4335   0x0557, 0x0558,
4336   0x0560, 0x0560,
4337   0x0588, 0x0588,
4338   0x058b, 0x0590,
4339   0x05ba, 0x05ba,
4340   0x05c8, 0x05cf,
4341   0x05eb, 0x05ef,
4342   0x05f5, 0x05ff,
4343   0x0604, 0x060a,
4344   0x0616, 0x061a,
4345   0x061c, 0x061d,
4346   0x0620, 0x0620,
4347   0x063b, 0x063f,
4348   0x065f, 0x065f,
4349   0x070e, 0x070e,
4350   0x074b, 0x074c,
4351   0x076e, 0x077f,
4352   0x07b2, 0x0900,
4353   0x093a, 0x093b,
4354   0x094e, 0x094f,
4355   0x0955, 0x0957,
4356   0x0971, 0x097c,
4357   0x097e, 0x0980,
4358   0x0984, 0x0984,
4359   0x098d, 0x098e,
4360   0x0991, 0x0992,
4361   0x09a9, 0x09a9,
4362   0x09b1, 0x09b1,
4363   0x09b3, 0x09b5,
4364   0x09ba, 0x09bb,
4365   0x09c5, 0x09c6,
4366   0x09c9, 0x09ca,
4367   0x09cf, 0x09d6,
4368   0x09d8, 0x09db,
4369   0x09de, 0x09de,
4370   0x09e4, 0x09e5,
4371   0x09fb, 0x0a00,
4372   0x0a04, 0x0a04,
4373   0x0a0b, 0x0a0e,
4374   0x0a11, 0x0a12,
4375   0x0a29, 0x0a29,
4376   0x0a31, 0x0a31,
4377   0x0a34, 0x0a34,
4378   0x0a37, 0x0a37,
4379   0x0a3a, 0x0a3b,
4380   0x0a3d, 0x0a3d,
4381   0x0a43, 0x0a46,
4382   0x0a49, 0x0a4a,
4383   0x0a4e, 0x0a58,
4384   0x0a5d, 0x0a5d,
4385   0x0a5f, 0x0a65,
4386   0x0a75, 0x0a80,
4387   0x0a84, 0x0a84,
4388   0x0a8e, 0x0a8e,
4389   0x0a92, 0x0a92,
4390   0x0aa9, 0x0aa9,
4391   0x0ab1, 0x0ab1,
4392   0x0ab4, 0x0ab4,
4393   0x0aba, 0x0abb,
4394   0x0ac6, 0x0ac6,
4395   0x0aca, 0x0aca,
4396   0x0ace, 0x0acf,
4397   0x0ad1, 0x0adf,
4398   0x0ae4, 0x0ae5,
4399   0x0af0, 0x0af0,
4400   0x0af2, 0x0b00,
4401   0x0b04, 0x0b04,
4402   0x0b0d, 0x0b0e,
4403   0x0b11, 0x0b12,
4404   0x0b29, 0x0b29,
4405   0x0b31, 0x0b31,
4406   0x0b34, 0x0b34,
4407   0x0b3a, 0x0b3b,
4408   0x0b44, 0x0b46,
4409   0x0b49, 0x0b4a,
4410   0x0b4e, 0x0b55,
4411   0x0b58, 0x0b5b,
4412   0x0b5e, 0x0b5e,
4413   0x0b62, 0x0b65,
4414   0x0b72, 0x0b81,
4415   0x0b84, 0x0b84,
4416   0x0b8b, 0x0b8d,
4417   0x0b91, 0x0b91,
4418   0x0b96, 0x0b98,
4419   0x0b9b, 0x0b9b,
4420   0x0b9d, 0x0b9d,
4421   0x0ba0, 0x0ba2,
4422   0x0ba5, 0x0ba7,
4423   0x0bab, 0x0bad,
4424   0x0bba, 0x0bbd,
4425   0x0bc3, 0x0bc5,
4426   0x0bc9, 0x0bc9,
4427   0x0bce, 0x0bd6,
4428   0x0bd8, 0x0be5,
4429   0x0bfb, 0x0c00,
4430   0x0c04, 0x0c04,
4431   0x0c0d, 0x0c0d,
4432   0x0c11, 0x0c11,
4433   0x0c29, 0x0c29,
4434   0x0c34, 0x0c34,
4435   0x0c3a, 0x0c3d,
4436   0x0c45, 0x0c45,
4437   0x0c49, 0x0c49,
4438   0x0c4e, 0x0c54,
4439   0x0c57, 0x0c5f,
4440   0x0c62, 0x0c65,
4441   0x0c70, 0x0c81,
4442   0x0c84, 0x0c84,
4443   0x0c8d, 0x0c8d,
4444   0x0c91, 0x0c91,
4445   0x0ca9, 0x0ca9,
4446   0x0cb4, 0x0cb4,
4447   0x0cba, 0x0cbb,
4448   0x0cc5, 0x0cc5,
4449   0x0cc9, 0x0cc9,
4450   0x0cce, 0x0cd4,
4451   0x0cd7, 0x0cdd,
4452   0x0cdf, 0x0cdf,
4453   0x0ce2, 0x0ce5,
4454   0x0cf0, 0x0d01,
4455   0x0d04, 0x0d04,
4456   0x0d0d, 0x0d0d,
4457   0x0d11, 0x0d11,
4458   0x0d29, 0x0d29,
4459   0x0d3a, 0x0d3d,
4460   0x0d44, 0x0d45,
4461   0x0d49, 0x0d49,
4462   0x0d4e, 0x0d56,
4463   0x0d58, 0x0d5f,
4464   0x0d62, 0x0d65,
4465   0x0d70, 0x0d81,
4466   0x0d84, 0x0d84,
4467   0x0d97, 0x0d99,
4468   0x0db2, 0x0db2,
4469   0x0dbc, 0x0dbc,
4470   0x0dbe, 0x0dbf,
4471   0x0dc7, 0x0dc9,
4472   0x0dcb, 0x0dce,
4473   0x0dd5, 0x0dd5,
4474   0x0dd7, 0x0dd7,
4475   0x0de0, 0x0df1,
4476   0x0df5, 0x0e00,
4477   0x0e3b, 0x0e3e,
4478   0x0e5c, 0x0e80,
4479   0x0e83, 0x0e83,
4480   0x0e85, 0x0e86,
4481   0x0e89, 0x0e89,
4482   0x0e8b, 0x0e8c,
4483   0x0e8e, 0x0e93,
4484   0x0e98, 0x0e98,
4485   0x0ea0, 0x0ea0,
4486   0x0ea4, 0x0ea4,
4487   0x0ea6, 0x0ea6,
4488   0x0ea8, 0x0ea9,
4489   0x0eac, 0x0eac,
4490   0x0eba, 0x0eba,
4491   0x0ebe, 0x0ebf,
4492   0x0ec5, 0x0ec5,
4493   0x0ec7, 0x0ec7,
4494   0x0ece, 0x0ecf,
4495   0x0eda, 0x0edb,
4496   0x0ede, 0x0eff,
4497   0x0f48, 0x0f48,
4498   0x0f6b, 0x0f70,
4499   0x0f8c, 0x0f8f,
4500   0x0f98, 0x0f98,
4501   0x0fbd, 0x0fbd,
4502   0x0fcd, 0x0fce,
4503   0x0fd2, 0x0fff,
4504   0x1022, 0x1022,
4505   0x1028, 0x1028,
4506   0x102b, 0x102b,
4507   0x1033, 0x1035,
4508   0x103a, 0x103f,
4509   0x105a, 0x109f,
4510   0x10c6, 0x10cf,
4511   0x10fd, 0x10ff,
4512   0x115a, 0x115e,
4513   0x11a3, 0x11a7,
4514   0x11fa, 0x11ff,
4515   0x1249, 0x1249,
4516   0x124e, 0x124f,
4517   0x1257, 0x1257,
4518   0x1259, 0x1259,
4519   0x125e, 0x125f,
4520   0x1289, 0x1289,
4521   0x128e, 0x128f,
4522   0x12b1, 0x12b1,
4523   0x12b6, 0x12b7,
4524   0x12bf, 0x12bf,
4525   0x12c1, 0x12c1,
4526   0x12c6, 0x12c7,
4527   0x12d7, 0x12d7,
4528   0x1311, 0x1311,
4529   0x1316, 0x1317,
4530   0x135b, 0x135e,
4531   0x137d, 0x137f,
4532   0x139a, 0x139f,
4533   0x13f5, 0x1400,
4534   0x1677, 0x167f,
4535   0x169d, 0x169f,
4536   0x16f1, 0x16ff,
4537   0x170d, 0x170d,
4538   0x1715, 0x171f,
4539   0x1737, 0x173f,
4540   0x1754, 0x175f,
4541   0x176d, 0x176d,
4542   0x1771, 0x1771,
4543   0x1774, 0x177f,
4544   0x17de, 0x17df,
4545   0x17ea, 0x17ef,
4546   0x17fa, 0x17ff,
4547   0x180f, 0x180f,
4548   0x181a, 0x181f,
4549   0x1878, 0x187f,
4550   0x18aa, 0x18ff,
4551   0x191d, 0x191f,
4552   0x192c, 0x192f,
4553   0x193c, 0x193f,
4554   0x1941, 0x1943,
4555   0x196e, 0x196f,
4556   0x1975, 0x197f,
4557   0x19aa, 0x19af,
4558   0x19ca, 0x19cf,
4559   0x19da, 0x19dd,
4560   0x1a1c, 0x1a1d,
4561   0x1a20, 0x1cff,
4562   0x1dc4, 0x1dff,
4563   0x1e9c, 0x1e9f,
4564   0x1efa, 0x1eff,
4565   0x1f16, 0x1f17,
4566   0x1f1e, 0x1f1f,
4567   0x1f46, 0x1f47,
4568   0x1f4e, 0x1f4f,
4569   0x1f58, 0x1f58,
4570   0x1f5a, 0x1f5a,
4571   0x1f5c, 0x1f5c,
4572   0x1f5e, 0x1f5e,
4573   0x1f7e, 0x1f7f,
4574   0x1fb5, 0x1fb5,
4575   0x1fc5, 0x1fc5,
4576   0x1fd4, 0x1fd5,
4577   0x1fdc, 0x1fdc,
4578   0x1ff0, 0x1ff1,
4579   0x1ff5, 0x1ff5,
4580   0x1fff, 0x1fff,
4581   0x2064, 0x2069,
4582   0x2072, 0x2073,
4583   0x208f, 0x208f,
4584   0x2095, 0x209f,
4585   0x20b6, 0x20cf,
4586   0x20ec, 0x20ff,
4587   0x214d, 0x2152,
4588   0x2184, 0x218f,
4589   0x23dc, 0x23ff,
4590   0x2427, 0x243f,
4591   0x244b, 0x245f,
4592   0x269d, 0x269f,
4593   0x26b2, 0x2700,
4594   0x2705, 0x2705,
4595   0x270a, 0x270b,
4596   0x2728, 0x2728,
4597   0x274c, 0x274c,
4598   0x274e, 0x274e,
4599   0x2753, 0x2755,
4600   0x2757, 0x2757,
4601   0x275f, 0x2760,
4602   0x2795, 0x2797,
4603   0x27b0, 0x27b0,
4604   0x27bf, 0x27bf,
4605   0x27c7, 0x27cf,
4606   0x27ec, 0x27ef,
4607   0x2b14, 0x2bff,
4608   0x2c2f, 0x2c2f,
4609   0x2c5f, 0x2c7f,
4610   0x2ceb, 0x2cf8,
4611   0x2d26, 0x2d2f,
4612   0x2d66, 0x2d6e,
4613   0x2d70, 0x2d7f,
4614   0x2d97, 0x2d9f,
4615   0x2da7, 0x2da7,
4616   0x2daf, 0x2daf,
4617   0x2db7, 0x2db7,
4618   0x2dbf, 0x2dbf,
4619   0x2dc7, 0x2dc7,
4620   0x2dcf, 0x2dcf,
4621   0x2dd7, 0x2dd7,
4622   0x2ddf, 0x2dff,
4623   0x2e18, 0x2e1b,
4624   0x2e1e, 0x2e7f,
4625   0x2e9a, 0x2e9a,
4626   0x2ef4, 0x2eff,
4627   0x2fd6, 0x2fef,
4628   0x2ffc, 0x2fff,
4629   0x3040, 0x3040,
4630   0x3097, 0x3098,
4631   0x3100, 0x3104,
4632   0x312d, 0x3130,
4633   0x318f, 0x318f,
4634   0x31b8, 0x31bf,
4635   0x31d0, 0x31ef,
4636   0x321f, 0x321f,
4637   0x3244, 0x324f,
4638   0x32ff, 0x32ff,
4639   0x4db6, 0x4dbf,
4640   0x9fbc, 0x9fff,
4641   0xa48d, 0xa48f,
4642   0xa4c7, 0xa6ff,
4643   0xa717, 0xa7ff,
4644   0xa82c, 0xabff,
4645   0xd7a4, 0xd7ff,
4646   0xfa2e, 0xfa2f,
4647   0xfa6b, 0xfa6f,
4648   0xfada, 0xfaff,
4649   0xfb07, 0xfb12,
4650   0xfb18, 0xfb1c,
4651   0xfb37, 0xfb37,
4652   0xfb3d, 0xfb3d,
4653   0xfb3f, 0xfb3f,
4654   0xfb42, 0xfb42,
4655   0xfb45, 0xfb45,
4656   0xfbb2, 0xfbd2,
4657   0xfd40, 0xfd4f,
4658   0xfd90, 0xfd91,
4659   0xfdc8, 0xfdef,
4660   0xfdfe, 0xfdff,
4661   0xfe1a, 0xfe1f,
4662   0xfe24, 0xfe2f,
4663   0xfe53, 0xfe53,
4664   0xfe67, 0xfe67,
4665   0xfe6c, 0xfe6f,
4666   0xfe75, 0xfe75,
4667   0xfefd, 0xfefe,
4668   0xff00, 0xff00,
4669   0xffbf, 0xffc1,
4670   0xffc8, 0xffc9,
4671   0xffd0, 0xffd1,
4672   0xffd8, 0xffd9,
4673   0xffdd, 0xffdf,
4674   0xffe7, 0xffe7,
4675   0xffef, 0xfff8,
4676   0xfffe, 0xffff,
4677   0x1000c, 0x1000c,
4678   0x10027, 0x10027,
4679   0x1003b, 0x1003b,
4680   0x1003e, 0x1003e,
4681   0x1004e, 0x1004f,
4682   0x1005e, 0x1007f,
4683   0x100fb, 0x100ff,
4684   0x10103, 0x10106,
4685   0x10134, 0x10136,
4686   0x1018b, 0x102ff,
4687   0x1031f, 0x1031f,
4688   0x10324, 0x1032f,
4689   0x1034b, 0x1037f,
4690   0x1039e, 0x1039e,
4691   0x103c4, 0x103c7,
4692   0x103d6, 0x103ff,
4693   0x1049e, 0x1049f,
4694   0x104aa, 0x107ff,
4695   0x10806, 0x10807,
4696   0x10809, 0x10809,
4697   0x10836, 0x10836,
4698   0x10839, 0x1083b,
4699   0x1083d, 0x1083e,
4700   0x10840, 0x109ff,
4701   0x10a04, 0x10a04,
4702   0x10a07, 0x10a0b,
4703   0x10a14, 0x10a14,
4704   0x10a18, 0x10a18,
4705   0x10a34, 0x10a37,
4706   0x10a3b, 0x10a3e,
4707   0x10a48, 0x10a4f,
4708   0x10a59, 0x1cfff,
4709   0x1d0f6, 0x1d0ff,
4710   0x1d127, 0x1d129,
4711   0x1d1de, 0x1d1ff,
4712   0x1d246, 0x1d2ff,
4713   0x1d357, 0x1d3ff,
4714   0x1d455, 0x1d455,
4715   0x1d49d, 0x1d49d,
4716   0x1d4a0, 0x1d4a1,
4717   0x1d4a3, 0x1d4a4,
4718   0x1d4a7, 0x1d4a8,
4719   0x1d4ad, 0x1d4ad,
4720   0x1d4ba, 0x1d4ba,
4721   0x1d4bc, 0x1d4bc,
4722   0x1d4c4, 0x1d4c4,
4723   0x1d506, 0x1d506,
4724   0x1d50b, 0x1d50c,
4725   0x1d515, 0x1d515,
4726   0x1d51d, 0x1d51d,
4727   0x1d53a, 0x1d53a,
4728   0x1d53f, 0x1d53f,
4729   0x1d545, 0x1d545,
4730   0x1d547, 0x1d549,
4731   0x1d551, 0x1d551,
4732   0x1d6a6, 0x1d6a7,
4733   0x1d7ca, 0x1d7cd,
4734   0x1d800, 0x1ffff,
4735   0x2a6d7, 0x2f7ff,
4736   0x2fa1e, 0xe0000,
4737   0xe0002, 0xe001f,
4738   0xe0080, 0xe00ff,
4739   0xe01f0, 0xeffff,
4740   0xffffe, 0xfffff,
4741   0x10fffe, 0x10ffff
4742 }; /* CR_Cn */
4743 
4744 /* 'Co': General Category */
4745 static const OnigCodePoint CR_Co[] = {
4746   3,
4747   0xe000, 0xf8ff,
4748   0xf0000, 0xffffd,
4749   0x100000, 0x10fffd
4750 }; /* CR_Co */
4751 
4752 /* 'Cs': General Category */
4753 static const OnigCodePoint CR_Cs[] = {
4754   1,
4755   0xd800, 0xdfff
4756 }; /* CR_Cs */
4757 
4758 /* 'L': Major Category */
4759 static const OnigCodePoint CR_L[] = {
4760   347,
4761   0x0041, 0x005a,
4762   0x0061, 0x007a,
4763   0x00aa, 0x00aa,
4764   0x00b5, 0x00b5,
4765   0x00ba, 0x00ba,
4766   0x00c0, 0x00d6,
4767   0x00d8, 0x00f6,
4768   0x00f8, 0x0241,
4769   0x0250, 0x02c1,
4770   0x02c6, 0x02d1,
4771   0x02e0, 0x02e4,
4772   0x02ee, 0x02ee,
4773   0x037a, 0x037a,
4774   0x0386, 0x0386,
4775   0x0388, 0x038a,
4776   0x038c, 0x038c,
4777   0x038e, 0x03a1,
4778   0x03a3, 0x03ce,
4779   0x03d0, 0x03f5,
4780   0x03f7, 0x0481,
4781   0x048a, 0x04ce,
4782   0x04d0, 0x04f9,
4783   0x0500, 0x050f,
4784   0x0531, 0x0556,
4785   0x0559, 0x0559,
4786   0x0561, 0x0587,
4787   0x05d0, 0x05ea,
4788   0x05f0, 0x05f2,
4789   0x0621, 0x063a,
4790   0x0640, 0x064a,
4791   0x066e, 0x066f,
4792   0x0671, 0x06d3,
4793   0x06d5, 0x06d5,
4794   0x06e5, 0x06e6,
4795   0x06ee, 0x06ef,
4796   0x06fa, 0x06fc,
4797   0x06ff, 0x06ff,
4798   0x0710, 0x0710,
4799   0x0712, 0x072f,
4800   0x074d, 0x076d,
4801   0x0780, 0x07a5,
4802   0x07b1, 0x07b1,
4803   0x0904, 0x0939,
4804   0x093d, 0x093d,
4805   0x0950, 0x0950,
4806   0x0958, 0x0961,
4807   0x097d, 0x097d,
4808   0x0985, 0x098c,
4809   0x098f, 0x0990,
4810   0x0993, 0x09a8,
4811   0x09aa, 0x09b0,
4812   0x09b2, 0x09b2,
4813   0x09b6, 0x09b9,
4814   0x09bd, 0x09bd,
4815   0x09ce, 0x09ce,
4816   0x09dc, 0x09dd,
4817   0x09df, 0x09e1,
4818   0x09f0, 0x09f1,
4819   0x0a05, 0x0a0a,
4820   0x0a0f, 0x0a10,
4821   0x0a13, 0x0a28,
4822   0x0a2a, 0x0a30,
4823   0x0a32, 0x0a33,
4824   0x0a35, 0x0a36,
4825   0x0a38, 0x0a39,
4826   0x0a59, 0x0a5c,
4827   0x0a5e, 0x0a5e,
4828   0x0a72, 0x0a74,
4829   0x0a85, 0x0a8d,
4830   0x0a8f, 0x0a91,
4831   0x0a93, 0x0aa8,
4832   0x0aaa, 0x0ab0,
4833   0x0ab2, 0x0ab3,
4834   0x0ab5, 0x0ab9,
4835   0x0abd, 0x0abd,
4836   0x0ad0, 0x0ad0,
4837   0x0ae0, 0x0ae1,
4838   0x0b05, 0x0b0c,
4839   0x0b0f, 0x0b10,
4840   0x0b13, 0x0b28,
4841   0x0b2a, 0x0b30,
4842   0x0b32, 0x0b33,
4843   0x0b35, 0x0b39,
4844   0x0b3d, 0x0b3d,
4845   0x0b5c, 0x0b5d,
4846   0x0b5f, 0x0b61,
4847   0x0b71, 0x0b71,
4848   0x0b83, 0x0b83,
4849   0x0b85, 0x0b8a,
4850   0x0b8e, 0x0b90,
4851   0x0b92, 0x0b95,
4852   0x0b99, 0x0b9a,
4853   0x0b9c, 0x0b9c,
4854   0x0b9e, 0x0b9f,
4855   0x0ba3, 0x0ba4,
4856   0x0ba8, 0x0baa,
4857   0x0bae, 0x0bb9,
4858   0x0c05, 0x0c0c,
4859   0x0c0e, 0x0c10,
4860   0x0c12, 0x0c28,
4861   0x0c2a, 0x0c33,
4862   0x0c35, 0x0c39,
4863   0x0c60, 0x0c61,
4864   0x0c85, 0x0c8c,
4865   0x0c8e, 0x0c90,
4866   0x0c92, 0x0ca8,
4867   0x0caa, 0x0cb3,
4868   0x0cb5, 0x0cb9,
4869   0x0cbd, 0x0cbd,
4870   0x0cde, 0x0cde,
4871   0x0ce0, 0x0ce1,
4872   0x0d05, 0x0d0c,
4873   0x0d0e, 0x0d10,
4874   0x0d12, 0x0d28,
4875   0x0d2a, 0x0d39,
4876   0x0d60, 0x0d61,
4877   0x0d85, 0x0d96,
4878   0x0d9a, 0x0db1,
4879   0x0db3, 0x0dbb,
4880   0x0dbd, 0x0dbd,
4881   0x0dc0, 0x0dc6,
4882   0x0e01, 0x0e30,
4883   0x0e32, 0x0e33,
4884   0x0e40, 0x0e46,
4885   0x0e81, 0x0e82,
4886   0x0e84, 0x0e84,
4887   0x0e87, 0x0e88,
4888   0x0e8a, 0x0e8a,
4889   0x0e8d, 0x0e8d,
4890   0x0e94, 0x0e97,
4891   0x0e99, 0x0e9f,
4892   0x0ea1, 0x0ea3,
4893   0x0ea5, 0x0ea5,
4894   0x0ea7, 0x0ea7,
4895   0x0eaa, 0x0eab,
4896   0x0ead, 0x0eb0,
4897   0x0eb2, 0x0eb3,
4898   0x0ebd, 0x0ebd,
4899   0x0ec0, 0x0ec4,
4900   0x0ec6, 0x0ec6,
4901   0x0edc, 0x0edd,
4902   0x0f00, 0x0f00,
4903   0x0f40, 0x0f47,
4904   0x0f49, 0x0f6a,
4905   0x0f88, 0x0f8b,
4906   0x1000, 0x1021,
4907   0x1023, 0x1027,
4908   0x1029, 0x102a,
4909   0x1050, 0x1055,
4910   0x10a0, 0x10c5,
4911   0x10d0, 0x10fa,
4912   0x10fc, 0x10fc,
4913   0x1100, 0x1159,
4914   0x115f, 0x11a2,
4915   0x11a8, 0x11f9,
4916   0x1200, 0x1248,
4917   0x124a, 0x124d,
4918   0x1250, 0x1256,
4919   0x1258, 0x1258,
4920   0x125a, 0x125d,
4921   0x1260, 0x1288,
4922   0x128a, 0x128d,
4923   0x1290, 0x12b0,
4924   0x12b2, 0x12b5,
4925   0x12b8, 0x12be,
4926   0x12c0, 0x12c0,
4927   0x12c2, 0x12c5,
4928   0x12c8, 0x12d6,
4929   0x12d8, 0x1310,
4930   0x1312, 0x1315,
4931   0x1318, 0x135a,
4932   0x1380, 0x138f,
4933   0x13a0, 0x13f4,
4934   0x1401, 0x166c,
4935   0x166f, 0x1676,
4936   0x1681, 0x169a,
4937   0x16a0, 0x16ea,
4938   0x1700, 0x170c,
4939   0x170e, 0x1711,
4940   0x1720, 0x1731,
4941   0x1740, 0x1751,
4942   0x1760, 0x176c,
4943   0x176e, 0x1770,
4944   0x1780, 0x17b3,
4945   0x17d7, 0x17d7,
4946   0x17dc, 0x17dc,
4947   0x1820, 0x1877,
4948   0x1880, 0x18a8,
4949   0x1900, 0x191c,
4950   0x1950, 0x196d,
4951   0x1970, 0x1974,
4952   0x1980, 0x19a9,
4953   0x19c1, 0x19c7,
4954   0x1a00, 0x1a16,
4955   0x1d00, 0x1dbf,
4956   0x1e00, 0x1e9b,
4957   0x1ea0, 0x1ef9,
4958   0x1f00, 0x1f15,
4959   0x1f18, 0x1f1d,
4960   0x1f20, 0x1f45,
4961   0x1f48, 0x1f4d,
4962   0x1f50, 0x1f57,
4963   0x1f59, 0x1f59,
4964   0x1f5b, 0x1f5b,
4965   0x1f5d, 0x1f5d,
4966   0x1f5f, 0x1f7d,
4967   0x1f80, 0x1fb4,
4968   0x1fb6, 0x1fbc,
4969   0x1fbe, 0x1fbe,
4970   0x1fc2, 0x1fc4,
4971   0x1fc6, 0x1fcc,
4972   0x1fd0, 0x1fd3,
4973   0x1fd6, 0x1fdb,
4974   0x1fe0, 0x1fec,
4975   0x1ff2, 0x1ff4,
4976   0x1ff6, 0x1ffc,
4977   0x2071, 0x2071,
4978   0x207f, 0x207f,
4979   0x2090, 0x2094,
4980   0x2102, 0x2102,
4981   0x2107, 0x2107,
4982   0x210a, 0x2113,
4983   0x2115, 0x2115,
4984   0x2119, 0x211d,
4985   0x2124, 0x2124,
4986   0x2126, 0x2126,
4987   0x2128, 0x2128,
4988   0x212a, 0x212d,
4989   0x212f, 0x2131,
4990   0x2133, 0x2139,
4991   0x213c, 0x213f,
4992   0x2145, 0x2149,
4993   0x2c00, 0x2c2e,
4994   0x2c30, 0x2c5e,
4995   0x2c80, 0x2ce4,
4996   0x2d00, 0x2d25,
4997   0x2d30, 0x2d65,
4998   0x2d6f, 0x2d6f,
4999   0x2d80, 0x2d96,
5000   0x2da0, 0x2da6,
5001   0x2da8, 0x2dae,
5002   0x2db0, 0x2db6,
5003   0x2db8, 0x2dbe,
5004   0x2dc0, 0x2dc6,
5005   0x2dc8, 0x2dce,
5006   0x2dd0, 0x2dd6,
5007   0x2dd8, 0x2dde,
5008   0x3005, 0x3006,
5009   0x3031, 0x3035,
5010   0x303b, 0x303c,
5011   0x3041, 0x3096,
5012   0x309d, 0x309f,
5013   0x30a1, 0x30fa,
5014   0x30fc, 0x30ff,
5015   0x3105, 0x312c,
5016   0x3131, 0x318e,
5017   0x31a0, 0x31b7,
5018   0x31f0, 0x31ff,
5019   0x3400, 0x4db5,
5020   0x4e00, 0x9fbb,
5021   0xa000, 0xa48c,
5022   0xa800, 0xa801,
5023   0xa803, 0xa805,
5024   0xa807, 0xa80a,
5025   0xa80c, 0xa822,
5026   0xac00, 0xd7a3,
5027   0xf900, 0xfa2d,
5028   0xfa30, 0xfa6a,
5029   0xfa70, 0xfad9,
5030   0xfb00, 0xfb06,
5031   0xfb13, 0xfb17,
5032   0xfb1d, 0xfb1d,
5033   0xfb1f, 0xfb28,
5034   0xfb2a, 0xfb36,
5035   0xfb38, 0xfb3c,
5036   0xfb3e, 0xfb3e,
5037   0xfb40, 0xfb41,
5038   0xfb43, 0xfb44,
5039   0xfb46, 0xfbb1,
5040   0xfbd3, 0xfd3d,
5041   0xfd50, 0xfd8f,
5042   0xfd92, 0xfdc7,
5043   0xfdf0, 0xfdfb,
5044   0xfe70, 0xfe74,
5045   0xfe76, 0xfefc,
5046   0xff21, 0xff3a,
5047   0xff41, 0xff5a,
5048   0xff66, 0xffbe,
5049   0xffc2, 0xffc7,
5050   0xffca, 0xffcf,
5051   0xffd2, 0xffd7,
5052   0xffda, 0xffdc,
5053   0x10000, 0x1000b,
5054   0x1000d, 0x10026,
5055   0x10028, 0x1003a,
5056   0x1003c, 0x1003d,
5057   0x1003f, 0x1004d,
5058   0x10050, 0x1005d,
5059   0x10080, 0x100fa,
5060   0x10300, 0x1031e,
5061   0x10330, 0x10349,
5062   0x10380, 0x1039d,
5063   0x103a0, 0x103c3,
5064   0x103c8, 0x103cf,
5065   0x10400, 0x1049d,
5066   0x10800, 0x10805,
5067   0x10808, 0x10808,
5068   0x1080a, 0x10835,
5069   0x10837, 0x10838,
5070   0x1083c, 0x1083c,
5071   0x1083f, 0x1083f,
5072   0x10a00, 0x10a00,
5073   0x10a10, 0x10a13,
5074   0x10a15, 0x10a17,
5075   0x10a19, 0x10a33,
5076   0x1d400, 0x1d454,
5077   0x1d456, 0x1d49c,
5078   0x1d49e, 0x1d49f,
5079   0x1d4a2, 0x1d4a2,
5080   0x1d4a5, 0x1d4a6,
5081   0x1d4a9, 0x1d4ac,
5082   0x1d4ae, 0x1d4b9,
5083   0x1d4bb, 0x1d4bb,
5084   0x1d4bd, 0x1d4c3,
5085   0x1d4c5, 0x1d505,
5086   0x1d507, 0x1d50a,
5087   0x1d50d, 0x1d514,
5088   0x1d516, 0x1d51c,
5089   0x1d51e, 0x1d539,
5090   0x1d53b, 0x1d53e,
5091   0x1d540, 0x1d544,
5092   0x1d546, 0x1d546,
5093   0x1d54a, 0x1d550,
5094   0x1d552, 0x1d6a5,
5095   0x1d6a8, 0x1d6c0,
5096   0x1d6c2, 0x1d6da,
5097   0x1d6dc, 0x1d6fa,
5098   0x1d6fc, 0x1d714,
5099   0x1d716, 0x1d734,
5100   0x1d736, 0x1d74e,
5101   0x1d750, 0x1d76e,
5102   0x1d770, 0x1d788,
5103   0x1d78a, 0x1d7a8,
5104   0x1d7aa, 0x1d7c2,
5105   0x1d7c4, 0x1d7c9,
5106   0x20000, 0x2a6d6,
5107   0x2f800, 0x2fa1d
5108 }; /* CR_L */
5109 
5110 /* 'Ll': General Category */
5111 static const OnigCodePoint CR_Ll[] = {
5112   480,
5113   0x0061, 0x007a,
5114   0x00aa, 0x00aa,
5115   0x00b5, 0x00b5,
5116   0x00ba, 0x00ba,
5117   0x00df, 0x00f6,
5118   0x00f8, 0x00ff,
5119   0x0101, 0x0101,
5120   0x0103, 0x0103,
5121   0x0105, 0x0105,
5122   0x0107, 0x0107,
5123   0x0109, 0x0109,
5124   0x010b, 0x010b,
5125   0x010d, 0x010d,
5126   0x010f, 0x010f,
5127   0x0111, 0x0111,
5128   0x0113, 0x0113,
5129   0x0115, 0x0115,
5130   0x0117, 0x0117,
5131   0x0119, 0x0119,
5132   0x011b, 0x011b,
5133   0x011d, 0x011d,
5134   0x011f, 0x011f,
5135   0x0121, 0x0121,
5136   0x0123, 0x0123,
5137   0x0125, 0x0125,
5138   0x0127, 0x0127,
5139   0x0129, 0x0129,
5140   0x012b, 0x012b,
5141   0x012d, 0x012d,
5142   0x012f, 0x012f,
5143   0x0131, 0x0131,
5144   0x0133, 0x0133,
5145   0x0135, 0x0135,
5146   0x0137, 0x0138,
5147   0x013a, 0x013a,
5148   0x013c, 0x013c,
5149   0x013e, 0x013e,
5150   0x0140, 0x0140,
5151   0x0142, 0x0142,
5152   0x0144, 0x0144,
5153   0x0146, 0x0146,
5154   0x0148, 0x0149,
5155   0x014b, 0x014b,
5156   0x014d, 0x014d,
5157   0x014f, 0x014f,
5158   0x0151, 0x0151,
5159   0x0153, 0x0153,
5160   0x0155, 0x0155,
5161   0x0157, 0x0157,
5162   0x0159, 0x0159,
5163   0x015b, 0x015b,
5164   0x015d, 0x015d,
5165   0x015f, 0x015f,
5166   0x0161, 0x0161,
5167   0x0163, 0x0163,
5168   0x0165, 0x0165,
5169   0x0167, 0x0167,
5170   0x0169, 0x0169,
5171   0x016b, 0x016b,
5172   0x016d, 0x016d,
5173   0x016f, 0x016f,
5174   0x0171, 0x0171,
5175   0x0173, 0x0173,
5176   0x0175, 0x0175,
5177   0x0177, 0x0177,
5178   0x017a, 0x017a,
5179   0x017c, 0x017c,
5180   0x017e, 0x0180,
5181   0x0183, 0x0183,
5182   0x0185, 0x0185,
5183   0x0188, 0x0188,
5184   0x018c, 0x018d,
5185   0x0192, 0x0192,
5186   0x0195, 0x0195,
5187   0x0199, 0x019b,
5188   0x019e, 0x019e,
5189   0x01a1, 0x01a1,
5190   0x01a3, 0x01a3,
5191   0x01a5, 0x01a5,
5192   0x01a8, 0x01a8,
5193   0x01aa, 0x01ab,
5194   0x01ad, 0x01ad,
5195   0x01b0, 0x01b0,
5196   0x01b4, 0x01b4,
5197   0x01b6, 0x01b6,
5198   0x01b9, 0x01ba,
5199   0x01bd, 0x01bf,
5200   0x01c6, 0x01c6,
5201   0x01c9, 0x01c9,
5202   0x01cc, 0x01cc,
5203   0x01ce, 0x01ce,
5204   0x01d0, 0x01d0,
5205   0x01d2, 0x01d2,
5206   0x01d4, 0x01d4,
5207   0x01d6, 0x01d6,
5208   0x01d8, 0x01d8,
5209   0x01da, 0x01da,
5210   0x01dc, 0x01dd,
5211   0x01df, 0x01df,
5212   0x01e1, 0x01e1,
5213   0x01e3, 0x01e3,
5214   0x01e5, 0x01e5,
5215   0x01e7, 0x01e7,
5216   0x01e9, 0x01e9,
5217   0x01eb, 0x01eb,
5218   0x01ed, 0x01ed,
5219   0x01ef, 0x01f0,
5220   0x01f3, 0x01f3,
5221   0x01f5, 0x01f5,
5222   0x01f9, 0x01f9,
5223   0x01fb, 0x01fb,
5224   0x01fd, 0x01fd,
5225   0x01ff, 0x01ff,
5226   0x0201, 0x0201,
5227   0x0203, 0x0203,
5228   0x0205, 0x0205,
5229   0x0207, 0x0207,
5230   0x0209, 0x0209,
5231   0x020b, 0x020b,
5232   0x020d, 0x020d,
5233   0x020f, 0x020f,
5234   0x0211, 0x0211,
5235   0x0213, 0x0213,
5236   0x0215, 0x0215,
5237   0x0217, 0x0217,
5238   0x0219, 0x0219,
5239   0x021b, 0x021b,
5240   0x021d, 0x021d,
5241   0x021f, 0x021f,
5242   0x0221, 0x0221,
5243   0x0223, 0x0223,
5244   0x0225, 0x0225,
5245   0x0227, 0x0227,
5246   0x0229, 0x0229,
5247   0x022b, 0x022b,
5248   0x022d, 0x022d,
5249   0x022f, 0x022f,
5250   0x0231, 0x0231,
5251   0x0233, 0x0239,
5252   0x023c, 0x023c,
5253   0x023f, 0x0240,
5254   0x0250, 0x02af,
5255   0x0390, 0x0390,
5256   0x03ac, 0x03ce,
5257   0x03d0, 0x03d1,
5258   0x03d5, 0x03d7,
5259   0x03d9, 0x03d9,
5260   0x03db, 0x03db,
5261   0x03dd, 0x03dd,
5262   0x03df, 0x03df,
5263   0x03e1, 0x03e1,
5264   0x03e3, 0x03e3,
5265   0x03e5, 0x03e5,
5266   0x03e7, 0x03e7,
5267   0x03e9, 0x03e9,
5268   0x03eb, 0x03eb,
5269   0x03ed, 0x03ed,
5270   0x03ef, 0x03f3,
5271   0x03f5, 0x03f5,
5272   0x03f8, 0x03f8,
5273   0x03fb, 0x03fc,
5274   0x0430, 0x045f,
5275   0x0461, 0x0461,
5276   0x0463, 0x0463,
5277   0x0465, 0x0465,
5278   0x0467, 0x0467,
5279   0x0469, 0x0469,
5280   0x046b, 0x046b,
5281   0x046d, 0x046d,
5282   0x046f, 0x046f,
5283   0x0471, 0x0471,
5284   0x0473, 0x0473,
5285   0x0475, 0x0475,
5286   0x0477, 0x0477,
5287   0x0479, 0x0479,
5288   0x047b, 0x047b,
5289   0x047d, 0x047d,
5290   0x047f, 0x047f,
5291   0x0481, 0x0481,
5292   0x048b, 0x048b,
5293   0x048d, 0x048d,
5294   0x048f, 0x048f,
5295   0x0491, 0x0491,
5296   0x0493, 0x0493,
5297   0x0495, 0x0495,
5298   0x0497, 0x0497,
5299   0x0499, 0x0499,
5300   0x049b, 0x049b,
5301   0x049d, 0x049d,
5302   0x049f, 0x049f,
5303   0x04a1, 0x04a1,
5304   0x04a3, 0x04a3,
5305   0x04a5, 0x04a5,
5306   0x04a7, 0x04a7,
5307   0x04a9, 0x04a9,
5308   0x04ab, 0x04ab,
5309   0x04ad, 0x04ad,
5310   0x04af, 0x04af,
5311   0x04b1, 0x04b1,
5312   0x04b3, 0x04b3,
5313   0x04b5, 0x04b5,
5314   0x04b7, 0x04b7,
5315   0x04b9, 0x04b9,
5316   0x04bb, 0x04bb,
5317   0x04bd, 0x04bd,
5318   0x04bf, 0x04bf,
5319   0x04c2, 0x04c2,
5320   0x04c4, 0x04c4,
5321   0x04c6, 0x04c6,
5322   0x04c8, 0x04c8,
5323   0x04ca, 0x04ca,
5324   0x04cc, 0x04cc,
5325   0x04ce, 0x04ce,
5326   0x04d1, 0x04d1,
5327   0x04d3, 0x04d3,
5328   0x04d5, 0x04d5,
5329   0x04d7, 0x04d7,
5330   0x04d9, 0x04d9,
5331   0x04db, 0x04db,
5332   0x04dd, 0x04dd,
5333   0x04df, 0x04df,
5334   0x04e1, 0x04e1,
5335   0x04e3, 0x04e3,
5336   0x04e5, 0x04e5,
5337   0x04e7, 0x04e7,
5338   0x04e9, 0x04e9,
5339   0x04eb, 0x04eb,
5340   0x04ed, 0x04ed,
5341   0x04ef, 0x04ef,
5342   0x04f1, 0x04f1,
5343   0x04f3, 0x04f3,
5344   0x04f5, 0x04f5,
5345   0x04f7, 0x04f7,
5346   0x04f9, 0x04f9,
5347   0x0501, 0x0501,
5348   0x0503, 0x0503,
5349   0x0505, 0x0505,
5350   0x0507, 0x0507,
5351   0x0509, 0x0509,
5352   0x050b, 0x050b,
5353   0x050d, 0x050d,
5354   0x050f, 0x050f,
5355   0x0561, 0x0587,
5356   0x1d00, 0x1d2b,
5357   0x1d62, 0x1d77,
5358   0x1d79, 0x1d9a,
5359   0x1e01, 0x1e01,
5360   0x1e03, 0x1e03,
5361   0x1e05, 0x1e05,
5362   0x1e07, 0x1e07,
5363   0x1e09, 0x1e09,
5364   0x1e0b, 0x1e0b,
5365   0x1e0d, 0x1e0d,
5366   0x1e0f, 0x1e0f,
5367   0x1e11, 0x1e11,
5368   0x1e13, 0x1e13,
5369   0x1e15, 0x1e15,
5370   0x1e17, 0x1e17,
5371   0x1e19, 0x1e19,
5372   0x1e1b, 0x1e1b,
5373   0x1e1d, 0x1e1d,
5374   0x1e1f, 0x1e1f,
5375   0x1e21, 0x1e21,
5376   0x1e23, 0x1e23,
5377   0x1e25, 0x1e25,
5378   0x1e27, 0x1e27,
5379   0x1e29, 0x1e29,
5380   0x1e2b, 0x1e2b,
5381   0x1e2d, 0x1e2d,
5382   0x1e2f, 0x1e2f,
5383   0x1e31, 0x1e31,
5384   0x1e33, 0x1e33,
5385   0x1e35, 0x1e35,
5386   0x1e37, 0x1e37,
5387   0x1e39, 0x1e39,
5388   0x1e3b, 0x1e3b,
5389   0x1e3d, 0x1e3d,
5390   0x1e3f, 0x1e3f,
5391   0x1e41, 0x1e41,
5392   0x1e43, 0x1e43,
5393   0x1e45, 0x1e45,
5394   0x1e47, 0x1e47,
5395   0x1e49, 0x1e49,
5396   0x1e4b, 0x1e4b,
5397   0x1e4d, 0x1e4d,
5398   0x1e4f, 0x1e4f,
5399   0x1e51, 0x1e51,
5400   0x1e53, 0x1e53,
5401   0x1e55, 0x1e55,
5402   0x1e57, 0x1e57,
5403   0x1e59, 0x1e59,
5404   0x1e5b, 0x1e5b,
5405   0x1e5d, 0x1e5d,
5406   0x1e5f, 0x1e5f,
5407   0x1e61, 0x1e61,
5408   0x1e63, 0x1e63,
5409   0x1e65, 0x1e65,
5410   0x1e67, 0x1e67,
5411   0x1e69, 0x1e69,
5412   0x1e6b, 0x1e6b,
5413   0x1e6d, 0x1e6d,
5414   0x1e6f, 0x1e6f,
5415   0x1e71, 0x1e71,
5416   0x1e73, 0x1e73,
5417   0x1e75, 0x1e75,
5418   0x1e77, 0x1e77,
5419   0x1e79, 0x1e79,
5420   0x1e7b, 0x1e7b,
5421   0x1e7d, 0x1e7d,
5422   0x1e7f, 0x1e7f,
5423   0x1e81, 0x1e81,
5424   0x1e83, 0x1e83,
5425   0x1e85, 0x1e85,
5426   0x1e87, 0x1e87,
5427   0x1e89, 0x1e89,
5428   0x1e8b, 0x1e8b,
5429   0x1e8d, 0x1e8d,
5430   0x1e8f, 0x1e8f,
5431   0x1e91, 0x1e91,
5432   0x1e93, 0x1e93,
5433   0x1e95, 0x1e9b,
5434   0x1ea1, 0x1ea1,
5435   0x1ea3, 0x1ea3,
5436   0x1ea5, 0x1ea5,
5437   0x1ea7, 0x1ea7,
5438   0x1ea9, 0x1ea9,
5439   0x1eab, 0x1eab,
5440   0x1ead, 0x1ead,
5441   0x1eaf, 0x1eaf,
5442   0x1eb1, 0x1eb1,
5443   0x1eb3, 0x1eb3,
5444   0x1eb5, 0x1eb5,
5445   0x1eb7, 0x1eb7,
5446   0x1eb9, 0x1eb9,
5447   0x1ebb, 0x1ebb,
5448   0x1ebd, 0x1ebd,
5449   0x1ebf, 0x1ebf,
5450   0x1ec1, 0x1ec1,
5451   0x1ec3, 0x1ec3,
5452   0x1ec5, 0x1ec5,
5453   0x1ec7, 0x1ec7,
5454   0x1ec9, 0x1ec9,
5455   0x1ecb, 0x1ecb,
5456   0x1ecd, 0x1ecd,
5457   0x1ecf, 0x1ecf,
5458   0x1ed1, 0x1ed1,
5459   0x1ed3, 0x1ed3,
5460   0x1ed5, 0x1ed5,
5461   0x1ed7, 0x1ed7,
5462   0x1ed9, 0x1ed9,
5463   0x1edb, 0x1edb,
5464   0x1edd, 0x1edd,
5465   0x1edf, 0x1edf,
5466   0x1ee1, 0x1ee1,
5467   0x1ee3, 0x1ee3,
5468   0x1ee5, 0x1ee5,
5469   0x1ee7, 0x1ee7,
5470   0x1ee9, 0x1ee9,
5471   0x1eeb, 0x1eeb,
5472   0x1eed, 0x1eed,
5473   0x1eef, 0x1eef,
5474   0x1ef1, 0x1ef1,
5475   0x1ef3, 0x1ef3,
5476   0x1ef5, 0x1ef5,
5477   0x1ef7, 0x1ef7,
5478   0x1ef9, 0x1ef9,
5479   0x1f00, 0x1f07,
5480   0x1f10, 0x1f15,
5481   0x1f20, 0x1f27,
5482   0x1f30, 0x1f37,
5483   0x1f40, 0x1f45,
5484   0x1f50, 0x1f57,
5485   0x1f60, 0x1f67,
5486   0x1f70, 0x1f7d,
5487   0x1f80, 0x1f87,
5488   0x1f90, 0x1f97,
5489   0x1fa0, 0x1fa7,
5490   0x1fb0, 0x1fb4,
5491   0x1fb6, 0x1fb7,
5492   0x1fbe, 0x1fbe,
5493   0x1fc2, 0x1fc4,
5494   0x1fc6, 0x1fc7,
5495   0x1fd0, 0x1fd3,
5496   0x1fd6, 0x1fd7,
5497   0x1fe0, 0x1fe7,
5498   0x1ff2, 0x1ff4,
5499   0x1ff6, 0x1ff7,
5500   0x2071, 0x2071,
5501   0x207f, 0x207f,
5502   0x210a, 0x210a,
5503   0x210e, 0x210f,
5504   0x2113, 0x2113,
5505   0x212f, 0x212f,
5506   0x2134, 0x2134,
5507   0x2139, 0x2139,
5508   0x213c, 0x213d,
5509   0x2146, 0x2149,
5510   0x2c30, 0x2c5e,
5511   0x2c81, 0x2c81,
5512   0x2c83, 0x2c83,
5513   0x2c85, 0x2c85,
5514   0x2c87, 0x2c87,
5515   0x2c89, 0x2c89,
5516   0x2c8b, 0x2c8b,
5517   0x2c8d, 0x2c8d,
5518   0x2c8f, 0x2c8f,
5519   0x2c91, 0x2c91,
5520   0x2c93, 0x2c93,
5521   0x2c95, 0x2c95,
5522   0x2c97, 0x2c97,
5523   0x2c99, 0x2c99,
5524   0x2c9b, 0x2c9b,
5525   0x2c9d, 0x2c9d,
5526   0x2c9f, 0x2c9f,
5527   0x2ca1, 0x2ca1,
5528   0x2ca3, 0x2ca3,
5529   0x2ca5, 0x2ca5,
5530   0x2ca7, 0x2ca7,
5531   0x2ca9, 0x2ca9,
5532   0x2cab, 0x2cab,
5533   0x2cad, 0x2cad,
5534   0x2caf, 0x2caf,
5535   0x2cb1, 0x2cb1,
5536   0x2cb3, 0x2cb3,
5537   0x2cb5, 0x2cb5,
5538   0x2cb7, 0x2cb7,
5539   0x2cb9, 0x2cb9,
5540   0x2cbb, 0x2cbb,
5541   0x2cbd, 0x2cbd,
5542   0x2cbf, 0x2cbf,
5543   0x2cc1, 0x2cc1,
5544   0x2cc3, 0x2cc3,
5545   0x2cc5, 0x2cc5,
5546   0x2cc7, 0x2cc7,
5547   0x2cc9, 0x2cc9,
5548   0x2ccb, 0x2ccb,
5549   0x2ccd, 0x2ccd,
5550   0x2ccf, 0x2ccf,
5551   0x2cd1, 0x2cd1,
5552   0x2cd3, 0x2cd3,
5553   0x2cd5, 0x2cd5,
5554   0x2cd7, 0x2cd7,
5555   0x2cd9, 0x2cd9,
5556   0x2cdb, 0x2cdb,
5557   0x2cdd, 0x2cdd,
5558   0x2cdf, 0x2cdf,
5559   0x2ce1, 0x2ce1,
5560   0x2ce3, 0x2ce4,
5561   0x2d00, 0x2d25,
5562   0xfb00, 0xfb06,
5563   0xfb13, 0xfb17,
5564   0xff41, 0xff5a,
5565   0x10428, 0x1044f,
5566   0x1d41a, 0x1d433,
5567   0x1d44e, 0x1d454,
5568   0x1d456, 0x1d467,
5569   0x1d482, 0x1d49b,
5570   0x1d4b6, 0x1d4b9,
5571   0x1d4bb, 0x1d4bb,
5572   0x1d4bd, 0x1d4c3,
5573   0x1d4c5, 0x1d4cf,
5574   0x1d4ea, 0x1d503,
5575   0x1d51e, 0x1d537,
5576   0x1d552, 0x1d56b,
5577   0x1d586, 0x1d59f,
5578   0x1d5ba, 0x1d5d3,
5579   0x1d5ee, 0x1d607,
5580   0x1d622, 0x1d63b,
5581   0x1d656, 0x1d66f,
5582   0x1d68a, 0x1d6a5,
5583   0x1d6c2, 0x1d6da,
5584   0x1d6dc, 0x1d6e1,
5585   0x1d6fc, 0x1d714,
5586   0x1d716, 0x1d71b,
5587   0x1d736, 0x1d74e,
5588   0x1d750, 0x1d755,
5589   0x1d770, 0x1d788,
5590   0x1d78a, 0x1d78f,
5591   0x1d7aa, 0x1d7c2,
5592   0x1d7c4, 0x1d7c9
5593 }; /* CR_Ll */
5594 
5595 /* 'Lm': General Category */
5596 static const OnigCodePoint CR_Lm[] = {
5597   26,
5598   0x02b0, 0x02c1,
5599   0x02c6, 0x02d1,
5600   0x02e0, 0x02e4,
5601   0x02ee, 0x02ee,
5602   0x037a, 0x037a,
5603   0x0559, 0x0559,
5604   0x0640, 0x0640,
5605   0x06e5, 0x06e6,
5606   0x0e46, 0x0e46,
5607   0x0ec6, 0x0ec6,
5608   0x10fc, 0x10fc,
5609   0x17d7, 0x17d7,
5610   0x1843, 0x1843,
5611   0x1d2c, 0x1d61,
5612   0x1d78, 0x1d78,
5613   0x1d9b, 0x1dbf,
5614   0x2090, 0x2094,
5615   0x2d6f, 0x2d6f,
5616   0x3005, 0x3005,
5617   0x3031, 0x3035,
5618   0x303b, 0x303b,
5619   0x309d, 0x309e,
5620   0x30fc, 0x30fe,
5621   0xa015, 0xa015,
5622   0xff70, 0xff70,
5623   0xff9e, 0xff9f
5624 }; /* CR_Lm */
5625 
5626 /* 'Lo': General Category */
5627 static const OnigCodePoint CR_Lo[] = {
5628   245,
5629   0x01bb, 0x01bb,
5630   0x01c0, 0x01c3,
5631   0x05d0, 0x05ea,
5632   0x05f0, 0x05f2,
5633   0x0621, 0x063a,
5634   0x0641, 0x064a,
5635   0x066e, 0x066f,
5636   0x0671, 0x06d3,
5637   0x06d5, 0x06d5,
5638   0x06ee, 0x06ef,
5639   0x06fa, 0x06fc,
5640   0x06ff, 0x06ff,
5641   0x0710, 0x0710,
5642   0x0712, 0x072f,
5643   0x074d, 0x076d,
5644   0x0780, 0x07a5,
5645   0x07b1, 0x07b1,
5646   0x0904, 0x0939,
5647   0x093d, 0x093d,
5648   0x0950, 0x0950,
5649   0x0958, 0x0961,
5650   0x097d, 0x097d,
5651   0x0985, 0x098c,
5652   0x098f, 0x0990,
5653   0x0993, 0x09a8,
5654   0x09aa, 0x09b0,
5655   0x09b2, 0x09b2,
5656   0x09b6, 0x09b9,
5657   0x09bd, 0x09bd,
5658   0x09ce, 0x09ce,
5659   0x09dc, 0x09dd,
5660   0x09df, 0x09e1,
5661   0x09f0, 0x09f1,
5662   0x0a05, 0x0a0a,
5663   0x0a0f, 0x0a10,
5664   0x0a13, 0x0a28,
5665   0x0a2a, 0x0a30,
5666   0x0a32, 0x0a33,
5667   0x0a35, 0x0a36,
5668   0x0a38, 0x0a39,
5669   0x0a59, 0x0a5c,
5670   0x0a5e, 0x0a5e,
5671   0x0a72, 0x0a74,
5672   0x0a85, 0x0a8d,
5673   0x0a8f, 0x0a91,
5674   0x0a93, 0x0aa8,
5675   0x0aaa, 0x0ab0,
5676   0x0ab2, 0x0ab3,
5677   0x0ab5, 0x0ab9,
5678   0x0abd, 0x0abd,
5679   0x0ad0, 0x0ad0,
5680   0x0ae0, 0x0ae1,
5681   0x0b05, 0x0b0c,
5682   0x0b0f, 0x0b10,
5683   0x0b13, 0x0b28,
5684   0x0b2a, 0x0b30,
5685   0x0b32, 0x0b33,
5686   0x0b35, 0x0b39,
5687   0x0b3d, 0x0b3d,
5688   0x0b5c, 0x0b5d,
5689   0x0b5f, 0x0b61,
5690   0x0b71, 0x0b71,
5691   0x0b83, 0x0b83,
5692   0x0b85, 0x0b8a,
5693   0x0b8e, 0x0b90,
5694   0x0b92, 0x0b95,
5695   0x0b99, 0x0b9a,
5696   0x0b9c, 0x0b9c,
5697   0x0b9e, 0x0b9f,
5698   0x0ba3, 0x0ba4,
5699   0x0ba8, 0x0baa,
5700   0x0bae, 0x0bb9,
5701   0x0c05, 0x0c0c,
5702   0x0c0e, 0x0c10,
5703   0x0c12, 0x0c28,
5704   0x0c2a, 0x0c33,
5705   0x0c35, 0x0c39,
5706   0x0c60, 0x0c61,
5707   0x0c85, 0x0c8c,
5708   0x0c8e, 0x0c90,
5709   0x0c92, 0x0ca8,
5710   0x0caa, 0x0cb3,
5711   0x0cb5, 0x0cb9,
5712   0x0cbd, 0x0cbd,
5713   0x0cde, 0x0cde,
5714   0x0ce0, 0x0ce1,
5715   0x0d05, 0x0d0c,
5716   0x0d0e, 0x0d10,
5717   0x0d12, 0x0d28,
5718   0x0d2a, 0x0d39,
5719   0x0d60, 0x0d61,
5720   0x0d85, 0x0d96,
5721   0x0d9a, 0x0db1,
5722   0x0db3, 0x0dbb,
5723   0x0dbd, 0x0dbd,
5724   0x0dc0, 0x0dc6,
5725   0x0e01, 0x0e30,
5726   0x0e32, 0x0e33,
5727   0x0e40, 0x0e45,
5728   0x0e81, 0x0e82,
5729   0x0e84, 0x0e84,
5730   0x0e87, 0x0e88,
5731   0x0e8a, 0x0e8a,
5732   0x0e8d, 0x0e8d,
5733   0x0e94, 0x0e97,
5734   0x0e99, 0x0e9f,
5735   0x0ea1, 0x0ea3,
5736   0x0ea5, 0x0ea5,
5737   0x0ea7, 0x0ea7,
5738   0x0eaa, 0x0eab,
5739   0x0ead, 0x0eb0,
5740   0x0eb2, 0x0eb3,
5741   0x0ebd, 0x0ebd,
5742   0x0ec0, 0x0ec4,
5743   0x0edc, 0x0edd,
5744   0x0f00, 0x0f00,
5745   0x0f40, 0x0f47,
5746   0x0f49, 0x0f6a,
5747   0x0f88, 0x0f8b,
5748   0x1000, 0x1021,
5749   0x1023, 0x1027,
5750   0x1029, 0x102a,
5751   0x1050, 0x1055,
5752   0x10d0, 0x10fa,
5753   0x1100, 0x1159,
5754   0x115f, 0x11a2,
5755   0x11a8, 0x11f9,
5756   0x1200, 0x1248,
5757   0x124a, 0x124d,
5758   0x1250, 0x1256,
5759   0x1258, 0x1258,
5760   0x125a, 0x125d,
5761   0x1260, 0x1288,
5762   0x128a, 0x128d,
5763   0x1290, 0x12b0,
5764   0x12b2, 0x12b5,
5765   0x12b8, 0x12be,
5766   0x12c0, 0x12c0,
5767   0x12c2, 0x12c5,
5768   0x12c8, 0x12d6,
5769   0x12d8, 0x1310,
5770   0x1312, 0x1315,
5771   0x1318, 0x135a,
5772   0x1380, 0x138f,
5773   0x13a0, 0x13f4,
5774   0x1401, 0x166c,
5775   0x166f, 0x1676,
5776   0x1681, 0x169a,
5777   0x16a0, 0x16ea,
5778   0x1700, 0x170c,
5779   0x170e, 0x1711,
5780   0x1720, 0x1731,
5781   0x1740, 0x1751,
5782   0x1760, 0x176c,
5783   0x176e, 0x1770,
5784   0x1780, 0x17b3,
5785   0x17dc, 0x17dc,
5786   0x1820, 0x1842,
5787   0x1844, 0x1877,
5788   0x1880, 0x18a8,
5789   0x1900, 0x191c,
5790   0x1950, 0x196d,
5791   0x1970, 0x1974,
5792   0x1980, 0x19a9,
5793   0x19c1, 0x19c7,
5794   0x1a00, 0x1a16,
5795   0x2135, 0x2138,
5796   0x2d30, 0x2d65,
5797   0x2d80, 0x2d96,
5798   0x2da0, 0x2da6,
5799   0x2da8, 0x2dae,
5800   0x2db0, 0x2db6,
5801   0x2db8, 0x2dbe,
5802   0x2dc0, 0x2dc6,
5803   0x2dc8, 0x2dce,
5804   0x2dd0, 0x2dd6,
5805   0x2dd8, 0x2dde,
5806   0x3006, 0x3006,
5807   0x303c, 0x303c,
5808   0x3041, 0x3096,
5809   0x309f, 0x309f,
5810   0x30a1, 0x30fa,
5811   0x30ff, 0x30ff,
5812   0x3105, 0x312c,
5813   0x3131, 0x318e,
5814   0x31a0, 0x31b7,
5815   0x31f0, 0x31ff,
5816   0x3400, 0x4db5,
5817   0x4e00, 0x9fbb,
5818   0xa000, 0xa014,
5819   0xa016, 0xa48c,
5820   0xa800, 0xa801,
5821   0xa803, 0xa805,
5822   0xa807, 0xa80a,
5823   0xa80c, 0xa822,
5824   0xac00, 0xd7a3,
5825   0xf900, 0xfa2d,
5826   0xfa30, 0xfa6a,
5827   0xfa70, 0xfad9,
5828   0xfb1d, 0xfb1d,
5829   0xfb1f, 0xfb28,
5830   0xfb2a, 0xfb36,
5831   0xfb38, 0xfb3c,
5832   0xfb3e, 0xfb3e,
5833   0xfb40, 0xfb41,
5834   0xfb43, 0xfb44,
5835   0xfb46, 0xfbb1,
5836   0xfbd3, 0xfd3d,
5837   0xfd50, 0xfd8f,
5838   0xfd92, 0xfdc7,
5839   0xfdf0, 0xfdfb,
5840   0xfe70, 0xfe74,
5841   0xfe76, 0xfefc,
5842   0xff66, 0xff6f,
5843   0xff71, 0xff9d,
5844   0xffa0, 0xffbe,
5845   0xffc2, 0xffc7,
5846   0xffca, 0xffcf,
5847   0xffd2, 0xffd7,
5848   0xffda, 0xffdc,
5849   0x10000, 0x1000b,
5850   0x1000d, 0x10026,
5851   0x10028, 0x1003a,
5852   0x1003c, 0x1003d,
5853   0x1003f, 0x1004d,
5854   0x10050, 0x1005d,
5855   0x10080, 0x100fa,
5856   0x10300, 0x1031e,
5857   0x10330, 0x10349,
5858   0x10380, 0x1039d,
5859   0x103a0, 0x103c3,
5860   0x103c8, 0x103cf,
5861   0x10450, 0x1049d,
5862   0x10800, 0x10805,
5863   0x10808, 0x10808,
5864   0x1080a, 0x10835,
5865   0x10837, 0x10838,
5866   0x1083c, 0x1083c,
5867   0x1083f, 0x1083f,
5868   0x10a00, 0x10a00,
5869   0x10a10, 0x10a13,
5870   0x10a15, 0x10a17,
5871   0x10a19, 0x10a33,
5872   0x20000, 0x2a6d6,
5873   0x2f800, 0x2fa1d
5874 }; /* CR_Lo */
5875 
5876 /* 'Lt': General Category */
5877 static const OnigCodePoint CR_Lt[] = {
5878   10,
5879   0x01c5, 0x01c5,
5880   0x01c8, 0x01c8,
5881   0x01cb, 0x01cb,
5882   0x01f2, 0x01f2,
5883   0x1f88, 0x1f8f,
5884   0x1f98, 0x1f9f,
5885   0x1fa8, 0x1faf,
5886   0x1fbc, 0x1fbc,
5887   0x1fcc, 0x1fcc,
5888   0x1ffc, 0x1ffc
5889 }; /* CR_Lt */
5890 
5891 /* 'Lu': General Category */
5892 static const OnigCodePoint CR_Lu[] = {
5893   476,
5894   0x0041, 0x005a,
5895   0x00c0, 0x00d6,
5896   0x00d8, 0x00de,
5897   0x0100, 0x0100,
5898   0x0102, 0x0102,
5899   0x0104, 0x0104,
5900   0x0106, 0x0106,
5901   0x0108, 0x0108,
5902   0x010a, 0x010a,
5903   0x010c, 0x010c,
5904   0x010e, 0x010e,
5905   0x0110, 0x0110,
5906   0x0112, 0x0112,
5907   0x0114, 0x0114,
5908   0x0116, 0x0116,
5909   0x0118, 0x0118,
5910   0x011a, 0x011a,
5911   0x011c, 0x011c,
5912   0x011e, 0x011e,
5913   0x0120, 0x0120,
5914   0x0122, 0x0122,
5915   0x0124, 0x0124,
5916   0x0126, 0x0126,
5917   0x0128, 0x0128,
5918   0x012a, 0x012a,
5919   0x012c, 0x012c,
5920   0x012e, 0x012e,
5921   0x0130, 0x0130,
5922   0x0132, 0x0132,
5923   0x0134, 0x0134,
5924   0x0136, 0x0136,
5925   0x0139, 0x0139,
5926   0x013b, 0x013b,
5927   0x013d, 0x013d,
5928   0x013f, 0x013f,
5929   0x0141, 0x0141,
5930   0x0143, 0x0143,
5931   0x0145, 0x0145,
5932   0x0147, 0x0147,
5933   0x014a, 0x014a,
5934   0x014c, 0x014c,
5935   0x014e, 0x014e,
5936   0x0150, 0x0150,
5937   0x0152, 0x0152,
5938   0x0154, 0x0154,
5939   0x0156, 0x0156,
5940   0x0158, 0x0158,
5941   0x015a, 0x015a,
5942   0x015c, 0x015c,
5943   0x015e, 0x015e,
5944   0x0160, 0x0160,
5945   0x0162, 0x0162,
5946   0x0164, 0x0164,
5947   0x0166, 0x0166,
5948   0x0168, 0x0168,
5949   0x016a, 0x016a,
5950   0x016c, 0x016c,
5951   0x016e, 0x016e,
5952   0x0170, 0x0170,
5953   0x0172, 0x0172,
5954   0x0174, 0x0174,
5955   0x0176, 0x0176,
5956   0x0178, 0x0179,
5957   0x017b, 0x017b,
5958   0x017d, 0x017d,
5959   0x0181, 0x0182,
5960   0x0184, 0x0184,
5961   0x0186, 0x0187,
5962   0x0189, 0x018b,
5963   0x018e, 0x0191,
5964   0x0193, 0x0194,
5965   0x0196, 0x0198,
5966   0x019c, 0x019d,
5967   0x019f, 0x01a0,
5968   0x01a2, 0x01a2,
5969   0x01a4, 0x01a4,
5970   0x01a6, 0x01a7,
5971   0x01a9, 0x01a9,
5972   0x01ac, 0x01ac,
5973   0x01ae, 0x01af,
5974   0x01b1, 0x01b3,
5975   0x01b5, 0x01b5,
5976   0x01b7, 0x01b8,
5977   0x01bc, 0x01bc,
5978   0x01c4, 0x01c4,
5979   0x01c7, 0x01c7,
5980   0x01ca, 0x01ca,
5981   0x01cd, 0x01cd,
5982   0x01cf, 0x01cf,
5983   0x01d1, 0x01d1,
5984   0x01d3, 0x01d3,
5985   0x01d5, 0x01d5,
5986   0x01d7, 0x01d7,
5987   0x01d9, 0x01d9,
5988   0x01db, 0x01db,
5989   0x01de, 0x01de,
5990   0x01e0, 0x01e0,
5991   0x01e2, 0x01e2,
5992   0x01e4, 0x01e4,
5993   0x01e6, 0x01e6,
5994   0x01e8, 0x01e8,
5995   0x01ea, 0x01ea,
5996   0x01ec, 0x01ec,
5997   0x01ee, 0x01ee,
5998   0x01f1, 0x01f1,
5999   0x01f4, 0x01f4,
6000   0x01f6, 0x01f8,
6001   0x01fa, 0x01fa,
6002   0x01fc, 0x01fc,
6003   0x01fe, 0x01fe,
6004   0x0200, 0x0200,
6005   0x0202, 0x0202,
6006   0x0204, 0x0204,
6007   0x0206, 0x0206,
6008   0x0208, 0x0208,
6009   0x020a, 0x020a,
6010   0x020c, 0x020c,
6011   0x020e, 0x020e,
6012   0x0210, 0x0210,
6013   0x0212, 0x0212,
6014   0x0214, 0x0214,
6015   0x0216, 0x0216,
6016   0x0218, 0x0218,
6017   0x021a, 0x021a,
6018   0x021c, 0x021c,
6019   0x021e, 0x021e,
6020   0x0220, 0x0220,
6021   0x0222, 0x0222,
6022   0x0224, 0x0224,
6023   0x0226, 0x0226,
6024   0x0228, 0x0228,
6025   0x022a, 0x022a,
6026   0x022c, 0x022c,
6027   0x022e, 0x022e,
6028   0x0230, 0x0230,
6029   0x0232, 0x0232,
6030   0x023a, 0x023b,
6031   0x023d, 0x023e,
6032   0x0241, 0x0241,
6033   0x0386, 0x0386,
6034   0x0388, 0x038a,
6035   0x038c, 0x038c,
6036   0x038e, 0x038f,
6037   0x0391, 0x03a1,
6038   0x03a3, 0x03ab,
6039   0x03d2, 0x03d4,
6040   0x03d8, 0x03d8,
6041   0x03da, 0x03da,
6042   0x03dc, 0x03dc,
6043   0x03de, 0x03de,
6044   0x03e0, 0x03e0,
6045   0x03e2, 0x03e2,
6046   0x03e4, 0x03e4,
6047   0x03e6, 0x03e6,
6048   0x03e8, 0x03e8,
6049   0x03ea, 0x03ea,
6050   0x03ec, 0x03ec,
6051   0x03ee, 0x03ee,
6052   0x03f4, 0x03f4,
6053   0x03f7, 0x03f7,
6054   0x03f9, 0x03fa,
6055   0x03fd, 0x042f,
6056   0x0460, 0x0460,
6057   0x0462, 0x0462,
6058   0x0464, 0x0464,
6059   0x0466, 0x0466,
6060   0x0468, 0x0468,
6061   0x046a, 0x046a,
6062   0x046c, 0x046c,
6063   0x046e, 0x046e,
6064   0x0470, 0x0470,
6065   0x0472, 0x0472,
6066   0x0474, 0x0474,
6067   0x0476, 0x0476,
6068   0x0478, 0x0478,
6069   0x047a, 0x047a,
6070   0x047c, 0x047c,
6071   0x047e, 0x047e,
6072   0x0480, 0x0480,
6073   0x048a, 0x048a,
6074   0x048c, 0x048c,
6075   0x048e, 0x048e,
6076   0x0490, 0x0490,
6077   0x0492, 0x0492,
6078   0x0494, 0x0494,
6079   0x0496, 0x0496,
6080   0x0498, 0x0498,
6081   0x049a, 0x049a,
6082   0x049c, 0x049c,
6083   0x049e, 0x049e,
6084   0x04a0, 0x04a0,
6085   0x04a2, 0x04a2,
6086   0x04a4, 0x04a4,
6087   0x04a6, 0x04a6,
6088   0x04a8, 0x04a8,
6089   0x04aa, 0x04aa,
6090   0x04ac, 0x04ac,
6091   0x04ae, 0x04ae,
6092   0x04b0, 0x04b0,
6093   0x04b2, 0x04b2,
6094   0x04b4, 0x04b4,
6095   0x04b6, 0x04b6,
6096   0x04b8, 0x04b8,
6097   0x04ba, 0x04ba,
6098   0x04bc, 0x04bc,
6099   0x04be, 0x04be,
6100   0x04c0, 0x04c1,
6101   0x04c3, 0x04c3,
6102   0x04c5, 0x04c5,
6103   0x04c7, 0x04c7,
6104   0x04c9, 0x04c9,
6105   0x04cb, 0x04cb,
6106   0x04cd, 0x04cd,
6107   0x04d0, 0x04d0,
6108   0x04d2, 0x04d2,
6109   0x04d4, 0x04d4,
6110   0x04d6, 0x04d6,
6111   0x04d8, 0x04d8,
6112   0x04da, 0x04da,
6113   0x04dc, 0x04dc,
6114   0x04de, 0x04de,
6115   0x04e0, 0x04e0,
6116   0x04e2, 0x04e2,
6117   0x04e4, 0x04e4,
6118   0x04e6, 0x04e6,
6119   0x04e8, 0x04e8,
6120   0x04ea, 0x04ea,
6121   0x04ec, 0x04ec,
6122   0x04ee, 0x04ee,
6123   0x04f0, 0x04f0,
6124   0x04f2, 0x04f2,
6125   0x04f4, 0x04f4,
6126   0x04f6, 0x04f6,
6127   0x04f8, 0x04f8,
6128   0x0500, 0x0500,
6129   0x0502, 0x0502,
6130   0x0504, 0x0504,
6131   0x0506, 0x0506,
6132   0x0508, 0x0508,
6133   0x050a, 0x050a,
6134   0x050c, 0x050c,
6135   0x050e, 0x050e,
6136   0x0531, 0x0556,
6137   0x10a0, 0x10c5,
6138   0x1e00, 0x1e00,
6139   0x1e02, 0x1e02,
6140   0x1e04, 0x1e04,
6141   0x1e06, 0x1e06,
6142   0x1e08, 0x1e08,
6143   0x1e0a, 0x1e0a,
6144   0x1e0c, 0x1e0c,
6145   0x1e0e, 0x1e0e,
6146   0x1e10, 0x1e10,
6147   0x1e12, 0x1e12,
6148   0x1e14, 0x1e14,
6149   0x1e16, 0x1e16,
6150   0x1e18, 0x1e18,
6151   0x1e1a, 0x1e1a,
6152   0x1e1c, 0x1e1c,
6153   0x1e1e, 0x1e1e,
6154   0x1e20, 0x1e20,
6155   0x1e22, 0x1e22,
6156   0x1e24, 0x1e24,
6157   0x1e26, 0x1e26,
6158   0x1e28, 0x1e28,
6159   0x1e2a, 0x1e2a,
6160   0x1e2c, 0x1e2c,
6161   0x1e2e, 0x1e2e,
6162   0x1e30, 0x1e30,
6163   0x1e32, 0x1e32,
6164   0x1e34, 0x1e34,
6165   0x1e36, 0x1e36,
6166   0x1e38, 0x1e38,
6167   0x1e3a, 0x1e3a,
6168   0x1e3c, 0x1e3c,
6169   0x1e3e, 0x1e3e,
6170   0x1e40, 0x1e40,
6171   0x1e42, 0x1e42,
6172   0x1e44, 0x1e44,
6173   0x1e46, 0x1e46,
6174   0x1e48, 0x1e48,
6175   0x1e4a, 0x1e4a,
6176   0x1e4c, 0x1e4c,
6177   0x1e4e, 0x1e4e,
6178   0x1e50, 0x1e50,
6179   0x1e52, 0x1e52,
6180   0x1e54, 0x1e54,
6181   0x1e56, 0x1e56,
6182   0x1e58, 0x1e58,
6183   0x1e5a, 0x1e5a,
6184   0x1e5c, 0x1e5c,
6185   0x1e5e, 0x1e5e,
6186   0x1e60, 0x1e60,
6187   0x1e62, 0x1e62,
6188   0x1e64, 0x1e64,
6189   0x1e66, 0x1e66,
6190   0x1e68, 0x1e68,
6191   0x1e6a, 0x1e6a,
6192   0x1e6c, 0x1e6c,
6193   0x1e6e, 0x1e6e,
6194   0x1e70, 0x1e70,
6195   0x1e72, 0x1e72,
6196   0x1e74, 0x1e74,
6197   0x1e76, 0x1e76,
6198   0x1e78, 0x1e78,
6199   0x1e7a, 0x1e7a,
6200   0x1e7c, 0x1e7c,
6201   0x1e7e, 0x1e7e,
6202   0x1e80, 0x1e80,
6203   0x1e82, 0x1e82,
6204   0x1e84, 0x1e84,
6205   0x1e86, 0x1e86,
6206   0x1e88, 0x1e88,
6207   0x1e8a, 0x1e8a,
6208   0x1e8c, 0x1e8c,
6209   0x1e8e, 0x1e8e,
6210   0x1e90, 0x1e90,
6211   0x1e92, 0x1e92,
6212   0x1e94, 0x1e94,
6213   0x1ea0, 0x1ea0,
6214   0x1ea2, 0x1ea2,
6215   0x1ea4, 0x1ea4,
6216   0x1ea6, 0x1ea6,
6217   0x1ea8, 0x1ea8,
6218   0x1eaa, 0x1eaa,
6219   0x1eac, 0x1eac,
6220   0x1eae, 0x1eae,
6221   0x1eb0, 0x1eb0,
6222   0x1eb2, 0x1eb2,
6223   0x1eb4, 0x1eb4,
6224   0x1eb6, 0x1eb6,
6225   0x1eb8, 0x1eb8,
6226   0x1eba, 0x1eba,
6227   0x1ebc, 0x1ebc,
6228   0x1ebe, 0x1ebe,
6229   0x1ec0, 0x1ec0,
6230   0x1ec2, 0x1ec2,
6231   0x1ec4, 0x1ec4,
6232   0x1ec6, 0x1ec6,
6233   0x1ec8, 0x1ec8,
6234   0x1eca, 0x1eca,
6235   0x1ecc, 0x1ecc,
6236   0x1ece, 0x1ece,
6237   0x1ed0, 0x1ed0,
6238   0x1ed2, 0x1ed2,
6239   0x1ed4, 0x1ed4,
6240   0x1ed6, 0x1ed6,
6241   0x1ed8, 0x1ed8,
6242   0x1eda, 0x1eda,
6243   0x1edc, 0x1edc,
6244   0x1ede, 0x1ede,
6245   0x1ee0, 0x1ee0,
6246   0x1ee2, 0x1ee2,
6247   0x1ee4, 0x1ee4,
6248   0x1ee6, 0x1ee6,
6249   0x1ee8, 0x1ee8,
6250   0x1eea, 0x1eea,
6251   0x1eec, 0x1eec,
6252   0x1eee, 0x1eee,
6253   0x1ef0, 0x1ef0,
6254   0x1ef2, 0x1ef2,
6255   0x1ef4, 0x1ef4,
6256   0x1ef6, 0x1ef6,
6257   0x1ef8, 0x1ef8,
6258   0x1f08, 0x1f0f,
6259   0x1f18, 0x1f1d,
6260   0x1f28, 0x1f2f,
6261   0x1f38, 0x1f3f,
6262   0x1f48, 0x1f4d,
6263   0x1f59, 0x1f59,
6264   0x1f5b, 0x1f5b,
6265   0x1f5d, 0x1f5d,
6266   0x1f5f, 0x1f5f,
6267   0x1f68, 0x1f6f,
6268   0x1fb8, 0x1fbb,
6269   0x1fc8, 0x1fcb,
6270   0x1fd8, 0x1fdb,
6271   0x1fe8, 0x1fec,
6272   0x1ff8, 0x1ffb,
6273   0x2102, 0x2102,
6274   0x2107, 0x2107,
6275   0x210b, 0x210d,
6276   0x2110, 0x2112,
6277   0x2115, 0x2115,
6278   0x2119, 0x211d,
6279   0x2124, 0x2124,
6280   0x2126, 0x2126,
6281   0x2128, 0x2128,
6282   0x212a, 0x212d,
6283   0x2130, 0x2131,
6284   0x2133, 0x2133,
6285   0x213e, 0x213f,
6286   0x2145, 0x2145,
6287   0x2c00, 0x2c2e,
6288   0x2c80, 0x2c80,
6289   0x2c82, 0x2c82,
6290   0x2c84, 0x2c84,
6291   0x2c86, 0x2c86,
6292   0x2c88, 0x2c88,
6293   0x2c8a, 0x2c8a,
6294   0x2c8c, 0x2c8c,
6295   0x2c8e, 0x2c8e,
6296   0x2c90, 0x2c90,
6297   0x2c92, 0x2c92,
6298   0x2c94, 0x2c94,
6299   0x2c96, 0x2c96,
6300   0x2c98, 0x2c98,
6301   0x2c9a, 0x2c9a,
6302   0x2c9c, 0x2c9c,
6303   0x2c9e, 0x2c9e,
6304   0x2ca0, 0x2ca0,
6305   0x2ca2, 0x2ca2,
6306   0x2ca4, 0x2ca4,
6307   0x2ca6, 0x2ca6,
6308   0x2ca8, 0x2ca8,
6309   0x2caa, 0x2caa,
6310   0x2cac, 0x2cac,
6311   0x2cae, 0x2cae,
6312   0x2cb0, 0x2cb0,
6313   0x2cb2, 0x2cb2,
6314   0x2cb4, 0x2cb4,
6315   0x2cb6, 0x2cb6,
6316   0x2cb8, 0x2cb8,
6317   0x2cba, 0x2cba,
6318   0x2cbc, 0x2cbc,
6319   0x2cbe, 0x2cbe,
6320   0x2cc0, 0x2cc0,
6321   0x2cc2, 0x2cc2,
6322   0x2cc4, 0x2cc4,
6323   0x2cc6, 0x2cc6,
6324   0x2cc8, 0x2cc8,
6325   0x2cca, 0x2cca,
6326   0x2ccc, 0x2ccc,
6327   0x2cce, 0x2cce,
6328   0x2cd0, 0x2cd0,
6329   0x2cd2, 0x2cd2,
6330   0x2cd4, 0x2cd4,
6331   0x2cd6, 0x2cd6,
6332   0x2cd8, 0x2cd8,
6333   0x2cda, 0x2cda,
6334   0x2cdc, 0x2cdc,
6335   0x2cde, 0x2cde,
6336   0x2ce0, 0x2ce0,
6337   0x2ce2, 0x2ce2,
6338   0xff21, 0xff3a,
6339   0x10400, 0x10427,
6340   0x1d400, 0x1d419,
6341   0x1d434, 0x1d44d,
6342   0x1d468, 0x1d481,
6343   0x1d49c, 0x1d49c,
6344   0x1d49e, 0x1d49f,
6345   0x1d4a2, 0x1d4a2,
6346   0x1d4a5, 0x1d4a6,
6347   0x1d4a9, 0x1d4ac,
6348   0x1d4ae, 0x1d4b5,
6349   0x1d4d0, 0x1d4e9,
6350   0x1d504, 0x1d505,
6351   0x1d507, 0x1d50a,
6352   0x1d50d, 0x1d514,
6353   0x1d516, 0x1d51c,
6354   0x1d538, 0x1d539,
6355   0x1d53b, 0x1d53e,
6356   0x1d540, 0x1d544,
6357   0x1d546, 0x1d546,
6358   0x1d54a, 0x1d550,
6359   0x1d56c, 0x1d585,
6360   0x1d5a0, 0x1d5b9,
6361   0x1d5d4, 0x1d5ed,
6362   0x1d608, 0x1d621,
6363   0x1d63c, 0x1d655,
6364   0x1d670, 0x1d689,
6365   0x1d6a8, 0x1d6c0,
6366   0x1d6e2, 0x1d6fa,
6367   0x1d71c, 0x1d734,
6368   0x1d756, 0x1d76e,
6369   0x1d790, 0x1d7a8
6370 }; /* CR_Lu */
6371 
6372 /* 'M': Major Category */
6373 static const OnigCodePoint CR_M[] = {
6374   133,
6375   0x0300, 0x036f,
6376   0x0483, 0x0486,
6377   0x0488, 0x0489,
6378   0x0591, 0x05b9,
6379   0x05bb, 0x05bd,
6380   0x05bf, 0x05bf,
6381   0x05c1, 0x05c2,
6382   0x05c4, 0x05c5,
6383   0x05c7, 0x05c7,
6384   0x0610, 0x0615,
6385   0x064b, 0x065e,
6386   0x0670, 0x0670,
6387   0x06d6, 0x06dc,
6388   0x06de, 0x06e4,
6389   0x06e7, 0x06e8,
6390   0x06ea, 0x06ed,
6391   0x0711, 0x0711,
6392   0x0730, 0x074a,
6393   0x07a6, 0x07b0,
6394   0x0901, 0x0903,
6395   0x093c, 0x093c,
6396   0x093e, 0x094d,
6397   0x0951, 0x0954,
6398   0x0962, 0x0963,
6399   0x0981, 0x0983,
6400   0x09bc, 0x09bc,
6401   0x09be, 0x09c4,
6402   0x09c7, 0x09c8,
6403   0x09cb, 0x09cd,
6404   0x09d7, 0x09d7,
6405   0x09e2, 0x09e3,
6406   0x0a01, 0x0a03,
6407   0x0a3c, 0x0a3c,
6408   0x0a3e, 0x0a42,
6409   0x0a47, 0x0a48,
6410   0x0a4b, 0x0a4d,
6411   0x0a70, 0x0a71,
6412   0x0a81, 0x0a83,
6413   0x0abc, 0x0abc,
6414   0x0abe, 0x0ac5,
6415   0x0ac7, 0x0ac9,
6416   0x0acb, 0x0acd,
6417   0x0ae2, 0x0ae3,
6418   0x0b01, 0x0b03,
6419   0x0b3c, 0x0b3c,
6420   0x0b3e, 0x0b43,
6421   0x0b47, 0x0b48,
6422   0x0b4b, 0x0b4d,
6423   0x0b56, 0x0b57,
6424   0x0b82, 0x0b82,
6425   0x0bbe, 0x0bc2,
6426   0x0bc6, 0x0bc8,
6427   0x0bca, 0x0bcd,
6428   0x0bd7, 0x0bd7,
6429   0x0c01, 0x0c03,
6430   0x0c3e, 0x0c44,
6431   0x0c46, 0x0c48,
6432   0x0c4a, 0x0c4d,
6433   0x0c55, 0x0c56,
6434   0x0c82, 0x0c83,
6435   0x0cbc, 0x0cbc,
6436   0x0cbe, 0x0cc4,
6437   0x0cc6, 0x0cc8,
6438   0x0cca, 0x0ccd,
6439   0x0cd5, 0x0cd6,
6440   0x0d02, 0x0d03,
6441   0x0d3e, 0x0d43,
6442   0x0d46, 0x0d48,
6443   0x0d4a, 0x0d4d,
6444   0x0d57, 0x0d57,
6445   0x0d82, 0x0d83,
6446   0x0dca, 0x0dca,
6447   0x0dcf, 0x0dd4,
6448   0x0dd6, 0x0dd6,
6449   0x0dd8, 0x0ddf,
6450   0x0df2, 0x0df3,
6451   0x0e31, 0x0e31,
6452   0x0e34, 0x0e3a,
6453   0x0e47, 0x0e4e,
6454   0x0eb1, 0x0eb1,
6455   0x0eb4, 0x0eb9,
6456   0x0ebb, 0x0ebc,
6457   0x0ec8, 0x0ecd,
6458   0x0f18, 0x0f19,
6459   0x0f35, 0x0f35,
6460   0x0f37, 0x0f37,
6461   0x0f39, 0x0f39,
6462   0x0f3e, 0x0f3f,
6463   0x0f71, 0x0f84,
6464   0x0f86, 0x0f87,
6465   0x0f90, 0x0f97,
6466   0x0f99, 0x0fbc,
6467   0x0fc6, 0x0fc6,
6468   0x102c, 0x1032,
6469   0x1036, 0x1039,
6470   0x1056, 0x1059,
6471   0x135f, 0x135f,
6472   0x1712, 0x1714,
6473   0x1732, 0x1734,
6474   0x1752, 0x1753,
6475   0x1772, 0x1773,
6476   0x17b6, 0x17d3,
6477   0x17dd, 0x17dd,
6478   0x180b, 0x180d,
6479   0x18a9, 0x18a9,
6480   0x1920, 0x192b,
6481   0x1930, 0x193b,
6482   0x19b0, 0x19c0,
6483   0x19c8, 0x19c9,
6484   0x1a17, 0x1a1b,
6485   0x1dc0, 0x1dc3,
6486   0x20d0, 0x20eb,
6487   0x302a, 0x302f,
6488   0x3099, 0x309a,
6489   0xa802, 0xa802,
6490   0xa806, 0xa806,
6491   0xa80b, 0xa80b,
6492   0xa823, 0xa827,
6493   0xfb1e, 0xfb1e,
6494   0xfe00, 0xfe0f,
6495   0xfe20, 0xfe23,
6496   0x10a01, 0x10a03,
6497   0x10a05, 0x10a06,
6498   0x10a0c, 0x10a0f,
6499   0x10a38, 0x10a3a,
6500   0x10a3f, 0x10a3f,
6501   0x1d165, 0x1d169,
6502   0x1d16d, 0x1d172,
6503   0x1d17b, 0x1d182,
6504   0x1d185, 0x1d18b,
6505   0x1d1aa, 0x1d1ad,
6506   0x1d242, 0x1d244,
6507   0xe0100, 0xe01ef
6508 }; /* CR_M */
6509 
6510 /* 'Mc': General Category */
6511 static const OnigCodePoint CR_Mc[] = {
6512   63,
6513   0x0903, 0x0903,
6514   0x093e, 0x0940,
6515   0x0949, 0x094c,
6516   0x0982, 0x0983,
6517   0x09be, 0x09c0,
6518   0x09c7, 0x09c8,
6519   0x09cb, 0x09cc,
6520   0x09d7, 0x09d7,
6521   0x0a03, 0x0a03,
6522   0x0a3e, 0x0a40,
6523   0x0a83, 0x0a83,
6524   0x0abe, 0x0ac0,
6525   0x0ac9, 0x0ac9,
6526   0x0acb, 0x0acc,
6527   0x0b02, 0x0b03,
6528   0x0b3e, 0x0b3e,
6529   0x0b40, 0x0b40,
6530   0x0b47, 0x0b48,
6531   0x0b4b, 0x0b4c,
6532   0x0b57, 0x0b57,
6533   0x0bbe, 0x0bbf,
6534   0x0bc1, 0x0bc2,
6535   0x0bc6, 0x0bc8,
6536   0x0bca, 0x0bcc,
6537   0x0bd7, 0x0bd7,
6538   0x0c01, 0x0c03,
6539   0x0c41, 0x0c44,
6540   0x0c82, 0x0c83,
6541   0x0cbe, 0x0cbe,
6542   0x0cc0, 0x0cc4,
6543   0x0cc7, 0x0cc8,
6544   0x0cca, 0x0ccb,
6545   0x0cd5, 0x0cd6,
6546   0x0d02, 0x0d03,
6547   0x0d3e, 0x0d40,
6548   0x0d46, 0x0d48,
6549   0x0d4a, 0x0d4c,
6550   0x0d57, 0x0d57,
6551   0x0d82, 0x0d83,
6552   0x0dcf, 0x0dd1,
6553   0x0dd8, 0x0ddf,
6554   0x0df2, 0x0df3,
6555   0x0f3e, 0x0f3f,
6556   0x0f7f, 0x0f7f,
6557   0x102c, 0x102c,
6558   0x1031, 0x1031,
6559   0x1038, 0x1038,
6560   0x1056, 0x1057,
6561   0x17b6, 0x17b6,
6562   0x17be, 0x17c5,
6563   0x17c7, 0x17c8,
6564   0x1923, 0x1926,
6565   0x1929, 0x192b,
6566   0x1930, 0x1931,
6567   0x1933, 0x1938,
6568   0x19b0, 0x19c0,
6569   0x19c8, 0x19c9,
6570   0x1a19, 0x1a1b,
6571   0xa802, 0xa802,
6572   0xa823, 0xa824,
6573   0xa827, 0xa827,
6574   0x1d165, 0x1d166,
6575   0x1d16d, 0x1d172
6576 }; /* CR_Mc */
6577 
6578 /* 'Me': General Category */
6579 static const OnigCodePoint CR_Me[] = {
6580   4,
6581   0x0488, 0x0489,
6582   0x06de, 0x06de,
6583   0x20dd, 0x20e0,
6584   0x20e2, 0x20e4
6585 }; /* CR_Me */
6586 
6587 /* 'Mn': General Category */
6588 static const OnigCodePoint CR_Mn[] = {
6589   124,
6590   0x0300, 0x036f,
6591   0x0483, 0x0486,
6592   0x0591, 0x05b9,
6593   0x05bb, 0x05bd,
6594   0x05bf, 0x05bf,
6595   0x05c1, 0x05c2,
6596   0x05c4, 0x05c5,
6597   0x05c7, 0x05c7,
6598   0x0610, 0x0615,
6599   0x064b, 0x065e,
6600   0x0670, 0x0670,
6601   0x06d6, 0x06dc,
6602   0x06df, 0x06e4,
6603   0x06e7, 0x06e8,
6604   0x06ea, 0x06ed,
6605   0x0711, 0x0711,
6606   0x0730, 0x074a,
6607   0x07a6, 0x07b0,
6608   0x0901, 0x0902,
6609   0x093c, 0x093c,
6610   0x0941, 0x0948,
6611   0x094d, 0x094d,
6612   0x0951, 0x0954,
6613   0x0962, 0x0963,
6614   0x0981, 0x0981,
6615   0x09bc, 0x09bc,
6616   0x09c1, 0x09c4,
6617   0x09cd, 0x09cd,
6618   0x09e2, 0x09e3,
6619   0x0a01, 0x0a02,
6620   0x0a3c, 0x0a3c,
6621   0x0a41, 0x0a42,
6622   0x0a47, 0x0a48,
6623   0x0a4b, 0x0a4d,
6624   0x0a70, 0x0a71,
6625   0x0a81, 0x0a82,
6626   0x0abc, 0x0abc,
6627   0x0ac1, 0x0ac5,
6628   0x0ac7, 0x0ac8,
6629   0x0acd, 0x0acd,
6630   0x0ae2, 0x0ae3,
6631   0x0b01, 0x0b01,
6632   0x0b3c, 0x0b3c,
6633   0x0b3f, 0x0b3f,
6634   0x0b41, 0x0b43,
6635   0x0b4d, 0x0b4d,
6636   0x0b56, 0x0b56,
6637   0x0b82, 0x0b82,
6638   0x0bc0, 0x0bc0,
6639   0x0bcd, 0x0bcd,
6640   0x0c3e, 0x0c40,
6641   0x0c46, 0x0c48,
6642   0x0c4a, 0x0c4d,
6643   0x0c55, 0x0c56,
6644   0x0cbc, 0x0cbc,
6645   0x0cbf, 0x0cbf,
6646   0x0cc6, 0x0cc6,
6647   0x0ccc, 0x0ccd,
6648   0x0d41, 0x0d43,
6649   0x0d4d, 0x0d4d,
6650   0x0dca, 0x0dca,
6651   0x0dd2, 0x0dd4,
6652   0x0dd6, 0x0dd6,
6653   0x0e31, 0x0e31,
6654   0x0e34, 0x0e3a,
6655   0x0e47, 0x0e4e,
6656   0x0eb1, 0x0eb1,
6657   0x0eb4, 0x0eb9,
6658   0x0ebb, 0x0ebc,
6659   0x0ec8, 0x0ecd,
6660   0x0f18, 0x0f19,
6661   0x0f35, 0x0f35,
6662   0x0f37, 0x0f37,
6663   0x0f39, 0x0f39,
6664   0x0f71, 0x0f7e,
6665   0x0f80, 0x0f84,
6666   0x0f86, 0x0f87,
6667   0x0f90, 0x0f97,
6668   0x0f99, 0x0fbc,
6669   0x0fc6, 0x0fc6,
6670   0x102d, 0x1030,
6671   0x1032, 0x1032,
6672   0x1036, 0x1037,
6673   0x1039, 0x1039,
6674   0x1058, 0x1059,
6675   0x135f, 0x135f,
6676   0x1712, 0x1714,
6677   0x1732, 0x1734,
6678   0x1752, 0x1753,
6679   0x1772, 0x1773,
6680   0x17b7, 0x17bd,
6681   0x17c6, 0x17c6,
6682   0x17c9, 0x17d3,
6683   0x17dd, 0x17dd,
6684   0x180b, 0x180d,
6685   0x18a9, 0x18a9,
6686   0x1920, 0x1922,
6687   0x1927, 0x1928,
6688   0x1932, 0x1932,
6689   0x1939, 0x193b,
6690   0x1a17, 0x1a18,
6691   0x1dc0, 0x1dc3,
6692   0x20d0, 0x20dc,
6693   0x20e1, 0x20e1,
6694   0x20e5, 0x20eb,
6695   0x302a, 0x302f,
6696   0x3099, 0x309a,
6697   0xa806, 0xa806,
6698   0xa80b, 0xa80b,
6699   0xa825, 0xa826,
6700   0xfb1e, 0xfb1e,
6701   0xfe00, 0xfe0f,
6702   0xfe20, 0xfe23,
6703   0x10a01, 0x10a03,
6704   0x10a05, 0x10a06,
6705   0x10a0c, 0x10a0f,
6706   0x10a38, 0x10a3a,
6707   0x10a3f, 0x10a3f,
6708   0x1d167, 0x1d169,
6709   0x1d17b, 0x1d182,
6710   0x1d185, 0x1d18b,
6711   0x1d1aa, 0x1d1ad,
6712   0x1d242, 0x1d244,
6713   0xe0100, 0xe01ef
6714 }; /* CR_Mn */
6715 
6716 /* 'N': Major Category */
6717 static const OnigCodePoint CR_N[] = {
6718   53,
6719   0x0030, 0x0039,
6720   0x00b2, 0x00b3,
6721   0x00b9, 0x00b9,
6722   0x00bc, 0x00be,
6723   0x0660, 0x0669,
6724   0x06f0, 0x06f9,
6725   0x0966, 0x096f,
6726   0x09e6, 0x09ef,
6727   0x09f4, 0x09f9,
6728   0x0a66, 0x0a6f,
6729   0x0ae6, 0x0aef,
6730   0x0b66, 0x0b6f,
6731   0x0be6, 0x0bf2,
6732   0x0c66, 0x0c6f,
6733   0x0ce6, 0x0cef,
6734   0x0d66, 0x0d6f,
6735   0x0e50, 0x0e59,
6736   0x0ed0, 0x0ed9,
6737   0x0f20, 0x0f33,
6738   0x1040, 0x1049,
6739   0x1369, 0x137c,
6740   0x16ee, 0x16f0,
6741   0x17e0, 0x17e9,
6742   0x17f0, 0x17f9,
6743   0x1810, 0x1819,
6744   0x1946, 0x194f,
6745   0x19d0, 0x19d9,
6746   0x2070, 0x2070,
6747   0x2074, 0x2079,
6748   0x2080, 0x2089,
6749   0x2153, 0x2183,
6750   0x2460, 0x249b,
6751   0x24ea, 0x24ff,
6752   0x2776, 0x2793,
6753   0x2cfd, 0x2cfd,
6754   0x3007, 0x3007,
6755   0x3021, 0x3029,
6756   0x3038, 0x303a,
6757   0x3192, 0x3195,
6758   0x3220, 0x3229,
6759   0x3251, 0x325f,
6760   0x3280, 0x3289,
6761   0x32b1, 0x32bf,
6762   0xff10, 0xff19,
6763   0x10107, 0x10133,
6764   0x10140, 0x10178,
6765   0x1018a, 0x1018a,
6766   0x10320, 0x10323,
6767   0x1034a, 0x1034a,
6768   0x103d1, 0x103d5,
6769   0x104a0, 0x104a9,
6770   0x10a40, 0x10a47,
6771   0x1d7ce, 0x1d7ff
6772 }; /* CR_N */
6773 
6774 /* 'Nd': General Category */
6775 static const OnigCodePoint CR_Nd[] = {
6776   23,
6777   0x0030, 0x0039,
6778   0x0660, 0x0669,
6779   0x06f0, 0x06f9,
6780   0x0966, 0x096f,
6781   0x09e6, 0x09ef,
6782   0x0a66, 0x0a6f,
6783   0x0ae6, 0x0aef,
6784   0x0b66, 0x0b6f,
6785   0x0be6, 0x0bef,
6786   0x0c66, 0x0c6f,
6787   0x0ce6, 0x0cef,
6788   0x0d66, 0x0d6f,
6789   0x0e50, 0x0e59,
6790   0x0ed0, 0x0ed9,
6791   0x0f20, 0x0f29,
6792   0x1040, 0x1049,
6793   0x17e0, 0x17e9,
6794   0x1810, 0x1819,
6795   0x1946, 0x194f,
6796   0x19d0, 0x19d9,
6797   0xff10, 0xff19,
6798   0x104a0, 0x104a9,
6799   0x1d7ce, 0x1d7ff
6800 }; /* CR_Nd */
6801 
6802 /* 'Nl': General Category */
6803 static const OnigCodePoint CR_Nl[] = {
6804   8,
6805   0x16ee, 0x16f0,
6806   0x2160, 0x2183,
6807   0x3007, 0x3007,
6808   0x3021, 0x3029,
6809   0x3038, 0x303a,
6810   0x10140, 0x10174,
6811   0x1034a, 0x1034a,
6812   0x103d1, 0x103d5
6813 }; /* CR_Nl */
6814 
6815 /* 'No': General Category */
6816 static const OnigCodePoint CR_No[] = {
6817   26,
6818   0x00b2, 0x00b3,
6819   0x00b9, 0x00b9,
6820   0x00bc, 0x00be,
6821   0x09f4, 0x09f9,
6822   0x0bf0, 0x0bf2,
6823   0x0f2a, 0x0f33,
6824   0x1369, 0x137c,
6825   0x17f0, 0x17f9,
6826   0x2070, 0x2070,
6827   0x2074, 0x2079,
6828   0x2080, 0x2089,
6829   0x2153, 0x215f,
6830   0x2460, 0x249b,
6831   0x24ea, 0x24ff,
6832   0x2776, 0x2793,
6833   0x2cfd, 0x2cfd,
6834   0x3192, 0x3195,
6835   0x3220, 0x3229,
6836   0x3251, 0x325f,
6837   0x3280, 0x3289,
6838   0x32b1, 0x32bf,
6839   0x10107, 0x10133,
6840   0x10175, 0x10178,
6841   0x1018a, 0x1018a,
6842   0x10320, 0x10323,
6843   0x10a40, 0x10a47
6844 }; /* CR_No */
6845 
6846 /* 'P': Major Category */
6847 static const OnigCodePoint CR_P[] = {
6848   96,
6849   0x0021, 0x0023,
6850   0x0025, 0x002a,
6851   0x002c, 0x002f,
6852   0x003a, 0x003b,
6853   0x003f, 0x0040,
6854   0x005b, 0x005d,
6855   0x005f, 0x005f,
6856   0x007b, 0x007b,
6857   0x007d, 0x007d,
6858   0x00a1, 0x00a1,
6859   0x00ab, 0x00ab,
6860   0x00b7, 0x00b7,
6861   0x00bb, 0x00bb,
6862   0x00bf, 0x00bf,
6863   0x037e, 0x037e,
6864   0x0387, 0x0387,
6865   0x055a, 0x055f,
6866   0x0589, 0x058a,
6867   0x05be, 0x05be,
6868   0x05c0, 0x05c0,
6869   0x05c3, 0x05c3,
6870   0x05c6, 0x05c6,
6871   0x05f3, 0x05f4,
6872   0x060c, 0x060d,
6873   0x061b, 0x061b,
6874   0x061e, 0x061f,
6875   0x066a, 0x066d,
6876   0x06d4, 0x06d4,
6877   0x0700, 0x070d,
6878   0x0964, 0x0965,
6879   0x0970, 0x0970,
6880   0x0df4, 0x0df4,
6881   0x0e4f, 0x0e4f,
6882   0x0e5a, 0x0e5b,
6883   0x0f04, 0x0f12,
6884   0x0f3a, 0x0f3d,
6885   0x0f85, 0x0f85,
6886   0x0fd0, 0x0fd1,
6887   0x104a, 0x104f,
6888   0x10fb, 0x10fb,
6889   0x1361, 0x1368,
6890   0x166d, 0x166e,
6891   0x169b, 0x169c,
6892   0x16eb, 0x16ed,
6893   0x1735, 0x1736,
6894   0x17d4, 0x17d6,
6895   0x17d8, 0x17da,
6896   0x1800, 0x180a,
6897   0x1944, 0x1945,
6898   0x19de, 0x19df,
6899   0x1a1e, 0x1a1f,
6900   0x2010, 0x2027,
6901   0x2030, 0x2043,
6902   0x2045, 0x2051,
6903   0x2053, 0x205e,
6904   0x207d, 0x207e,
6905   0x208d, 0x208e,
6906   0x2329, 0x232a,
6907   0x23b4, 0x23b6,
6908   0x2768, 0x2775,
6909   0x27c5, 0x27c6,
6910   0x27e6, 0x27eb,
6911   0x2983, 0x2998,
6912   0x29d8, 0x29db,
6913   0x29fc, 0x29fd,
6914   0x2cf9, 0x2cfc,
6915   0x2cfe, 0x2cff,
6916   0x2e00, 0x2e17,
6917   0x2e1c, 0x2e1d,
6918   0x3001, 0x3003,
6919   0x3008, 0x3011,
6920   0x3014, 0x301f,
6921   0x3030, 0x3030,
6922   0x303d, 0x303d,
6923   0x30a0, 0x30a0,
6924   0x30fb, 0x30fb,
6925   0xfd3e, 0xfd3f,
6926   0xfe10, 0xfe19,
6927   0xfe30, 0xfe52,
6928   0xfe54, 0xfe61,
6929   0xfe63, 0xfe63,
6930   0xfe68, 0xfe68,
6931   0xfe6a, 0xfe6b,
6932   0xff01, 0xff03,
6933   0xff05, 0xff0a,
6934   0xff0c, 0xff0f,
6935   0xff1a, 0xff1b,
6936   0xff1f, 0xff20,
6937   0xff3b, 0xff3d,
6938   0xff3f, 0xff3f,
6939   0xff5b, 0xff5b,
6940   0xff5d, 0xff5d,
6941   0xff5f, 0xff65,
6942   0x10100, 0x10101,
6943   0x1039f, 0x1039f,
6944   0x10a50, 0x10a58
6945 }; /* CR_P */
6946 
6947 /* 'Pc': General Category */
6948 static const OnigCodePoint CR_Pc[] = {
6949   6,
6950   0x005f, 0x005f,
6951   0x203f, 0x2040,
6952   0x2054, 0x2054,
6953   0xfe33, 0xfe34,
6954   0xfe4d, 0xfe4f,
6955   0xff3f, 0xff3f
6956 }; /* CR_Pc */
6957 
6958 /* 'Pd': General Category */
6959 static const OnigCodePoint CR_Pd[] = {
6960   12,
6961   0x002d, 0x002d,
6962   0x058a, 0x058a,
6963   0x1806, 0x1806,
6964   0x2010, 0x2015,
6965   0x2e17, 0x2e17,
6966   0x301c, 0x301c,
6967   0x3030, 0x3030,
6968   0x30a0, 0x30a0,
6969   0xfe31, 0xfe32,
6970   0xfe58, 0xfe58,
6971   0xfe63, 0xfe63,
6972   0xff0d, 0xff0d
6973 }; /* CR_Pd */
6974 
6975 /* 'Pe': General Category */
6976 static const OnigCodePoint CR_Pe[] = {
6977   65,
6978   0x0029, 0x0029,
6979   0x005d, 0x005d,
6980   0x007d, 0x007d,
6981   0x0f3b, 0x0f3b,
6982   0x0f3d, 0x0f3d,
6983   0x169c, 0x169c,
6984   0x2046, 0x2046,
6985   0x207e, 0x207e,
6986   0x208e, 0x208e,
6987   0x232a, 0x232a,
6988   0x23b5, 0x23b5,
6989   0x2769, 0x2769,
6990   0x276b, 0x276b,
6991   0x276d, 0x276d,
6992   0x276f, 0x276f,
6993   0x2771, 0x2771,
6994   0x2773, 0x2773,
6995   0x2775, 0x2775,
6996   0x27c6, 0x27c6,
6997   0x27e7, 0x27e7,
6998   0x27e9, 0x27e9,
6999   0x27eb, 0x27eb,
7000   0x2984, 0x2984,
7001   0x2986, 0x2986,
7002   0x2988, 0x2988,
7003   0x298a, 0x298a,
7004   0x298c, 0x298c,
7005   0x298e, 0x298e,
7006   0x2990, 0x2990,
7007   0x2992, 0x2992,
7008   0x2994, 0x2994,
7009   0x2996, 0x2996,
7010   0x2998, 0x2998,
7011   0x29d9, 0x29d9,
7012   0x29db, 0x29db,
7013   0x29fd, 0x29fd,
7014   0x3009, 0x3009,
7015   0x300b, 0x300b,
7016   0x300d, 0x300d,
7017   0x300f, 0x300f,
7018   0x3011, 0x3011,
7019   0x3015, 0x3015,
7020   0x3017, 0x3017,
7021   0x3019, 0x3019,
7022   0x301b, 0x301b,
7023   0x301e, 0x301f,
7024   0xfd3f, 0xfd3f,
7025   0xfe18, 0xfe18,
7026   0xfe36, 0xfe36,
7027   0xfe38, 0xfe38,
7028   0xfe3a, 0xfe3a,
7029   0xfe3c, 0xfe3c,
7030   0xfe3e, 0xfe3e,
7031   0xfe40, 0xfe40,
7032   0xfe42, 0xfe42,
7033   0xfe44, 0xfe44,
7034   0xfe48, 0xfe48,
7035   0xfe5a, 0xfe5a,
7036   0xfe5c, 0xfe5c,
7037   0xfe5e, 0xfe5e,
7038   0xff09, 0xff09,
7039   0xff3d, 0xff3d,
7040   0xff5d, 0xff5d,
7041   0xff60, 0xff60,
7042   0xff63, 0xff63
7043 }; /* CR_Pe */
7044 
7045 /* 'Pf': General Category */
7046 static const OnigCodePoint CR_Pf[] = {
7047   9,
7048   0x00bb, 0x00bb,
7049   0x2019, 0x2019,
7050   0x201d, 0x201d,
7051   0x203a, 0x203a,
7052   0x2e03, 0x2e03,
7053   0x2e05, 0x2e05,
7054   0x2e0a, 0x2e0a,
7055   0x2e0d, 0x2e0d,
7056   0x2e1d, 0x2e1d
7057 }; /* CR_Pf */
7058 
7059 /* 'Pi': General Category */
7060 static const OnigCodePoint CR_Pi[] = {
7061   10,
7062   0x00ab, 0x00ab,
7063   0x2018, 0x2018,
7064   0x201b, 0x201c,
7065   0x201f, 0x201f,
7066   0x2039, 0x2039,
7067   0x2e02, 0x2e02,
7068   0x2e04, 0x2e04,
7069   0x2e09, 0x2e09,
7070   0x2e0c, 0x2e0c,
7071   0x2e1c, 0x2e1c
7072 }; /* CR_Pi */
7073 
7074 /* 'Po': General Category */
7075 static const OnigCodePoint CR_Po[] = {
7076   88,
7077   0x0021, 0x0023,
7078   0x0025, 0x0027,
7079   0x002a, 0x002a,
7080   0x002c, 0x002c,
7081   0x002e, 0x002f,
7082   0x003a, 0x003b,
7083   0x003f, 0x0040,
7084   0x005c, 0x005c,
7085   0x00a1, 0x00a1,
7086   0x00b7, 0x00b7,
7087   0x00bf, 0x00bf,
7088   0x037e, 0x037e,
7089   0x0387, 0x0387,
7090   0x055a, 0x055f,
7091   0x0589, 0x0589,
7092   0x05be, 0x05be,
7093   0x05c0, 0x05c0,
7094   0x05c3, 0x05c3,
7095   0x05c6, 0x05c6,
7096   0x05f3, 0x05f4,
7097   0x060c, 0x060d,
7098   0x061b, 0x061b,
7099   0x061e, 0x061f,
7100   0x066a, 0x066d,
7101   0x06d4, 0x06d4,
7102   0x0700, 0x070d,
7103   0x0964, 0x0965,
7104   0x0970, 0x0970,
7105   0x0df4, 0x0df4,
7106   0x0e4f, 0x0e4f,
7107   0x0e5a, 0x0e5b,
7108   0x0f04, 0x0f12,
7109   0x0f85, 0x0f85,
7110   0x0fd0, 0x0fd1,
7111   0x104a, 0x104f,
7112   0x10fb, 0x10fb,
7113   0x1361, 0x1368,
7114   0x166d, 0x166e,
7115   0x16eb, 0x16ed,
7116   0x1735, 0x1736,
7117   0x17d4, 0x17d6,
7118   0x17d8, 0x17da,
7119   0x1800, 0x1805,
7120   0x1807, 0x180a,
7121   0x1944, 0x1945,
7122   0x19de, 0x19df,
7123   0x1a1e, 0x1a1f,
7124   0x2016, 0x2017,
7125   0x2020, 0x2027,
7126   0x2030, 0x2038,
7127   0x203b, 0x203e,
7128   0x2041, 0x2043,
7129   0x2047, 0x2051,
7130   0x2053, 0x2053,
7131   0x2055, 0x205e,
7132   0x23b6, 0x23b6,
7133   0x2cf9, 0x2cfc,
7134   0x2cfe, 0x2cff,
7135   0x2e00, 0x2e01,
7136   0x2e06, 0x2e08,
7137   0x2e0b, 0x2e0b,
7138   0x2e0e, 0x2e16,
7139   0x3001, 0x3003,
7140   0x303d, 0x303d,
7141   0x30fb, 0x30fb,
7142   0xfe10, 0xfe16,
7143   0xfe19, 0xfe19,
7144   0xfe30, 0xfe30,
7145   0xfe45, 0xfe46,
7146   0xfe49, 0xfe4c,
7147   0xfe50, 0xfe52,
7148   0xfe54, 0xfe57,
7149   0xfe5f, 0xfe61,
7150   0xfe68, 0xfe68,
7151   0xfe6a, 0xfe6b,
7152   0xff01, 0xff03,
7153   0xff05, 0xff07,
7154   0xff0a, 0xff0a,
7155   0xff0c, 0xff0c,
7156   0xff0e, 0xff0f,
7157   0xff1a, 0xff1b,
7158   0xff1f, 0xff20,
7159   0xff3c, 0xff3c,
7160   0xff61, 0xff61,
7161   0xff64, 0xff65,
7162   0x10100, 0x10101,
7163   0x1039f, 0x1039f,
7164   0x10a50, 0x10a58
7165 }; /* CR_Po */
7166 
7167 /* 'Ps': General Category */
7168 static const OnigCodePoint CR_Ps[] = {
7169   67,
7170   0x0028, 0x0028,
7171   0x005b, 0x005b,
7172   0x007b, 0x007b,
7173   0x0f3a, 0x0f3a,
7174   0x0f3c, 0x0f3c,
7175   0x169b, 0x169b,
7176   0x201a, 0x201a,
7177   0x201e, 0x201e,
7178   0x2045, 0x2045,
7179   0x207d, 0x207d,
7180   0x208d, 0x208d,
7181   0x2329, 0x2329,
7182   0x23b4, 0x23b4,
7183   0x2768, 0x2768,
7184   0x276a, 0x276a,
7185   0x276c, 0x276c,
7186   0x276e, 0x276e,
7187   0x2770, 0x2770,
7188   0x2772, 0x2772,
7189   0x2774, 0x2774,
7190   0x27c5, 0x27c5,
7191   0x27e6, 0x27e6,
7192   0x27e8, 0x27e8,
7193   0x27ea, 0x27ea,
7194   0x2983, 0x2983,
7195   0x2985, 0x2985,
7196   0x2987, 0x2987,
7197   0x2989, 0x2989,
7198   0x298b, 0x298b,
7199   0x298d, 0x298d,
7200   0x298f, 0x298f,
7201   0x2991, 0x2991,
7202   0x2993, 0x2993,
7203   0x2995, 0x2995,
7204   0x2997, 0x2997,
7205   0x29d8, 0x29d8,
7206   0x29da, 0x29da,
7207   0x29fc, 0x29fc,
7208   0x3008, 0x3008,
7209   0x300a, 0x300a,
7210   0x300c, 0x300c,
7211   0x300e, 0x300e,
7212   0x3010, 0x3010,
7213   0x3014, 0x3014,
7214   0x3016, 0x3016,
7215   0x3018, 0x3018,
7216   0x301a, 0x301a,
7217   0x301d, 0x301d,
7218   0xfd3e, 0xfd3e,
7219   0xfe17, 0xfe17,
7220   0xfe35, 0xfe35,
7221   0xfe37, 0xfe37,
7222   0xfe39, 0xfe39,
7223   0xfe3b, 0xfe3b,
7224   0xfe3d, 0xfe3d,
7225   0xfe3f, 0xfe3f,
7226   0xfe41, 0xfe41,
7227   0xfe43, 0xfe43,
7228   0xfe47, 0xfe47,
7229   0xfe59, 0xfe59,
7230   0xfe5b, 0xfe5b,
7231   0xfe5d, 0xfe5d,
7232   0xff08, 0xff08,
7233   0xff3b, 0xff3b,
7234   0xff5b, 0xff5b,
7235   0xff5f, 0xff5f,
7236   0xff62, 0xff62
7237 }; /* CR_Ps */
7238 
7239 /* 'S': Major Category */
7240 static const OnigCodePoint CR_S[] = {
7241   162,
7242   0x0024, 0x0024,
7243   0x002b, 0x002b,
7244   0x003c, 0x003e,
7245   0x005e, 0x005e,
7246   0x0060, 0x0060,
7247   0x007c, 0x007c,
7248   0x007e, 0x007e,
7249   0x00a2, 0x00a9,
7250   0x00ac, 0x00ac,
7251   0x00ae, 0x00b1,
7252   0x00b4, 0x00b4,
7253   0x00b6, 0x00b6,
7254   0x00b8, 0x00b8,
7255   0x00d7, 0x00d7,
7256   0x00f7, 0x00f7,
7257   0x02c2, 0x02c5,
7258   0x02d2, 0x02df,
7259   0x02e5, 0x02ed,
7260   0x02ef, 0x02ff,
7261   0x0374, 0x0375,
7262   0x0384, 0x0385,
7263   0x03f6, 0x03f6,
7264   0x0482, 0x0482,
7265   0x060b, 0x060b,
7266   0x060e, 0x060f,
7267   0x06e9, 0x06e9,
7268   0x06fd, 0x06fe,
7269   0x09f2, 0x09f3,
7270   0x09fa, 0x09fa,
7271   0x0af1, 0x0af1,
7272   0x0b70, 0x0b70,
7273   0x0bf3, 0x0bfa,
7274   0x0e3f, 0x0e3f,
7275   0x0f01, 0x0f03,
7276   0x0f13, 0x0f17,
7277   0x0f1a, 0x0f1f,
7278   0x0f34, 0x0f34,
7279   0x0f36, 0x0f36,
7280   0x0f38, 0x0f38,
7281   0x0fbe, 0x0fc5,
7282   0x0fc7, 0x0fcc,
7283   0x0fcf, 0x0fcf,
7284   0x1360, 0x1360,
7285   0x1390, 0x1399,
7286   0x17db, 0x17db,
7287   0x1940, 0x1940,
7288   0x19e0, 0x19ff,
7289   0x1fbd, 0x1fbd,
7290   0x1fbf, 0x1fc1,
7291   0x1fcd, 0x1fcf,
7292   0x1fdd, 0x1fdf,
7293   0x1fed, 0x1fef,
7294   0x1ffd, 0x1ffe,
7295   0x2044, 0x2044,
7296   0x2052, 0x2052,
7297   0x207a, 0x207c,
7298   0x208a, 0x208c,
7299   0x20a0, 0x20b5,
7300   0x2100, 0x2101,
7301   0x2103, 0x2106,
7302   0x2108, 0x2109,
7303   0x2114, 0x2114,
7304   0x2116, 0x2118,
7305   0x211e, 0x2123,
7306   0x2125, 0x2125,
7307   0x2127, 0x2127,
7308   0x2129, 0x2129,
7309   0x212e, 0x212e,
7310   0x2132, 0x2132,
7311   0x213a, 0x213b,
7312   0x2140, 0x2144,
7313   0x214a, 0x214c,
7314   0x2190, 0x2328,
7315   0x232b, 0x23b3,
7316   0x23b7, 0x23db,
7317   0x2400, 0x2426,
7318   0x2440, 0x244a,
7319   0x249c, 0x24e9,
7320   0x2500, 0x269c,
7321   0x26a0, 0x26b1,
7322   0x2701, 0x2704,
7323   0x2706, 0x2709,
7324   0x270c, 0x2727,
7325   0x2729, 0x274b,
7326   0x274d, 0x274d,
7327   0x274f, 0x2752,
7328   0x2756, 0x2756,
7329   0x2758, 0x275e,
7330   0x2761, 0x2767,
7331   0x2794, 0x2794,
7332   0x2798, 0x27af,
7333   0x27b1, 0x27be,
7334   0x27c0, 0x27c4,
7335   0x27d0, 0x27e5,
7336   0x27f0, 0x2982,
7337   0x2999, 0x29d7,
7338   0x29dc, 0x29fb,
7339   0x29fe, 0x2b13,
7340   0x2ce5, 0x2cea,
7341   0x2e80, 0x2e99,
7342   0x2e9b, 0x2ef3,
7343   0x2f00, 0x2fd5,
7344   0x2ff0, 0x2ffb,
7345   0x3004, 0x3004,
7346   0x3012, 0x3013,
7347   0x3020, 0x3020,
7348   0x3036, 0x3037,
7349   0x303e, 0x303f,
7350   0x309b, 0x309c,
7351   0x3190, 0x3191,
7352   0x3196, 0x319f,
7353   0x31c0, 0x31cf,
7354   0x3200, 0x321e,
7355   0x322a, 0x3243,
7356   0x3250, 0x3250,
7357   0x3260, 0x327f,
7358   0x328a, 0x32b0,
7359   0x32c0, 0x32fe,
7360   0x3300, 0x33ff,
7361   0x4dc0, 0x4dff,
7362   0xa490, 0xa4c6,
7363   0xa700, 0xa716,
7364   0xa828, 0xa82b,
7365   0xfb29, 0xfb29,
7366   0xfdfc, 0xfdfd,
7367   0xfe62, 0xfe62,
7368   0xfe64, 0xfe66,
7369   0xfe69, 0xfe69,
7370   0xff04, 0xff04,
7371   0xff0b, 0xff0b,
7372   0xff1c, 0xff1e,
7373   0xff3e, 0xff3e,
7374   0xff40, 0xff40,
7375   0xff5c, 0xff5c,
7376   0xff5e, 0xff5e,
7377   0xffe0, 0xffe6,
7378   0xffe8, 0xffee,
7379   0xfffc, 0xfffd,
7380   0x10102, 0x10102,
7381   0x10137, 0x1013f,
7382   0x10179, 0x10189,
7383   0x103d0, 0x103d0,
7384   0x1d000, 0x1d0f5,
7385   0x1d100, 0x1d126,
7386   0x1d12a, 0x1d164,
7387   0x1d16a, 0x1d16c,
7388   0x1d183, 0x1d184,
7389   0x1d18c, 0x1d1a9,
7390   0x1d1ae, 0x1d1dd,
7391   0x1d200, 0x1d241,
7392   0x1d245, 0x1d245,
7393   0x1d300, 0x1d356,
7394   0x1d6c1, 0x1d6c1,
7395   0x1d6db, 0x1d6db,
7396   0x1d6fb, 0x1d6fb,
7397   0x1d715, 0x1d715,
7398   0x1d735, 0x1d735,
7399   0x1d74f, 0x1d74f,
7400   0x1d76f, 0x1d76f,
7401   0x1d789, 0x1d789,
7402   0x1d7a9, 0x1d7a9,
7403   0x1d7c3, 0x1d7c3
7404 }; /* CR_S */
7405 
7406 /* 'Sc': General Category */
7407 static const OnigCodePoint CR_Sc[] = {
7408   14,
7409   0x0024, 0x0024,
7410   0x00a2, 0x00a5,
7411   0x060b, 0x060b,
7412   0x09f2, 0x09f3,
7413   0x0af1, 0x0af1,
7414   0x0bf9, 0x0bf9,
7415   0x0e3f, 0x0e3f,
7416   0x17db, 0x17db,
7417   0x20a0, 0x20b5,
7418   0xfdfc, 0xfdfc,
7419   0xfe69, 0xfe69,
7420   0xff04, 0xff04,
7421   0xffe0, 0xffe1,
7422   0xffe5, 0xffe6
7423 }; /* CR_Sc */
7424 
7425 /* 'Sk': General Category */
7426 static const OnigCodePoint CR_Sk[] = {
7427   23,
7428   0x005e, 0x005e,
7429   0x0060, 0x0060,
7430   0x00a8, 0x00a8,
7431   0x00af, 0x00af,
7432   0x00b4, 0x00b4,
7433   0x00b8, 0x00b8,
7434   0x02c2, 0x02c5,
7435   0x02d2, 0x02df,
7436   0x02e5, 0x02ed,
7437   0x02ef, 0x02ff,
7438   0x0374, 0x0375,
7439   0x0384, 0x0385,
7440   0x1fbd, 0x1fbd,
7441   0x1fbf, 0x1fc1,
7442   0x1fcd, 0x1fcf,
7443   0x1fdd, 0x1fdf,
7444   0x1fed, 0x1fef,
7445   0x1ffd, 0x1ffe,
7446   0x309b, 0x309c,
7447   0xa700, 0xa716,
7448   0xff3e, 0xff3e,
7449   0xff40, 0xff40,
7450   0xffe3, 0xffe3
7451 }; /* CR_Sk */
7452 
7453 /* 'Sm': General Category */
7454 static const OnigCodePoint CR_Sm[] = {
7455   59,
7456   0x002b, 0x002b,
7457   0x003c, 0x003e,
7458   0x007c, 0x007c,
7459   0x007e, 0x007e,
7460   0x00ac, 0x00ac,
7461   0x00b1, 0x00b1,
7462   0x00d7, 0x00d7,
7463   0x00f7, 0x00f7,
7464   0x03f6, 0x03f6,
7465   0x2044, 0x2044,
7466   0x2052, 0x2052,
7467   0x207a, 0x207c,
7468   0x208a, 0x208c,
7469   0x2140, 0x2144,
7470   0x214b, 0x214b,
7471   0x2190, 0x2194,
7472   0x219a, 0x219b,
7473   0x21a0, 0x21a0,
7474   0x21a3, 0x21a3,
7475   0x21a6, 0x21a6,
7476   0x21ae, 0x21ae,
7477   0x21ce, 0x21cf,
7478   0x21d2, 0x21d2,
7479   0x21d4, 0x21d4,
7480   0x21f4, 0x22ff,
7481   0x2308, 0x230b,
7482   0x2320, 0x2321,
7483   0x237c, 0x237c,
7484   0x239b, 0x23b3,
7485   0x25b7, 0x25b7,
7486   0x25c1, 0x25c1,
7487   0x25f8, 0x25ff,
7488   0x266f, 0x266f,
7489   0x27c0, 0x27c4,
7490   0x27d0, 0x27e5,
7491   0x27f0, 0x27ff,
7492   0x2900, 0x2982,
7493   0x2999, 0x29d7,
7494   0x29dc, 0x29fb,
7495   0x29fe, 0x2aff,
7496   0xfb29, 0xfb29,
7497   0xfe62, 0xfe62,
7498   0xfe64, 0xfe66,
7499   0xff0b, 0xff0b,
7500   0xff1c, 0xff1e,
7501   0xff5c, 0xff5c,
7502   0xff5e, 0xff5e,
7503   0xffe2, 0xffe2,
7504   0xffe9, 0xffec,
7505   0x1d6c1, 0x1d6c1,
7506   0x1d6db, 0x1d6db,
7507   0x1d6fb, 0x1d6fb,
7508   0x1d715, 0x1d715,
7509   0x1d735, 0x1d735,
7510   0x1d74f, 0x1d74f,
7511   0x1d76f, 0x1d76f,
7512   0x1d789, 0x1d789,
7513   0x1d7a9, 0x1d7a9,
7514   0x1d7c3, 0x1d7c3
7515 }; /* CR_Sm */
7516 
7517 /* 'So': General Category */
7518 static const OnigCodePoint CR_So[] = {
7519   120,
7520   0x00a6, 0x00a7,
7521   0x00a9, 0x00a9,
7522   0x00ae, 0x00ae,
7523   0x00b0, 0x00b0,
7524   0x00b6, 0x00b6,
7525   0x0482, 0x0482,
7526   0x060e, 0x060f,
7527   0x06e9, 0x06e9,
7528   0x06fd, 0x06fe,
7529   0x09fa, 0x09fa,
7530   0x0b70, 0x0b70,
7531   0x0bf3, 0x0bf8,
7532   0x0bfa, 0x0bfa,
7533   0x0f01, 0x0f03,
7534   0x0f13, 0x0f17,
7535   0x0f1a, 0x0f1f,
7536   0x0f34, 0x0f34,
7537   0x0f36, 0x0f36,
7538   0x0f38, 0x0f38,
7539   0x0fbe, 0x0fc5,
7540   0x0fc7, 0x0fcc,
7541   0x0fcf, 0x0fcf,
7542   0x1360, 0x1360,
7543   0x1390, 0x1399,
7544   0x1940, 0x1940,
7545   0x19e0, 0x19ff,
7546   0x2100, 0x2101,
7547   0x2103, 0x2106,
7548   0x2108, 0x2109,
7549   0x2114, 0x2114,
7550   0x2116, 0x2118,
7551   0x211e, 0x2123,
7552   0x2125, 0x2125,
7553   0x2127, 0x2127,
7554   0x2129, 0x2129,
7555   0x212e, 0x212e,
7556   0x2132, 0x2132,
7557   0x213a, 0x213b,
7558   0x214a, 0x214a,
7559   0x214c, 0x214c,
7560   0x2195, 0x2199,
7561   0x219c, 0x219f,
7562   0x21a1, 0x21a2,
7563   0x21a4, 0x21a5,
7564   0x21a7, 0x21ad,
7565   0x21af, 0x21cd,
7566   0x21d0, 0x21d1,
7567   0x21d3, 0x21d3,
7568   0x21d5, 0x21f3,
7569   0x2300, 0x2307,
7570   0x230c, 0x231f,
7571   0x2322, 0x2328,
7572   0x232b, 0x237b,
7573   0x237d, 0x239a,
7574   0x23b7, 0x23db,
7575   0x2400, 0x2426,
7576   0x2440, 0x244a,
7577   0x249c, 0x24e9,
7578   0x2500, 0x25b6,
7579   0x25b8, 0x25c0,
7580   0x25c2, 0x25f7,
7581   0x2600, 0x266e,
7582   0x2670, 0x269c,
7583   0x26a0, 0x26b1,
7584   0x2701, 0x2704,
7585   0x2706, 0x2709,
7586   0x270c, 0x2727,
7587   0x2729, 0x274b,
7588   0x274d, 0x274d,
7589   0x274f, 0x2752,
7590   0x2756, 0x2756,
7591   0x2758, 0x275e,
7592   0x2761, 0x2767,
7593   0x2794, 0x2794,
7594   0x2798, 0x27af,
7595   0x27b1, 0x27be,
7596   0x2800, 0x28ff,
7597   0x2b00, 0x2b13,
7598   0x2ce5, 0x2cea,
7599   0x2e80, 0x2e99,
7600   0x2e9b, 0x2ef3,
7601   0x2f00, 0x2fd5,
7602   0x2ff0, 0x2ffb,
7603   0x3004, 0x3004,
7604   0x3012, 0x3013,
7605   0x3020, 0x3020,
7606   0x3036, 0x3037,
7607   0x303e, 0x303f,
7608   0x3190, 0x3191,
7609   0x3196, 0x319f,
7610   0x31c0, 0x31cf,
7611   0x3200, 0x321e,
7612   0x322a, 0x3243,
7613   0x3250, 0x3250,
7614   0x3260, 0x327f,
7615   0x328a, 0x32b0,
7616   0x32c0, 0x32fe,
7617   0x3300, 0x33ff,
7618   0x4dc0, 0x4dff,
7619   0xa490, 0xa4c6,
7620   0xa828, 0xa82b,
7621   0xfdfd, 0xfdfd,
7622   0xffe4, 0xffe4,
7623   0xffe8, 0xffe8,
7624   0xffed, 0xffee,
7625   0xfffc, 0xfffd,
7626   0x10102, 0x10102,
7627   0x10137, 0x1013f,
7628   0x10179, 0x10189,
7629   0x103d0, 0x103d0,
7630   0x1d000, 0x1d0f5,
7631   0x1d100, 0x1d126,
7632   0x1d12a, 0x1d164,
7633   0x1d16a, 0x1d16c,
7634   0x1d183, 0x1d184,
7635   0x1d18c, 0x1d1a9,
7636   0x1d1ae, 0x1d1dd,
7637   0x1d200, 0x1d241,
7638   0x1d245, 0x1d245,
7639   0x1d300, 0x1d356
7640 }; /* CR_So */
7641 
7642 /* 'Z': Major Category */
7643 static const OnigCodePoint CR_Z[] = {
7644   9,
7645   0x0020, 0x0020,
7646   0x00a0, 0x00a0,
7647   0x1680, 0x1680,
7648   0x180e, 0x180e,
7649   0x2000, 0x200a,
7650   0x2028, 0x2029,
7651   0x202f, 0x202f,
7652   0x205f, 0x205f,
7653   0x3000, 0x3000
7654 }; /* CR_Z */
7655 
7656 /* 'Zl': General Category */
7657 static const OnigCodePoint CR_Zl[] = {
7658   1,
7659   0x2028, 0x2028
7660 }; /* CR_Zl */
7661 
7662 /* 'Zp': General Category */
7663 static const OnigCodePoint CR_Zp[] = {
7664   1,
7665   0x2029, 0x2029
7666 }; /* CR_Zp */
7667 
7668 /* 'Zs': General Category */
7669 static const OnigCodePoint CR_Zs[] = {
7670   8,
7671   0x0020, 0x0020,
7672   0x00a0, 0x00a0,
7673   0x1680, 0x1680,
7674   0x180e, 0x180e,
7675   0x2000, 0x200a,
7676   0x202f, 0x202f,
7677   0x205f, 0x205f,
7678   0x3000, 0x3000
7679 }; /* CR_Zs */
7680 
7681 /* 'Arabic': Script */
7682 static const OnigCodePoint CR_Arabic[] = {
7683   17,
7684   0x060b, 0x060b,
7685   0x060d, 0x0615,
7686   0x061e, 0x061e,
7687   0x0621, 0x063a,
7688   0x0641, 0x064a,
7689   0x0656, 0x065e,
7690   0x066a, 0x066f,
7691   0x0671, 0x06dc,
7692   0x06de, 0x06ff,
7693   0x0750, 0x076d,
7694   0xfb50, 0xfbb1,
7695   0xfbd3, 0xfd3d,
7696   0xfd50, 0xfd8f,
7697   0xfd92, 0xfdc7,
7698   0xfdf0, 0xfdfc,
7699   0xfe70, 0xfe74,
7700   0xfe76, 0xfefc
7701 }; /* CR_Arabic */
7702 
7703 /* 'Armenian': Script */
7704 static const OnigCodePoint CR_Armenian[] = {
7705   5,
7706   0x0531, 0x0556,
7707   0x0559, 0x055f,
7708   0x0561, 0x0587,
7709   0x058a, 0x058a,
7710   0xfb13, 0xfb17
7711 }; /* CR_Armenian */
7712 
7713 /* 'Bengali': Script */
7714 static const OnigCodePoint CR_Bengali[] = {
7715   14,
7716   0x0981, 0x0983,
7717   0x0985, 0x098c,
7718   0x098f, 0x0990,
7719   0x0993, 0x09a8,
7720   0x09aa, 0x09b0,
7721   0x09b2, 0x09b2,
7722   0x09b6, 0x09b9,
7723   0x09bc, 0x09c4,
7724   0x09c7, 0x09c8,
7725   0x09cb, 0x09ce,
7726   0x09d7, 0x09d7,
7727   0x09dc, 0x09dd,
7728   0x09df, 0x09e3,
7729   0x09e6, 0x09fa
7730 }; /* CR_Bengali */
7731 
7732 /* 'Bopomofo': Script */
7733 static const OnigCodePoint CR_Bopomofo[] = {
7734   2,
7735   0x3105, 0x312c,
7736   0x31a0, 0x31b7
7737 }; /* CR_Bopomofo */
7738 
7739 /* 'Braille': Script */
7740 static const OnigCodePoint CR_Braille[] = {
7741   1,
7742   0x2800, 0x28ff
7743 }; /* CR_Braille */
7744 
7745 /* 'Buginese': Script */
7746 static const OnigCodePoint CR_Buginese[] = {
7747   2,
7748   0x1a00, 0x1a1b,
7749   0x1a1e, 0x1a1f
7750 }; /* CR_Buginese */
7751 
7752 /* 'Buhid': Script */
7753 static const OnigCodePoint CR_Buhid[] = {
7754   1,
7755   0x1740, 0x1753
7756 }; /* CR_Buhid */
7757 
7758 /* 'Canadian_Aboriginal': Script */
7759 static const OnigCodePoint CR_Canadian_Aboriginal[] = {
7760   1,
7761   0x1401, 0x1676
7762 }; /* CR_Canadian_Aboriginal */
7763 
7764 /* 'Cherokee': Script */
7765 static const OnigCodePoint CR_Cherokee[] = {
7766   1,
7767   0x13a0, 0x13f4
7768 }; /* CR_Cherokee */
7769 
7770 /* 'Common': Script */
7771 static const OnigCodePoint CR_Common[] = {
7772   126,
7773   0x0000, 0x0040,
7774   0x005b, 0x0060,
7775   0x007b, 0x00a9,
7776   0x00ab, 0x00b9,
7777   0x00bb, 0x00bf,
7778   0x00d7, 0x00d7,
7779   0x00f7, 0x00f7,
7780   0x02b9, 0x02df,
7781   0x02e5, 0x02ff,
7782   0x037e, 0x037e,
7783   0x0387, 0x0387,
7784   0x0589, 0x0589,
7785   0x0600, 0x0603,
7786   0x060c, 0x060c,
7787   0x061b, 0x061b,
7788   0x061f, 0x061f,
7789   0x0640, 0x0640,
7790   0x0660, 0x0669,
7791   0x06dd, 0x06dd,
7792   0x0964, 0x0965,
7793   0x0970, 0x0970,
7794   0x0e3f, 0x0e3f,
7795   0x10fb, 0x10fb,
7796   0x16eb, 0x16ed,
7797   0x1735, 0x1736,
7798   0x2000, 0x200b,
7799   0x200e, 0x2063,
7800   0x206a, 0x2070,
7801   0x2074, 0x207e,
7802   0x2080, 0x208e,
7803   0x20a0, 0x20b5,
7804   0x2100, 0x2125,
7805   0x2127, 0x2129,
7806   0x212c, 0x214c,
7807   0x2153, 0x2183,
7808   0x2190, 0x23db,
7809   0x2400, 0x2426,
7810   0x2440, 0x244a,
7811   0x2460, 0x269c,
7812   0x26a0, 0x26b1,
7813   0x2701, 0x2704,
7814   0x2706, 0x2709,
7815   0x270c, 0x2727,
7816   0x2729, 0x274b,
7817   0x274d, 0x274d,
7818   0x274f, 0x2752,
7819   0x2756, 0x2756,
7820   0x2758, 0x275e,
7821   0x2761, 0x2794,
7822   0x2798, 0x27af,
7823   0x27b1, 0x27be,
7824   0x27c0, 0x27c6,
7825   0x27d0, 0x27eb,
7826   0x27f0, 0x27ff,
7827   0x2900, 0x2b13,
7828   0x2e00, 0x2e17,
7829   0x2e1c, 0x2e1d,
7830   0x2ff0, 0x2ffb,
7831   0x3000, 0x3004,
7832   0x3006, 0x3006,
7833   0x3008, 0x3020,
7834   0x3030, 0x3037,
7835   0x303c, 0x303f,
7836   0x309b, 0x309c,
7837   0x30a0, 0x30a0,
7838   0x30fb, 0x30fc,
7839   0x3190, 0x319f,
7840   0x31c0, 0x31cf,
7841   0x3220, 0x3243,
7842   0x3250, 0x325f,
7843   0x327e, 0x32fe,
7844   0x3300, 0x33ff,
7845   0x4dc0, 0x4dff,
7846   0xa700, 0xa716,
7847   0xe000, 0xf8ff,
7848   0xfd3e, 0xfd3f,
7849   0xfdfd, 0xfdfd,
7850   0xfe10, 0xfe19,
7851   0xfe30, 0xfe52,
7852   0xfe54, 0xfe66,
7853   0xfe68, 0xfe6b,
7854   0xfeff, 0xfeff,
7855   0xff01, 0xff20,
7856   0xff3b, 0xff40,
7857   0xff5b, 0xff65,
7858   0xff70, 0xff70,
7859   0xff9e, 0xff9f,
7860   0xffe0, 0xffe6,
7861   0xffe8, 0xffee,
7862   0xfff9, 0xfffd,
7863   0x10100, 0x10102,
7864   0x10107, 0x10133,
7865   0x10137, 0x1013f,
7866   0x1d000, 0x1d0f5,
7867   0x1d100, 0x1d126,
7868   0x1d12a, 0x1d166,
7869   0x1d16a, 0x1d17a,
7870   0x1d183, 0x1d184,
7871   0x1d18c, 0x1d1a9,
7872   0x1d1ae, 0x1d1dd,
7873   0x1d300, 0x1d356,
7874   0x1d400, 0x1d454,
7875   0x1d456, 0x1d49c,
7876   0x1d49e, 0x1d49f,
7877   0x1d4a2, 0x1d4a2,
7878   0x1d4a5, 0x1d4a6,
7879   0x1d4a9, 0x1d4ac,
7880   0x1d4ae, 0x1d4b9,
7881   0x1d4bb, 0x1d4bb,
7882   0x1d4bd, 0x1d4c3,
7883   0x1d4c5, 0x1d505,
7884   0x1d507, 0x1d50a,
7885   0x1d50d, 0x1d514,
7886   0x1d516, 0x1d51c,
7887   0x1d51e, 0x1d539,
7888   0x1d53b, 0x1d53e,
7889   0x1d540, 0x1d544,
7890   0x1d546, 0x1d546,
7891   0x1d54a, 0x1d550,
7892   0x1d552, 0x1d6a5,
7893   0x1d6a8, 0x1d7c9,
7894   0x1d7ce, 0x1d7ff,
7895   0xe0001, 0xe0001,
7896   0xe0020, 0xe007f,
7897   0xf0000, 0xffffd,
7898   0x100000, 0x10fffd
7899 }; /* CR_Common */
7900 
7901 /* 'Coptic': Script */
7902 static const OnigCodePoint CR_Coptic[] = {
7903   3,
7904   0x03e2, 0x03ef,
7905   0x2c80, 0x2cea,
7906   0x2cf9, 0x2cff
7907 }; /* CR_Coptic */
7908 
7909 /* 'Cypriot': Script */
7910 static const OnigCodePoint CR_Cypriot[] = {
7911   6,
7912   0x10800, 0x10805,
7913   0x10808, 0x10808,
7914   0x1080a, 0x10835,
7915   0x10837, 0x10838,
7916   0x1083c, 0x1083c,
7917   0x1083f, 0x1083f
7918 }; /* CR_Cypriot */
7919 
7920 /* 'Cyrillic': Script */
7921 static const OnigCodePoint CR_Cyrillic[] = {
7922   6,
7923   0x0400, 0x0486,
7924   0x0488, 0x04ce,
7925   0x04d0, 0x04f9,
7926   0x0500, 0x050f,
7927   0x1d2b, 0x1d2b,
7928   0x1d78, 0x1d78
7929 }; /* CR_Cyrillic */
7930 
7931 /* 'Deseret': Script */
7932 static const OnigCodePoint CR_Deseret[] = {
7933   1,
7934   0x10400, 0x1044f
7935 }; /* CR_Deseret */
7936 
7937 /* 'Devanagari': Script */
7938 static const OnigCodePoint CR_Devanagari[] = {
7939   6,
7940   0x0901, 0x0939,
7941   0x093c, 0x094d,
7942   0x0950, 0x0954,
7943   0x0958, 0x0963,
7944   0x0966, 0x096f,
7945   0x097d, 0x097d
7946 }; /* CR_Devanagari */
7947 
7948 /* 'Ethiopic': Script */
7949 static const OnigCodePoint CR_Ethiopic[] = {
7950   27,
7951   0x1200, 0x1248,
7952   0x124a, 0x124d,
7953   0x1250, 0x1256,
7954   0x1258, 0x1258,
7955   0x125a, 0x125d,
7956   0x1260, 0x1288,
7957   0x128a, 0x128d,
7958   0x1290, 0x12b0,
7959   0x12b2, 0x12b5,
7960   0x12b8, 0x12be,
7961   0x12c0, 0x12c0,
7962   0x12c2, 0x12c5,
7963   0x12c8, 0x12d6,
7964   0x12d8, 0x1310,
7965   0x1312, 0x1315,
7966   0x1318, 0x135a,
7967   0x135f, 0x137c,
7968   0x1380, 0x1399,
7969   0x2d80, 0x2d96,
7970   0x2da0, 0x2da6,
7971   0x2da8, 0x2dae,
7972   0x2db0, 0x2db6,
7973   0x2db8, 0x2dbe,
7974   0x2dc0, 0x2dc6,
7975   0x2dc8, 0x2dce,
7976   0x2dd0, 0x2dd6,
7977   0x2dd8, 0x2dde
7978 }; /* CR_Ethiopic */
7979 
7980 /* 'Georgian': Script */
7981 static const OnigCodePoint CR_Georgian[] = {
7982   4,
7983   0x10a0, 0x10c5,
7984   0x10d0, 0x10fa,
7985   0x10fc, 0x10fc,
7986   0x2d00, 0x2d25
7987 }; /* CR_Georgian */
7988 
7989 /* 'Glagolitic': Script */
7990 static const OnigCodePoint CR_Glagolitic[] = {
7991   2,
7992   0x2c00, 0x2c2e,
7993   0x2c30, 0x2c5e
7994 }; /* CR_Glagolitic */
7995 
7996 /* 'Gothic': Script */
7997 static const OnigCodePoint CR_Gothic[] = {
7998   1,
7999   0x10330, 0x1034a
8000 }; /* CR_Gothic */
8001 
8002 /* 'Greek': Script */
8003 static const OnigCodePoint CR_Greek[] = {
8004   31,
8005   0x0374, 0x0375,
8006   0x037a, 0x037a,
8007   0x0384, 0x0386,
8008   0x0388, 0x038a,
8009   0x038c, 0x038c,
8010   0x038e, 0x03a1,
8011   0x03a3, 0x03ce,
8012   0x03d0, 0x03e1,
8013   0x03f0, 0x03ff,
8014   0x1d26, 0x1d2a,
8015   0x1d5d, 0x1d61,
8016   0x1d66, 0x1d6a,
8017   0x1f00, 0x1f15,
8018   0x1f18, 0x1f1d,
8019   0x1f20, 0x1f45,
8020   0x1f48, 0x1f4d,
8021   0x1f50, 0x1f57,
8022   0x1f59, 0x1f59,
8023   0x1f5b, 0x1f5b,
8024   0x1f5d, 0x1f5d,
8025   0x1f5f, 0x1f7d,
8026   0x1f80, 0x1fb4,
8027   0x1fb6, 0x1fc4,
8028   0x1fc6, 0x1fd3,
8029   0x1fd6, 0x1fdb,
8030   0x1fdd, 0x1fef,
8031   0x1ff2, 0x1ff4,
8032   0x1ff6, 0x1ffe,
8033   0x2126, 0x2126,
8034   0x10140, 0x1018a,
8035   0x1d200, 0x1d245
8036 }; /* CR_Greek */
8037 
8038 /* 'Gujarati': Script */
8039 static const OnigCodePoint CR_Gujarati[] = {
8040   14,
8041   0x0a81, 0x0a83,
8042   0x0a85, 0x0a8d,
8043   0x0a8f, 0x0a91,
8044   0x0a93, 0x0aa8,
8045   0x0aaa, 0x0ab0,
8046   0x0ab2, 0x0ab3,
8047   0x0ab5, 0x0ab9,
8048   0x0abc, 0x0ac5,
8049   0x0ac7, 0x0ac9,
8050   0x0acb, 0x0acd,
8051   0x0ad0, 0x0ad0,
8052   0x0ae0, 0x0ae3,
8053   0x0ae6, 0x0aef,
8054   0x0af1, 0x0af1
8055 }; /* CR_Gujarati */
8056 
8057 /* 'Gurmukhi': Script */
8058 static const OnigCodePoint CR_Gurmukhi[] = {
8059   15,
8060   0x0a01, 0x0a03,
8061   0x0a05, 0x0a0a,
8062   0x0a0f, 0x0a10,
8063   0x0a13, 0x0a28,
8064   0x0a2a, 0x0a30,
8065   0x0a32, 0x0a33,
8066   0x0a35, 0x0a36,
8067   0x0a38, 0x0a39,
8068   0x0a3c, 0x0a3c,
8069   0x0a3e, 0x0a42,
8070   0x0a47, 0x0a48,
8071   0x0a4b, 0x0a4d,
8072   0x0a59, 0x0a5c,
8073   0x0a5e, 0x0a5e,
8074   0x0a66, 0x0a74
8075 }; /* CR_Gurmukhi */
8076 
8077 /* 'Han': Script */
8078 static const OnigCodePoint CR_Han[] = {
8079   14,
8080   0x2e80, 0x2e99,
8081   0x2e9b, 0x2ef3,
8082   0x2f00, 0x2fd5,
8083   0x3005, 0x3005,
8084   0x3007, 0x3007,
8085   0x3021, 0x3029,
8086   0x3038, 0x303b,
8087   0x3400, 0x4db5,
8088   0x4e00, 0x9fbb,
8089   0xf900, 0xfa2d,
8090   0xfa30, 0xfa6a,
8091   0xfa70, 0xfad9,
8092   0x20000, 0x2a6d6,
8093   0x2f800, 0x2fa1d
8094 }; /* CR_Han */
8095 
8096 /* 'Hangul': Script */
8097 static const OnigCodePoint CR_Hangul[] = {
8098   12,
8099   0x1100, 0x1159,
8100   0x115f, 0x11a2,
8101   0x11a8, 0x11f9,
8102   0x3131, 0x318e,
8103   0x3200, 0x321e,
8104   0x3260, 0x327d,
8105   0xac00, 0xd7a3,
8106   0xffa0, 0xffbe,
8107   0xffc2, 0xffc7,
8108   0xffca, 0xffcf,
8109   0xffd2, 0xffd7,
8110   0xffda, 0xffdc
8111 }; /* CR_Hangul */
8112 
8113 /* 'Hanunoo': Script */
8114 static const OnigCodePoint CR_Hanunoo[] = {
8115   1,
8116   0x1720, 0x1734
8117 }; /* CR_Hanunoo */
8118 
8119 /* 'Hebrew': Script */
8120 static const OnigCodePoint CR_Hebrew[] = {
8121   10,
8122   0x0591, 0x05b9,
8123   0x05bb, 0x05c7,
8124   0x05d0, 0x05ea,
8125   0x05f0, 0x05f4,
8126   0xfb1d, 0xfb36,
8127   0xfb38, 0xfb3c,
8128   0xfb3e, 0xfb3e,
8129   0xfb40, 0xfb41,
8130   0xfb43, 0xfb44,
8131   0xfb46, 0xfb4f
8132 }; /* CR_Hebrew */
8133 
8134 /* 'Hiragana': Script */
8135 static const OnigCodePoint CR_Hiragana[] = {
8136   2,
8137   0x3041, 0x3096,
8138   0x309d, 0x309f
8139 }; /* CR_Hiragana */
8140 
8141 /* 'Inherited': Script */
8142 static const OnigCodePoint CR_Inherited[] = {
8143   15,
8144   0x0300, 0x036f,
8145   0x064b, 0x0655,
8146   0x0670, 0x0670,
8147   0x1dc0, 0x1dc3,
8148   0x200c, 0x200d,
8149   0x20d0, 0x20eb,
8150   0x302a, 0x302f,
8151   0x3099, 0x309a,
8152   0xfe00, 0xfe0f,
8153   0xfe20, 0xfe23,
8154   0x1d167, 0x1d169,
8155   0x1d17b, 0x1d182,
8156   0x1d185, 0x1d18b,
8157   0x1d1aa, 0x1d1ad,
8158   0xe0100, 0xe01ef
8159 }; /* CR_Inherited */
8160 
8161 /* 'Kannada': Script */
8162 static const OnigCodePoint CR_Kannada[] = {
8163   13,
8164   0x0c82, 0x0c83,
8165   0x0c85, 0x0c8c,
8166   0x0c8e, 0x0c90,
8167   0x0c92, 0x0ca8,
8168   0x0caa, 0x0cb3,
8169   0x0cb5, 0x0cb9,
8170   0x0cbc, 0x0cc4,
8171   0x0cc6, 0x0cc8,
8172   0x0cca, 0x0ccd,
8173   0x0cd5, 0x0cd6,
8174   0x0cde, 0x0cde,
8175   0x0ce0, 0x0ce1,
8176   0x0ce6, 0x0cef
8177 }; /* CR_Kannada */
8178 
8179 /* 'Katakana': Script */
8180 static const OnigCodePoint CR_Katakana[] = {
8181   5,
8182   0x30a1, 0x30fa,
8183   0x30fd, 0x30ff,
8184   0x31f0, 0x31ff,
8185   0xff66, 0xff6f,
8186   0xff71, 0xff9d
8187 }; /* CR_Katakana */
8188 
8189 /* 'Kharoshthi': Script */
8190 static const OnigCodePoint CR_Kharoshthi[] = {
8191   8,
8192   0x10a00, 0x10a03,
8193   0x10a05, 0x10a06,
8194   0x10a0c, 0x10a13,
8195   0x10a15, 0x10a17,
8196   0x10a19, 0x10a33,
8197   0x10a38, 0x10a3a,
8198   0x10a3f, 0x10a47,
8199   0x10a50, 0x10a58
8200 }; /* CR_Kharoshthi */
8201 
8202 /* 'Khmer': Script */
8203 static const OnigCodePoint CR_Khmer[] = {
8204   4,
8205   0x1780, 0x17dd,
8206   0x17e0, 0x17e9,
8207   0x17f0, 0x17f9,
8208   0x19e0, 0x19ff
8209 }; /* CR_Khmer */
8210 
8211 /* 'Lao': Script */
8212 static const OnigCodePoint CR_Lao[] = {
8213   18,
8214   0x0e81, 0x0e82,
8215   0x0e84, 0x0e84,
8216   0x0e87, 0x0e88,
8217   0x0e8a, 0x0e8a,
8218   0x0e8d, 0x0e8d,
8219   0x0e94, 0x0e97,
8220   0x0e99, 0x0e9f,
8221   0x0ea1, 0x0ea3,
8222   0x0ea5, 0x0ea5,
8223   0x0ea7, 0x0ea7,
8224   0x0eaa, 0x0eab,
8225   0x0ead, 0x0eb9,
8226   0x0ebb, 0x0ebd,
8227   0x0ec0, 0x0ec4,
8228   0x0ec6, 0x0ec6,
8229   0x0ec8, 0x0ecd,
8230   0x0ed0, 0x0ed9,
8231   0x0edc, 0x0edd
8232 }; /* CR_Lao */
8233 
8234 /* 'Latin': Script */
8235 static const OnigCodePoint CR_Latin[] = {
8236   23,
8237   0x0041, 0x005a,
8238   0x0061, 0x007a,
8239   0x00aa, 0x00aa,
8240   0x00ba, 0x00ba,
8241   0x00c0, 0x00d6,
8242   0x00d8, 0x00f6,
8243   0x00f8, 0x0241,
8244   0x0250, 0x02b8,
8245   0x02e0, 0x02e4,
8246   0x1d00, 0x1d25,
8247   0x1d2c, 0x1d5c,
8248   0x1d62, 0x1d65,
8249   0x1d6b, 0x1d77,
8250   0x1d79, 0x1dbf,
8251   0x1e00, 0x1e9b,
8252   0x1ea0, 0x1ef9,
8253   0x2071, 0x2071,
8254   0x207f, 0x207f,
8255   0x2090, 0x2094,
8256   0x212a, 0x212b,
8257   0xfb00, 0xfb06,
8258   0xff21, 0xff3a,
8259   0xff41, 0xff5a
8260 }; /* CR_Latin */
8261 
8262 /* 'Limbu': Script */
8263 static const OnigCodePoint CR_Limbu[] = {
8264   5,
8265   0x1900, 0x191c,
8266   0x1920, 0x192b,
8267   0x1930, 0x193b,
8268   0x1940, 0x1940,
8269   0x1944, 0x194f
8270 }; /* CR_Limbu */
8271 
8272 /* 'Linear_B': Script */
8273 static const OnigCodePoint CR_Linear_B[] = {
8274   7,
8275   0x10000, 0x1000b,
8276   0x1000d, 0x10026,
8277   0x10028, 0x1003a,
8278   0x1003c, 0x1003d,
8279   0x1003f, 0x1004d,
8280   0x10050, 0x1005d,
8281   0x10080, 0x100fa
8282 }; /* CR_Linear_B */
8283 
8284 /* 'Malayalam': Script */
8285 static const OnigCodePoint CR_Malayalam[] = {
8286   11,
8287   0x0d02, 0x0d03,
8288   0x0d05, 0x0d0c,
8289   0x0d0e, 0x0d10,
8290   0x0d12, 0x0d28,
8291   0x0d2a, 0x0d39,
8292   0x0d3e, 0x0d43,
8293   0x0d46, 0x0d48,
8294   0x0d4a, 0x0d4d,
8295   0x0d57, 0x0d57,
8296   0x0d60, 0x0d61,
8297   0x0d66, 0x0d6f
8298 }; /* CR_Malayalam */
8299 
8300 /* 'Mongolian': Script */
8301 static const OnigCodePoint CR_Mongolian[] = {
8302   4,
8303   0x1800, 0x180e,
8304   0x1810, 0x1819,
8305   0x1820, 0x1877,
8306   0x1880, 0x18a9
8307 }; /* CR_Mongolian */
8308 
8309 /* 'Myanmar': Script */
8310 static const OnigCodePoint CR_Myanmar[] = {
8311   6,
8312   0x1000, 0x1021,
8313   0x1023, 0x1027,
8314   0x1029, 0x102a,
8315   0x102c, 0x1032,
8316   0x1036, 0x1039,
8317   0x1040, 0x1059
8318 }; /* CR_Myanmar */
8319 
8320 /* 'New_Tai_Lue': Script */
8321 static const OnigCodePoint CR_New_Tai_Lue[] = {
8322   4,
8323   0x1980, 0x19a9,
8324   0x19b0, 0x19c9,
8325   0x19d0, 0x19d9,
8326   0x19de, 0x19df
8327 }; /* CR_New_Tai_Lue */
8328 
8329 /* 'Ogham': Script */
8330 static const OnigCodePoint CR_Ogham[] = {
8331   1,
8332   0x1680, 0x169c
8333 }; /* CR_Ogham */
8334 
8335 /* 'Old_Italic': Script */
8336 static const OnigCodePoint CR_Old_Italic[] = {
8337   2,
8338   0x10300, 0x1031e,
8339   0x10320, 0x10323
8340 }; /* CR_Old_Italic */
8341 
8342 /* 'Old_Persian': Script */
8343 static const OnigCodePoint CR_Old_Persian[] = {
8344   2,
8345   0x103a0, 0x103c3,
8346   0x103c8, 0x103d5
8347 }; /* CR_Old_Persian */
8348 
8349 /* 'Oriya': Script */
8350 static const OnigCodePoint CR_Oriya[] = {
8351   14,
8352   0x0b01, 0x0b03,
8353   0x0b05, 0x0b0c,
8354   0x0b0f, 0x0b10,
8355   0x0b13, 0x0b28,
8356   0x0b2a, 0x0b30,
8357   0x0b32, 0x0b33,
8358   0x0b35, 0x0b39,
8359   0x0b3c, 0x0b43,
8360   0x0b47, 0x0b48,
8361   0x0b4b, 0x0b4d,
8362   0x0b56, 0x0b57,
8363   0x0b5c, 0x0b5d,
8364   0x0b5f, 0x0b61,
8365   0x0b66, 0x0b71
8366 }; /* CR_Oriya */
8367 
8368 /* 'Osmanya': Script */
8369 static const OnigCodePoint CR_Osmanya[] = {
8370   2,
8371   0x10480, 0x1049d,
8372   0x104a0, 0x104a9
8373 }; /* CR_Osmanya */
8374 
8375 /* 'Runic': Script */
8376 static const OnigCodePoint CR_Runic[] = {
8377   2,
8378   0x16a0, 0x16ea,
8379   0x16ee, 0x16f0
8380 }; /* CR_Runic */
8381 
8382 /* 'Shavian': Script */
8383 static const OnigCodePoint CR_Shavian[] = {
8384   1,
8385   0x10450, 0x1047f
8386 }; /* CR_Shavian */
8387 
8388 /* 'Sinhala': Script */
8389 static const OnigCodePoint CR_Sinhala[] = {
8390   11,
8391   0x0d82, 0x0d83,
8392   0x0d85, 0x0d96,
8393   0x0d9a, 0x0db1,
8394   0x0db3, 0x0dbb,
8395   0x0dbd, 0x0dbd,
8396   0x0dc0, 0x0dc6,
8397   0x0dca, 0x0dca,
8398   0x0dcf, 0x0dd4,
8399   0x0dd6, 0x0dd6,
8400   0x0dd8, 0x0ddf,
8401   0x0df2, 0x0df4
8402 }; /* CR_Sinhala */
8403 
8404 /* 'Syloti_Nagri': Script */
8405 static const OnigCodePoint CR_Syloti_Nagri[] = {
8406   1,
8407   0xa800, 0xa82b
8408 }; /* CR_Syloti_Nagri */
8409 
8410 /* 'Syriac': Script */
8411 static const OnigCodePoint CR_Syriac[] = {
8412   3,
8413   0x0700, 0x070d,
8414   0x070f, 0x074a,
8415   0x074d, 0x074f
8416 }; /* CR_Syriac */
8417 
8418 /* 'Tagalog': Script */
8419 static const OnigCodePoint CR_Tagalog[] = {
8420   2,
8421   0x1700, 0x170c,
8422   0x170e, 0x1714
8423 }; /* CR_Tagalog */
8424 
8425 /* 'Tagbanwa': Script */
8426 static const OnigCodePoint CR_Tagbanwa[] = {
8427   3,
8428   0x1760, 0x176c,
8429   0x176e, 0x1770,
8430   0x1772, 0x1773
8431 }; /* CR_Tagbanwa */
8432 
8433 /* 'Tai_Le': Script */
8434 static const OnigCodePoint CR_Tai_Le[] = {
8435   2,
8436   0x1950, 0x196d,
8437   0x1970, 0x1974
8438 }; /* CR_Tai_Le */
8439 
8440 /* 'Tamil': Script */
8441 static const OnigCodePoint CR_Tamil[] = {
8442   15,
8443   0x0b82, 0x0b83,
8444   0x0b85, 0x0b8a,
8445   0x0b8e, 0x0b90,
8446   0x0b92, 0x0b95,
8447   0x0b99, 0x0b9a,
8448   0x0b9c, 0x0b9c,
8449   0x0b9e, 0x0b9f,
8450   0x0ba3, 0x0ba4,
8451   0x0ba8, 0x0baa,
8452   0x0bae, 0x0bb9,
8453   0x0bbe, 0x0bc2,
8454   0x0bc6, 0x0bc8,
8455   0x0bca, 0x0bcd,
8456   0x0bd7, 0x0bd7,
8457   0x0be6, 0x0bfa
8458 }; /* CR_Tamil */
8459 
8460 /* 'Telugu': Script */
8461 static const OnigCodePoint CR_Telugu[] = {
8462   12,
8463   0x0c01, 0x0c03,
8464   0x0c05, 0x0c0c,
8465   0x0c0e, 0x0c10,
8466   0x0c12, 0x0c28,
8467   0x0c2a, 0x0c33,
8468   0x0c35, 0x0c39,
8469   0x0c3e, 0x0c44,
8470   0x0c46, 0x0c48,
8471   0x0c4a, 0x0c4d,
8472   0x0c55, 0x0c56,
8473   0x0c60, 0x0c61,
8474   0x0c66, 0x0c6f
8475 }; /* CR_Telugu */
8476 
8477 /* 'Thaana': Script */
8478 static const OnigCodePoint CR_Thaana[] = {
8479   1,
8480   0x0780, 0x07b1
8481 }; /* CR_Thaana */
8482 
8483 /* 'Thai': Script */
8484 static const OnigCodePoint CR_Thai[] = {
8485   2,
8486   0x0e01, 0x0e3a,
8487   0x0e40, 0x0e5b
8488 }; /* CR_Thai */
8489 
8490 /* 'Tibetan': Script */
8491 static const OnigCodePoint CR_Tibetan[] = {
8492   7,
8493   0x0f00, 0x0f47,
8494   0x0f49, 0x0f6a,
8495   0x0f71, 0x0f8b,
8496   0x0f90, 0x0f97,
8497   0x0f99, 0x0fbc,
8498   0x0fbe, 0x0fcc,
8499   0x0fcf, 0x0fd1
8500 }; /* CR_Tibetan */
8501 
8502 /* 'Tifinagh': Script */
8503 static const OnigCodePoint CR_Tifinagh[] = {
8504   2,
8505   0x2d30, 0x2d65,
8506   0x2d6f, 0x2d6f
8507 }; /* CR_Tifinagh */
8508 
8509 /* 'Ugaritic': Script */
8510 static const OnigCodePoint CR_Ugaritic[] = {
8511   2,
8512   0x10380, 0x1039d,
8513   0x1039f, 0x1039f
8514 }; /* CR_Ugaritic */
8515 
8516 /* 'Yi': Script */
8517 static const OnigCodePoint CR_Yi[] = {
8518   2,
8519   0xa000, 0xa48c,
8520   0xa490, 0xa4c6
8521 }; /* CR_Yi */
8522 
8523 
8524 #endif /* USE_UNICODE_PROPERTIES */
8525 
8526 
8527 typedef struct {
8528   int n;
8529   OnigCodePoint code[3];
8530 } CodePointList3;
8531 
8532 typedef struct {
8533   OnigCodePoint  from;
8534   CodePointList3 to;
8535 } CaseFold_11_Type;
8536 
8537 typedef struct {
8538   OnigCodePoint  from;
8539   CodePointList3 to;
8540 } CaseUnfold_11_Type;
8541 
8542 typedef struct {
8543   int n;
8544   OnigCodePoint code[2];
8545 } CodePointList2;
8546 
8547 typedef struct {
8548   OnigCodePoint  from[2];
8549   CodePointList2 to;
8550 } CaseUnfold_12_Type;
8551 
8552 typedef struct {
8553   OnigCodePoint  from[3];
8554   CodePointList2 to;
8555 } CaseUnfold_13_Type;
8556 
8557 static const CaseFold_11_Type CaseFold[] = {
8558  { 0x0041, {1, {0x0061}}},
8559  { 0x0042, {1, {0x0062}}},
8560  { 0x0043, {1, {0x0063}}},
8561  { 0x0044, {1, {0x0064}}},
8562  { 0x0045, {1, {0x0065}}},
8563  { 0x0046, {1, {0x0066}}},
8564  { 0x0047, {1, {0x0067}}},
8565  { 0x0048, {1, {0x0068}}},
8566  { 0x004a, {1, {0x006a}}},
8567  { 0x004b, {1, {0x006b}}},
8568  { 0x004c, {1, {0x006c}}},
8569  { 0x004d, {1, {0x006d}}},
8570  { 0x004e, {1, {0x006e}}},
8571  { 0x004f, {1, {0x006f}}},
8572  { 0x0050, {1, {0x0070}}},
8573  { 0x0051, {1, {0x0071}}},
8574  { 0x0052, {1, {0x0072}}},
8575  { 0x0053, {1, {0x0073}}},
8576  { 0x0054, {1, {0x0074}}},
8577  { 0x0055, {1, {0x0075}}},
8578  { 0x0056, {1, {0x0076}}},
8579  { 0x0057, {1, {0x0077}}},
8580  { 0x0058, {1, {0x0078}}},
8581  { 0x0059, {1, {0x0079}}},
8582  { 0x005a, {1, {0x007a}}},
8583  { 0x00b5, {1, {0x03bc}}},
8584  { 0x00c0, {1, {0x00e0}}},
8585  { 0x00c1, {1, {0x00e1}}},
8586  { 0x00c2, {1, {0x00e2}}},
8587  { 0x00c3, {1, {0x00e3}}},
8588  { 0x00c4, {1, {0x00e4}}},
8589  { 0x00c5, {1, {0x00e5}}},
8590  { 0x00c6, {1, {0x00e6}}},
8591  { 0x00c7, {1, {0x00e7}}},
8592  { 0x00c8, {1, {0x00e8}}},
8593  { 0x00c9, {1, {0x00e9}}},
8594  { 0x00ca, {1, {0x00ea}}},
8595  { 0x00cb, {1, {0x00eb}}},
8596  { 0x00cc, {1, {0x00ec}}},
8597  { 0x00cd, {1, {0x00ed}}},
8598  { 0x00ce, {1, {0x00ee}}},
8599  { 0x00cf, {1, {0x00ef}}},
8600  { 0x00d0, {1, {0x00f0}}},
8601  { 0x00d1, {1, {0x00f1}}},
8602  { 0x00d2, {1, {0x00f2}}},
8603  { 0x00d3, {1, {0x00f3}}},
8604  { 0x00d4, {1, {0x00f4}}},
8605  { 0x00d5, {1, {0x00f5}}},
8606  { 0x00d6, {1, {0x00f6}}},
8607  { 0x00d8, {1, {0x00f8}}},
8608  { 0x00d9, {1, {0x00f9}}},
8609  { 0x00da, {1, {0x00fa}}},
8610  { 0x00db, {1, {0x00fb}}},
8611  { 0x00dc, {1, {0x00fc}}},
8612  { 0x00dd, {1, {0x00fd}}},
8613  { 0x00de, {1, {0x00fe}}},
8614  { 0x00df, {2, {0x0073, 0x0073}}},
8615  { 0x0100, {1, {0x0101}}},
8616  { 0x0102, {1, {0x0103}}},
8617  { 0x0104, {1, {0x0105}}},
8618  { 0x0106, {1, {0x0107}}},
8619  { 0x0108, {1, {0x0109}}},
8620  { 0x010a, {1, {0x010b}}},
8621  { 0x010c, {1, {0x010d}}},
8622  { 0x010e, {1, {0x010f}}},
8623  { 0x0110, {1, {0x0111}}},
8624  { 0x0112, {1, {0x0113}}},
8625  { 0x0114, {1, {0x0115}}},
8626  { 0x0116, {1, {0x0117}}},
8627  { 0x0118, {1, {0x0119}}},
8628  { 0x011a, {1, {0x011b}}},
8629  { 0x011c, {1, {0x011d}}},
8630  { 0x011e, {1, {0x011f}}},
8631  { 0x0120, {1, {0x0121}}},
8632  { 0x0122, {1, {0x0123}}},
8633  { 0x0124, {1, {0x0125}}},
8634  { 0x0126, {1, {0x0127}}},
8635  { 0x0128, {1, {0x0129}}},
8636  { 0x012a, {1, {0x012b}}},
8637  { 0x012c, {1, {0x012d}}},
8638  { 0x012e, {1, {0x012f}}},
8639  { 0x0132, {1, {0x0133}}},
8640  { 0x0134, {1, {0x0135}}},
8641  { 0x0136, {1, {0x0137}}},
8642  { 0x0139, {1, {0x013a}}},
8643  { 0x013b, {1, {0x013c}}},
8644  { 0x013d, {1, {0x013e}}},
8645  { 0x013f, {1, {0x0140}}},
8646  { 0x0141, {1, {0x0142}}},
8647  { 0x0143, {1, {0x0144}}},
8648  { 0x0145, {1, {0x0146}}},
8649  { 0x0147, {1, {0x0148}}},
8650  { 0x0149, {2, {0x02bc, 0x006e}}},
8651  { 0x014a, {1, {0x014b}}},
8652  { 0x014c, {1, {0x014d}}},
8653  { 0x014e, {1, {0x014f}}},
8654  { 0x0150, {1, {0x0151}}},
8655  { 0x0152, {1, {0x0153}}},
8656  { 0x0154, {1, {0x0155}}},
8657  { 0x0156, {1, {0x0157}}},
8658  { 0x0158, {1, {0x0159}}},
8659  { 0x015a, {1, {0x015b}}},
8660  { 0x015c, {1, {0x015d}}},
8661  { 0x015e, {1, {0x015f}}},
8662  { 0x0160, {1, {0x0161}}},
8663  { 0x0162, {1, {0x0163}}},
8664  { 0x0164, {1, {0x0165}}},
8665  { 0x0166, {1, {0x0167}}},
8666  { 0x0168, {1, {0x0169}}},
8667  { 0x016a, {1, {0x016b}}},
8668  { 0x016c, {1, {0x016d}}},
8669  { 0x016e, {1, {0x016f}}},
8670  { 0x0170, {1, {0x0171}}},
8671  { 0x0172, {1, {0x0173}}},
8672  { 0x0174, {1, {0x0175}}},
8673  { 0x0176, {1, {0x0177}}},
8674  { 0x0178, {1, {0x00ff}}},
8675  { 0x0179, {1, {0x017a}}},
8676  { 0x017b, {1, {0x017c}}},
8677  { 0x017d, {1, {0x017e}}},
8678  { 0x017f, {1, {0x0073}}},
8679  { 0x0181, {1, {0x0253}}},
8680  { 0x0182, {1, {0x0183}}},
8681  { 0x0184, {1, {0x0185}}},
8682  { 0x0186, {1, {0x0254}}},
8683  { 0x0187, {1, {0x0188}}},
8684  { 0x0189, {1, {0x0256}}},
8685  { 0x018a, {1, {0x0257}}},
8686  { 0x018b, {1, {0x018c}}},
8687  { 0x018e, {1, {0x01dd}}},
8688  { 0x018f, {1, {0x0259}}},
8689  { 0x0190, {1, {0x025b}}},
8690  { 0x0191, {1, {0x0192}}},
8691  { 0x0193, {1, {0x0260}}},
8692  { 0x0194, {1, {0x0263}}},
8693  { 0x0196, {1, {0x0269}}},
8694  { 0x0197, {1, {0x0268}}},
8695  { 0x0198, {1, {0x0199}}},
8696  { 0x019c, {1, {0x026f}}},
8697  { 0x019d, {1, {0x0272}}},
8698  { 0x019f, {1, {0x0275}}},
8699  { 0x01a0, {1, {0x01a1}}},
8700  { 0x01a2, {1, {0x01a3}}},
8701  { 0x01a4, {1, {0x01a5}}},
8702  { 0x01a6, {1, {0x0280}}},
8703  { 0x01a7, {1, {0x01a8}}},
8704  { 0x01a9, {1, {0x0283}}},
8705  { 0x01ac, {1, {0x01ad}}},
8706  { 0x01ae, {1, {0x0288}}},
8707  { 0x01af, {1, {0x01b0}}},
8708  { 0x01b1, {1, {0x028a}}},
8709  { 0x01b2, {1, {0x028b}}},
8710  { 0x01b3, {1, {0x01b4}}},
8711  { 0x01b5, {1, {0x01b6}}},
8712  { 0x01b7, {1, {0x0292}}},
8713  { 0x01b8, {1, {0x01b9}}},
8714  { 0x01bc, {1, {0x01bd}}},
8715  { 0x01c4, {1, {0x01c6}}},
8716  { 0x01c5, {1, {0x01c6}}},
8717  { 0x01c7, {1, {0x01c9}}},
8718  { 0x01c8, {1, {0x01c9}}},
8719  { 0x01ca, {1, {0x01cc}}},
8720  { 0x01cb, {1, {0x01cc}}},
8721  { 0x01cd, {1, {0x01ce}}},
8722  { 0x01cf, {1, {0x01d0}}},
8723  { 0x01d1, {1, {0x01d2}}},
8724  { 0x01d3, {1, {0x01d4}}},
8725  { 0x01d5, {1, {0x01d6}}},
8726  { 0x01d7, {1, {0x01d8}}},
8727  { 0x01d9, {1, {0x01da}}},
8728  { 0x01db, {1, {0x01dc}}},
8729  { 0x01de, {1, {0x01df}}},
8730  { 0x01e0, {1, {0x01e1}}},
8731  { 0x01e2, {1, {0x01e3}}},
8732  { 0x01e4, {1, {0x01e5}}},
8733  { 0x01e6, {1, {0x01e7}}},
8734  { 0x01e8, {1, {0x01e9}}},
8735  { 0x01ea, {1, {0x01eb}}},
8736  { 0x01ec, {1, {0x01ed}}},
8737  { 0x01ee, {1, {0x01ef}}},
8738  { 0x01f0, {2, {0x006a, 0x030c}}},
8739  { 0x01f1, {1, {0x01f3}}},
8740  { 0x01f2, {1, {0x01f3}}},
8741  { 0x01f4, {1, {0x01f5}}},
8742  { 0x01f6, {1, {0x0195}}},
8743  { 0x01f7, {1, {0x01bf}}},
8744  { 0x01f8, {1, {0x01f9}}},
8745  { 0x01fa, {1, {0x01fb}}},
8746  { 0x01fc, {1, {0x01fd}}},
8747  { 0x01fe, {1, {0x01ff}}},
8748  { 0x0200, {1, {0x0201}}},
8749  { 0x0202, {1, {0x0203}}},
8750  { 0x0204, {1, {0x0205}}},
8751  { 0x0206, {1, {0x0207}}},
8752  { 0x0208, {1, {0x0209}}},
8753  { 0x020a, {1, {0x020b}}},
8754  { 0x020c, {1, {0x020d}}},
8755  { 0x020e, {1, {0x020f}}},
8756  { 0x0210, {1, {0x0211}}},
8757  { 0x0212, {1, {0x0213}}},
8758  { 0x0214, {1, {0x0215}}},
8759  { 0x0216, {1, {0x0217}}},
8760  { 0x0218, {1, {0x0219}}},
8761  { 0x021a, {1, {0x021b}}},
8762  { 0x021c, {1, {0x021d}}},
8763  { 0x021e, {1, {0x021f}}},
8764  { 0x0220, {1, {0x019e}}},
8765  { 0x0222, {1, {0x0223}}},
8766  { 0x0224, {1, {0x0225}}},
8767  { 0x0226, {1, {0x0227}}},
8768  { 0x0228, {1, {0x0229}}},
8769  { 0x022a, {1, {0x022b}}},
8770  { 0x022c, {1, {0x022d}}},
8771  { 0x022e, {1, {0x022f}}},
8772  { 0x0230, {1, {0x0231}}},
8773  { 0x0232, {1, {0x0233}}},
8774  { 0x023b, {1, {0x023c}}},
8775  { 0x023d, {1, {0x019a}}},
8776  { 0x0241, {1, {0x0294}}},
8777  { 0x0345, {1, {0x03b9}}},
8778  { 0x0386, {1, {0x03ac}}},
8779  { 0x0388, {1, {0x03ad}}},
8780  { 0x0389, {1, {0x03ae}}},
8781  { 0x038a, {1, {0x03af}}},
8782  { 0x038c, {1, {0x03cc}}},
8783  { 0x038e, {1, {0x03cd}}},
8784  { 0x038f, {1, {0x03ce}}},
8785  { 0x0390, {3, {0x03b9, 0x0308, 0x0301}}},
8786  { 0x0391, {1, {0x03b1}}},
8787  { 0x0392, {1, {0x03b2}}},
8788  { 0x0393, {1, {0x03b3}}},
8789  { 0x0394, {1, {0x03b4}}},
8790  { 0x0395, {1, {0x03b5}}},
8791  { 0x0396, {1, {0x03b6}}},
8792  { 0x0397, {1, {0x03b7}}},
8793  { 0x0398, {1, {0x03b8}}},
8794  { 0x0399, {1, {0x03b9}}},
8795  { 0x039a, {1, {0x03ba}}},
8796  { 0x039b, {1, {0x03bb}}},
8797  { 0x039c, {1, {0x03bc}}},
8798  { 0x039d, {1, {0x03bd}}},
8799  { 0x039e, {1, {0x03be}}},
8800  { 0x039f, {1, {0x03bf}}},
8801  { 0x03a0, {1, {0x03c0}}},
8802  { 0x03a1, {1, {0x03c1}}},
8803  { 0x03a3, {1, {0x03c3}}},
8804  { 0x03a4, {1, {0x03c4}}},
8805  { 0x03a5, {1, {0x03c5}}},
8806  { 0x03a6, {1, {0x03c6}}},
8807  { 0x03a7, {1, {0x03c7}}},
8808  { 0x03a8, {1, {0x03c8}}},
8809  { 0x03a9, {1, {0x03c9}}},
8810  { 0x03aa, {1, {0x03ca}}},
8811  { 0x03ab, {1, {0x03cb}}},
8812  { 0x03b0, {3, {0x03c5, 0x0308, 0x0301}}},
8813  { 0x03c2, {1, {0x03c3}}},
8814  { 0x03d0, {1, {0x03b2}}},
8815  { 0x03d1, {1, {0x03b8}}},
8816  { 0x03d5, {1, {0x03c6}}},
8817  { 0x03d6, {1, {0x03c0}}},
8818  { 0x03d8, {1, {0x03d9}}},
8819  { 0x03da, {1, {0x03db}}},
8820  { 0x03dc, {1, {0x03dd}}},
8821  { 0x03de, {1, {0x03df}}},
8822  { 0x03e0, {1, {0x03e1}}},
8823  { 0x03e2, {1, {0x03e3}}},
8824  { 0x03e4, {1, {0x03e5}}},
8825  { 0x03e6, {1, {0x03e7}}},
8826  { 0x03e8, {1, {0x03e9}}},
8827  { 0x03ea, {1, {0x03eb}}},
8828  { 0x03ec, {1, {0x03ed}}},
8829  { 0x03ee, {1, {0x03ef}}},
8830  { 0x03f0, {1, {0x03ba}}},
8831  { 0x03f1, {1, {0x03c1}}},
8832  { 0x03f4, {1, {0x03b8}}},
8833  { 0x03f5, {1, {0x03b5}}},
8834  { 0x03f7, {1, {0x03f8}}},
8835  { 0x03f9, {1, {0x03f2}}},
8836  { 0x03fa, {1, {0x03fb}}},
8837  { 0x0400, {1, {0x0450}}},
8838  { 0x0401, {1, {0x0451}}},
8839  { 0x0402, {1, {0x0452}}},
8840  { 0x0403, {1, {0x0453}}},
8841  { 0x0404, {1, {0x0454}}},
8842  { 0x0405, {1, {0x0455}}},
8843  { 0x0406, {1, {0x0456}}},
8844  { 0x0407, {1, {0x0457}}},
8845  { 0x0408, {1, {0x0458}}},
8846  { 0x0409, {1, {0x0459}}},
8847  { 0x040a, {1, {0x045a}}},
8848  { 0x040b, {1, {0x045b}}},
8849  { 0x040c, {1, {0x045c}}},
8850  { 0x040d, {1, {0x045d}}},
8851  { 0x040e, {1, {0x045e}}},
8852  { 0x040f, {1, {0x045f}}},
8853  { 0x0410, {1, {0x0430}}},
8854  { 0x0411, {1, {0x0431}}},
8855  { 0x0412, {1, {0x0432}}},
8856  { 0x0413, {1, {0x0433}}},
8857  { 0x0414, {1, {0x0434}}},
8858  { 0x0415, {1, {0x0435}}},
8859  { 0x0416, {1, {0x0436}}},
8860  { 0x0417, {1, {0x0437}}},
8861  { 0x0418, {1, {0x0438}}},
8862  { 0x0419, {1, {0x0439}}},
8863  { 0x041a, {1, {0x043a}}},
8864  { 0x041b, {1, {0x043b}}},
8865  { 0x041c, {1, {0x043c}}},
8866  { 0x041d, {1, {0x043d}}},
8867  { 0x041e, {1, {0x043e}}},
8868  { 0x041f, {1, {0x043f}}},
8869  { 0x0420, {1, {0x0440}}},
8870  { 0x0421, {1, {0x0441}}},
8871  { 0x0422, {1, {0x0442}}},
8872  { 0x0423, {1, {0x0443}}},
8873  { 0x0424, {1, {0x0444}}},
8874  { 0x0425, {1, {0x0445}}},
8875  { 0x0426, {1, {0x0446}}},
8876  { 0x0427, {1, {0x0447}}},
8877  { 0x0428, {1, {0x0448}}},
8878  { 0x0429, {1, {0x0449}}},
8879  { 0x042a, {1, {0x044a}}},
8880  { 0x042b, {1, {0x044b}}},
8881  { 0x042c, {1, {0x044c}}},
8882  { 0x042d, {1, {0x044d}}},
8883  { 0x042e, {1, {0x044e}}},
8884  { 0x042f, {1, {0x044f}}},
8885  { 0x0460, {1, {0x0461}}},
8886  { 0x0462, {1, {0x0463}}},
8887  { 0x0464, {1, {0x0465}}},
8888  { 0x0466, {1, {0x0467}}},
8889  { 0x0468, {1, {0x0469}}},
8890  { 0x046a, {1, {0x046b}}},
8891  { 0x046c, {1, {0x046d}}},
8892  { 0x046e, {1, {0x046f}}},
8893  { 0x0470, {1, {0x0471}}},
8894  { 0x0472, {1, {0x0473}}},
8895  { 0x0474, {1, {0x0475}}},
8896  { 0x0476, {1, {0x0477}}},
8897  { 0x0478, {1, {0x0479}}},
8898  { 0x047a, {1, {0x047b}}},
8899  { 0x047c, {1, {0x047d}}},
8900  { 0x047e, {1, {0x047f}}},
8901  { 0x0480, {1, {0x0481}}},
8902  { 0x048a, {1, {0x048b}}},
8903  { 0x048c, {1, {0x048d}}},
8904  { 0x048e, {1, {0x048f}}},
8905  { 0x0490, {1, {0x0491}}},
8906  { 0x0492, {1, {0x0493}}},
8907  { 0x0494, {1, {0x0495}}},
8908  { 0x0496, {1, {0x0497}}},
8909  { 0x0498, {1, {0x0499}}},
8910  { 0x049a, {1, {0x049b}}},
8911  { 0x049c, {1, {0x049d}}},
8912  { 0x049e, {1, {0x049f}}},
8913  { 0x04a0, {1, {0x04a1}}},
8914  { 0x04a2, {1, {0x04a3}}},
8915  { 0x04a4, {1, {0x04a5}}},
8916  { 0x04a6, {1, {0x04a7}}},
8917  { 0x04a8, {1, {0x04a9}}},
8918  { 0x04aa, {1, {0x04ab}}},
8919  { 0x04ac, {1, {0x04ad}}},
8920  { 0x04ae, {1, {0x04af}}},
8921  { 0x04b0, {1, {0x04b1}}},
8922  { 0x04b2, {1, {0x04b3}}},
8923  { 0x04b4, {1, {0x04b5}}},
8924  { 0x04b6, {1, {0x04b7}}},
8925  { 0x04b8, {1, {0x04b9}}},
8926  { 0x04ba, {1, {0x04bb}}},
8927  { 0x04bc, {1, {0x04bd}}},
8928  { 0x04be, {1, {0x04bf}}},
8929  { 0x04c1, {1, {0x04c2}}},
8930  { 0x04c3, {1, {0x04c4}}},
8931  { 0x04c5, {1, {0x04c6}}},
8932  { 0x04c7, {1, {0x04c8}}},
8933  { 0x04c9, {1, {0x04ca}}},
8934  { 0x04cb, {1, {0x04cc}}},
8935  { 0x04cd, {1, {0x04ce}}},
8936  { 0x04d0, {1, {0x04d1}}},
8937  { 0x04d2, {1, {0x04d3}}},
8938  { 0x04d4, {1, {0x04d5}}},
8939  { 0x04d6, {1, {0x04d7}}},
8940  { 0x04d8, {1, {0x04d9}}},
8941  { 0x04da, {1, {0x04db}}},
8942  { 0x04dc, {1, {0x04dd}}},
8943  { 0x04de, {1, {0x04df}}},
8944  { 0x04e0, {1, {0x04e1}}},
8945  { 0x04e2, {1, {0x04e3}}},
8946  { 0x04e4, {1, {0x04e5}}},
8947  { 0x04e6, {1, {0x04e7}}},
8948  { 0x04e8, {1, {0x04e9}}},
8949  { 0x04ea, {1, {0x04eb}}},
8950  { 0x04ec, {1, {0x04ed}}},
8951  { 0x04ee, {1, {0x04ef}}},
8952  { 0x04f0, {1, {0x04f1}}},
8953  { 0x04f2, {1, {0x04f3}}},
8954  { 0x04f4, {1, {0x04f5}}},
8955  { 0x04f6, {1, {0x04f7}}},
8956  { 0x04f8, {1, {0x04f9}}},
8957  { 0x0500, {1, {0x0501}}},
8958  { 0x0502, {1, {0x0503}}},
8959  { 0x0504, {1, {0x0505}}},
8960  { 0x0506, {1, {0x0507}}},
8961  { 0x0508, {1, {0x0509}}},
8962  { 0x050a, {1, {0x050b}}},
8963  { 0x050c, {1, {0x050d}}},
8964  { 0x050e, {1, {0x050f}}},
8965  { 0x0531, {1, {0x0561}}},
8966  { 0x0532, {1, {0x0562}}},
8967  { 0x0533, {1, {0x0563}}},
8968  { 0x0534, {1, {0x0564}}},
8969  { 0x0535, {1, {0x0565}}},
8970  { 0x0536, {1, {0x0566}}},
8971  { 0x0537, {1, {0x0567}}},
8972  { 0x0538, {1, {0x0568}}},
8973  { 0x0539, {1, {0x0569}}},
8974  { 0x053a, {1, {0x056a}}},
8975  { 0x053b, {1, {0x056b}}},
8976  { 0x053c, {1, {0x056c}}},
8977  { 0x053d, {1, {0x056d}}},
8978  { 0x053e, {1, {0x056e}}},
8979  { 0x053f, {1, {0x056f}}},
8980  { 0x0540, {1, {0x0570}}},
8981  { 0x0541, {1, {0x0571}}},
8982  { 0x0542, {1, {0x0572}}},
8983  { 0x0543, {1, {0x0573}}},
8984  { 0x0544, {1, {0x0574}}},
8985  { 0x0545, {1, {0x0575}}},
8986  { 0x0546, {1, {0x0576}}},
8987  { 0x0547, {1, {0x0577}}},
8988  { 0x0548, {1, {0x0578}}},
8989  { 0x0549, {1, {0x0579}}},
8990  { 0x054a, {1, {0x057a}}},
8991  { 0x054b, {1, {0x057b}}},
8992  { 0x054c, {1, {0x057c}}},
8993  { 0x054d, {1, {0x057d}}},
8994  { 0x054e, {1, {0x057e}}},
8995  { 0x054f, {1, {0x057f}}},
8996  { 0x0550, {1, {0x0580}}},
8997  { 0x0551, {1, {0x0581}}},
8998  { 0x0552, {1, {0x0582}}},
8999  { 0x0553, {1, {0x0583}}},
9000  { 0x0554, {1, {0x0584}}},
9001  { 0x0555, {1, {0x0585}}},
9002  { 0x0556, {1, {0x0586}}},
9003  { 0x0587, {2, {0x0565, 0x0582}}},
9004  { 0x10a0, {1, {0x2d00}}},
9005  { 0x10a1, {1, {0x2d01}}},
9006  { 0x10a2, {1, {0x2d02}}},
9007  { 0x10a3, {1, {0x2d03}}},
9008  { 0x10a4, {1, {0x2d04}}},
9009  { 0x10a5, {1, {0x2d05}}},
9010  { 0x10a6, {1, {0x2d06}}},
9011  { 0x10a7, {1, {0x2d07}}},
9012  { 0x10a8, {1, {0x2d08}}},
9013  { 0x10a9, {1, {0x2d09}}},
9014  { 0x10aa, {1, {0x2d0a}}},
9015  { 0x10ab, {1, {0x2d0b}}},
9016  { 0x10ac, {1, {0x2d0c}}},
9017  { 0x10ad, {1, {0x2d0d}}},
9018  { 0x10ae, {1, {0x2d0e}}},
9019  { 0x10af, {1, {0x2d0f}}},
9020  { 0x10b0, {1, {0x2d10}}},
9021  { 0x10b1, {1, {0x2d11}}},
9022  { 0x10b2, {1, {0x2d12}}},
9023  { 0x10b3, {1, {0x2d13}}},
9024  { 0x10b4, {1, {0x2d14}}},
9025  { 0x10b5, {1, {0x2d15}}},
9026  { 0x10b6, {1, {0x2d16}}},
9027  { 0x10b7, {1, {0x2d17}}},
9028  { 0x10b8, {1, {0x2d18}}},
9029  { 0x10b9, {1, {0x2d19}}},
9030  { 0x10ba, {1, {0x2d1a}}},
9031  { 0x10bb, {1, {0x2d1b}}},
9032  { 0x10bc, {1, {0x2d1c}}},
9033  { 0x10bd, {1, {0x2d1d}}},
9034  { 0x10be, {1, {0x2d1e}}},
9035  { 0x10bf, {1, {0x2d1f}}},
9036  { 0x10c0, {1, {0x2d20}}},
9037  { 0x10c1, {1, {0x2d21}}},
9038  { 0x10c2, {1, {0x2d22}}},
9039  { 0x10c3, {1, {0x2d23}}},
9040  { 0x10c4, {1, {0x2d24}}},
9041  { 0x10c5, {1, {0x2d25}}},
9042  { 0x1e00, {1, {0x1e01}}},
9043  { 0x1e02, {1, {0x1e03}}},
9044  { 0x1e04, {1, {0x1e05}}},
9045  { 0x1e06, {1, {0x1e07}}},
9046  { 0x1e08, {1, {0x1e09}}},
9047  { 0x1e0a, {1, {0x1e0b}}},
9048  { 0x1e0c, {1, {0x1e0d}}},
9049  { 0x1e0e, {1, {0x1e0f}}},
9050  { 0x1e10, {1, {0x1e11}}},
9051  { 0x1e12, {1, {0x1e13}}},
9052  { 0x1e14, {1, {0x1e15}}},
9053  { 0x1e16, {1, {0x1e17}}},
9054  { 0x1e18, {1, {0x1e19}}},
9055  { 0x1e1a, {1, {0x1e1b}}},
9056  { 0x1e1c, {1, {0x1e1d}}},
9057  { 0x1e1e, {1, {0x1e1f}}},
9058  { 0x1e20, {1, {0x1e21}}},
9059  { 0x1e22, {1, {0x1e23}}},
9060  { 0x1e24, {1, {0x1e25}}},
9061  { 0x1e26, {1, {0x1e27}}},
9062  { 0x1e28, {1, {0x1e29}}},
9063  { 0x1e2a, {1, {0x1e2b}}},
9064  { 0x1e2c, {1, {0x1e2d}}},
9065  { 0x1e2e, {1, {0x1e2f}}},
9066  { 0x1e30, {1, {0x1e31}}},
9067  { 0x1e32, {1, {0x1e33}}},
9068  { 0x1e34, {1, {0x1e35}}},
9069  { 0x1e36, {1, {0x1e37}}},
9070  { 0x1e38, {1, {0x1e39}}},
9071  { 0x1e3a, {1, {0x1e3b}}},
9072  { 0x1e3c, {1, {0x1e3d}}},
9073  { 0x1e3e, {1, {0x1e3f}}},
9074  { 0x1e40, {1, {0x1e41}}},
9075  { 0x1e42, {1, {0x1e43}}},
9076  { 0x1e44, {1, {0x1e45}}},
9077  { 0x1e46, {1, {0x1e47}}},
9078  { 0x1e48, {1, {0x1e49}}},
9079  { 0x1e4a, {1, {0x1e4b}}},
9080  { 0x1e4c, {1, {0x1e4d}}},
9081  { 0x1e4e, {1, {0x1e4f}}},
9082  { 0x1e50, {1, {0x1e51}}},
9083  { 0x1e52, {1, {0x1e53}}},
9084  { 0x1e54, {1, {0x1e55}}},
9085  { 0x1e56, {1, {0x1e57}}},
9086  { 0x1e58, {1, {0x1e59}}},
9087  { 0x1e5a, {1, {0x1e5b}}},
9088  { 0x1e5c, {1, {0x1e5d}}},
9089  { 0x1e5e, {1, {0x1e5f}}},
9090  { 0x1e60, {1, {0x1e61}}},
9091  { 0x1e62, {1, {0x1e63}}},
9092  { 0x1e64, {1, {0x1e65}}},
9093  { 0x1e66, {1, {0x1e67}}},
9094  { 0x1e68, {1, {0x1e69}}},
9095  { 0x1e6a, {1, {0x1e6b}}},
9096  { 0x1e6c, {1, {0x1e6d}}},
9097  { 0x1e6e, {1, {0x1e6f}}},
9098  { 0x1e70, {1, {0x1e71}}},
9099  { 0x1e72, {1, {0x1e73}}},
9100  { 0x1e74, {1, {0x1e75}}},
9101  { 0x1e76, {1, {0x1e77}}},
9102  { 0x1e78, {1, {0x1e79}}},
9103  { 0x1e7a, {1, {0x1e7b}}},
9104  { 0x1e7c, {1, {0x1e7d}}},
9105  { 0x1e7e, {1, {0x1e7f}}},
9106  { 0x1e80, {1, {0x1e81}}},
9107  { 0x1e82, {1, {0x1e83}}},
9108  { 0x1e84, {1, {0x1e85}}},
9109  { 0x1e86, {1, {0x1e87}}},
9110  { 0x1e88, {1, {0x1e89}}},
9111  { 0x1e8a, {1, {0x1e8b}}},
9112  { 0x1e8c, {1, {0x1e8d}}},
9113  { 0x1e8e, {1, {0x1e8f}}},
9114  { 0x1e90, {1, {0x1e91}}},
9115  { 0x1e92, {1, {0x1e93}}},
9116  { 0x1e94, {1, {0x1e95}}},
9117  { 0x1e96, {2, {0x0068, 0x0331}}},
9118  { 0x1e97, {2, {0x0074, 0x0308}}},
9119  { 0x1e98, {2, {0x0077, 0x030a}}},
9120  { 0x1e99, {2, {0x0079, 0x030a}}},
9121  { 0x1e9a, {2, {0x0061, 0x02be}}},
9122  { 0x1e9b, {1, {0x1e61}}},
9123  { 0x1ea0, {1, {0x1ea1}}},
9124  { 0x1ea2, {1, {0x1ea3}}},
9125  { 0x1ea4, {1, {0x1ea5}}},
9126  { 0x1ea6, {1, {0x1ea7}}},
9127  { 0x1ea8, {1, {0x1ea9}}},
9128  { 0x1eaa, {1, {0x1eab}}},
9129  { 0x1eac, {1, {0x1ead}}},
9130  { 0x1eae, {1, {0x1eaf}}},
9131  { 0x1eb0, {1, {0x1eb1}}},
9132  { 0x1eb2, {1, {0x1eb3}}},
9133  { 0x1eb4, {1, {0x1eb5}}},
9134  { 0x1eb6, {1, {0x1eb7}}},
9135  { 0x1eb8, {1, {0x1eb9}}},
9136  { 0x1eba, {1, {0x1ebb}}},
9137  { 0x1ebc, {1, {0x1ebd}}},
9138  { 0x1ebe, {1, {0x1ebf}}},
9139  { 0x1ec0, {1, {0x1ec1}}},
9140  { 0x1ec2, {1, {0x1ec3}}},
9141  { 0x1ec4, {1, {0x1ec5}}},
9142  { 0x1ec6, {1, {0x1ec7}}},
9143  { 0x1ec8, {1, {0x1ec9}}},
9144  { 0x1eca, {1, {0x1ecb}}},
9145  { 0x1ecc, {1, {0x1ecd}}},
9146  { 0x1ece, {1, {0x1ecf}}},
9147  { 0x1ed0, {1, {0x1ed1}}},
9148  { 0x1ed2, {1, {0x1ed3}}},
9149  { 0x1ed4, {1, {0x1ed5}}},
9150  { 0x1ed6, {1, {0x1ed7}}},
9151  { 0x1ed8, {1, {0x1ed9}}},
9152  { 0x1eda, {1, {0x1edb}}},
9153  { 0x1edc, {1, {0x1edd}}},
9154  { 0x1ede, {1, {0x1edf}}},
9155  { 0x1ee0, {1, {0x1ee1}}},
9156  { 0x1ee2, {1, {0x1ee3}}},
9157  { 0x1ee4, {1, {0x1ee5}}},
9158  { 0x1ee6, {1, {0x1ee7}}},
9159  { 0x1ee8, {1, {0x1ee9}}},
9160  { 0x1eea, {1, {0x1eeb}}},
9161  { 0x1eec, {1, {0x1eed}}},
9162  { 0x1eee, {1, {0x1eef}}},
9163  { 0x1ef0, {1, {0x1ef1}}},
9164  { 0x1ef2, {1, {0x1ef3}}},
9165  { 0x1ef4, {1, {0x1ef5}}},
9166  { 0x1ef6, {1, {0x1ef7}}},
9167  { 0x1ef8, {1, {0x1ef9}}},
9168  { 0x1f08, {1, {0x1f00}}},
9169  { 0x1f09, {1, {0x1f01}}},
9170  { 0x1f0a, {1, {0x1f02}}},
9171  { 0x1f0b, {1, {0x1f03}}},
9172  { 0x1f0c, {1, {0x1f04}}},
9173  { 0x1f0d, {1, {0x1f05}}},
9174  { 0x1f0e, {1, {0x1f06}}},
9175  { 0x1f0f, {1, {0x1f07}}},
9176  { 0x1f18, {1, {0x1f10}}},
9177  { 0x1f19, {1, {0x1f11}}},
9178  { 0x1f1a, {1, {0x1f12}}},
9179  { 0x1f1b, {1, {0x1f13}}},
9180  { 0x1f1c, {1, {0x1f14}}},
9181  { 0x1f1d, {1, {0x1f15}}},
9182  { 0x1f28, {1, {0x1f20}}},
9183  { 0x1f29, {1, {0x1f21}}},
9184  { 0x1f2a, {1, {0x1f22}}},
9185  { 0x1f2b, {1, {0x1f23}}},
9186  { 0x1f2c, {1, {0x1f24}}},
9187  { 0x1f2d, {1, {0x1f25}}},
9188  { 0x1f2e, {1, {0x1f26}}},
9189  { 0x1f2f, {1, {0x1f27}}},
9190  { 0x1f38, {1, {0x1f30}}},
9191  { 0x1f39, {1, {0x1f31}}},
9192  { 0x1f3a, {1, {0x1f32}}},
9193  { 0x1f3b, {1, {0x1f33}}},
9194  { 0x1f3c, {1, {0x1f34}}},
9195  { 0x1f3d, {1, {0x1f35}}},
9196  { 0x1f3e, {1, {0x1f36}}},
9197  { 0x1f3f, {1, {0x1f37}}},
9198  { 0x1f48, {1, {0x1f40}}},
9199  { 0x1f49, {1, {0x1f41}}},
9200  { 0x1f4a, {1, {0x1f42}}},
9201  { 0x1f4b, {1, {0x1f43}}},
9202  { 0x1f4c, {1, {0x1f44}}},
9203  { 0x1f4d, {1, {0x1f45}}},
9204  { 0x1f50, {2, {0x03c5, 0x0313}}},
9205  { 0x1f52, {3, {0x03c5, 0x0313, 0x0300}}},
9206  { 0x1f54, {3, {0x03c5, 0x0313, 0x0301}}},
9207  { 0x1f56, {3, {0x03c5, 0x0313, 0x0342}}},
9208  { 0x1f59, {1, {0x1f51}}},
9209  { 0x1f5b, {1, {0x1f53}}},
9210  { 0x1f5d, {1, {0x1f55}}},
9211  { 0x1f5f, {1, {0x1f57}}},
9212  { 0x1f68, {1, {0x1f60}}},
9213  { 0x1f69, {1, {0x1f61}}},
9214  { 0x1f6a, {1, {0x1f62}}},
9215  { 0x1f6b, {1, {0x1f63}}},
9216  { 0x1f6c, {1, {0x1f64}}},
9217  { 0x1f6d, {1, {0x1f65}}},
9218  { 0x1f6e, {1, {0x1f66}}},
9219  { 0x1f6f, {1, {0x1f67}}},
9220  { 0x1f80, {2, {0x1f00, 0x03b9}}},
9221  { 0x1f81, {2, {0x1f01, 0x03b9}}},
9222  { 0x1f82, {2, {0x1f02, 0x03b9}}},
9223  { 0x1f83, {2, {0x1f03, 0x03b9}}},
9224  { 0x1f84, {2, {0x1f04, 0x03b9}}},
9225  { 0x1f85, {2, {0x1f05, 0x03b9}}},
9226  { 0x1f86, {2, {0x1f06, 0x03b9}}},
9227  { 0x1f87, {2, {0x1f07, 0x03b9}}},
9228  { 0x1f88, {2, {0x1f00, 0x03b9}}},
9229  { 0x1f89, {2, {0x1f01, 0x03b9}}},
9230  { 0x1f8a, {2, {0x1f02, 0x03b9}}},
9231  { 0x1f8b, {2, {0x1f03, 0x03b9}}},
9232  { 0x1f8c, {2, {0x1f04, 0x03b9}}},
9233  { 0x1f8d, {2, {0x1f05, 0x03b9}}},
9234  { 0x1f8e, {2, {0x1f06, 0x03b9}}},
9235  { 0x1f8f, {2, {0x1f07, 0x03b9}}},
9236  { 0x1f90, {2, {0x1f20, 0x03b9}}},
9237  { 0x1f91, {2, {0x1f21, 0x03b9}}},
9238  { 0x1f92, {2, {0x1f22, 0x03b9}}},
9239  { 0x1f93, {2, {0x1f23, 0x03b9}}},
9240  { 0x1f94, {2, {0x1f24, 0x03b9}}},
9241  { 0x1f95, {2, {0x1f25, 0x03b9}}},
9242  { 0x1f96, {2, {0x1f26, 0x03b9}}},
9243  { 0x1f97, {2, {0x1f27, 0x03b9}}},
9244  { 0x1f98, {2, {0x1f20, 0x03b9}}},
9245  { 0x1f99, {2, {0x1f21, 0x03b9}}},
9246  { 0x1f9a, {2, {0x1f22, 0x03b9}}},
9247  { 0x1f9b, {2, {0x1f23, 0x03b9}}},
9248  { 0x1f9c, {2, {0x1f24, 0x03b9}}},
9249  { 0x1f9d, {2, {0x1f25, 0x03b9}}},
9250  { 0x1f9e, {2, {0x1f26, 0x03b9}}},
9251  { 0x1f9f, {2, {0x1f27, 0x03b9}}},
9252  { 0x1fa0, {2, {0x1f60, 0x03b9}}},
9253  { 0x1fa1, {2, {0x1f61, 0x03b9}}},
9254  { 0x1fa2, {2, {0x1f62, 0x03b9}}},
9255  { 0x1fa3, {2, {0x1f63, 0x03b9}}},
9256  { 0x1fa4, {2, {0x1f64, 0x03b9}}},
9257  { 0x1fa5, {2, {0x1f65, 0x03b9}}},
9258  { 0x1fa6, {2, {0x1f66, 0x03b9}}},
9259  { 0x1fa7, {2, {0x1f67, 0x03b9}}},
9260  { 0x1fa8, {2, {0x1f60, 0x03b9}}},
9261  { 0x1fa9, {2, {0x1f61, 0x03b9}}},
9262  { 0x1faa, {2, {0x1f62, 0x03b9}}},
9263  { 0x1fab, {2, {0x1f63, 0x03b9}}},
9264  { 0x1fac, {2, {0x1f64, 0x03b9}}},
9265  { 0x1fad, {2, {0x1f65, 0x03b9}}},
9266  { 0x1fae, {2, {0x1f66, 0x03b9}}},
9267  { 0x1faf, {2, {0x1f67, 0x03b9}}},
9268  { 0x1fb2, {2, {0x1f70, 0x03b9}}},
9269  { 0x1fb3, {2, {0x03b1, 0x03b9}}},
9270  { 0x1fb4, {2, {0x03ac, 0x03b9}}},
9271  { 0x1fb6, {2, {0x03b1, 0x0342}}},
9272  { 0x1fb7, {3, {0x03b1, 0x0342, 0x03b9}}},
9273  { 0x1fb8, {1, {0x1fb0}}},
9274  { 0x1fb9, {1, {0x1fb1}}},
9275  { 0x1fba, {1, {0x1f70}}},
9276  { 0x1fbb, {1, {0x1f71}}},
9277  { 0x1fbc, {2, {0x03b1, 0x03b9}}},
9278  { 0x1fbe, {1, {0x03b9}}},
9279  { 0x1fc2, {2, {0x1f74, 0x03b9}}},
9280  { 0x1fc3, {2, {0x03b7, 0x03b9}}},
9281  { 0x1fc4, {2, {0x03ae, 0x03b9}}},
9282  { 0x1fc6, {2, {0x03b7, 0x0342}}},
9283  { 0x1fc7, {3, {0x03b7, 0x0342, 0x03b9}}},
9284  { 0x1fc8, {1, {0x1f72}}},
9285  { 0x1fc9, {1, {0x1f73}}},
9286  { 0x1fca, {1, {0x1f74}}},
9287  { 0x1fcb, {1, {0x1f75}}},
9288  { 0x1fcc, {2, {0x03b7, 0x03b9}}},
9289  { 0x1fd2, {3, {0x03b9, 0x0308, 0x0300}}},
9290  { 0x1fd3, {3, {0x03b9, 0x0308, 0x0301}}},
9291  { 0x1fd6, {2, {0x03b9, 0x0342}}},
9292  { 0x1fd7, {3, {0x03b9, 0x0308, 0x0342}}},
9293  { 0x1fd8, {1, {0x1fd0}}},
9294  { 0x1fd9, {1, {0x1fd1}}},
9295  { 0x1fda, {1, {0x1f76}}},
9296  { 0x1fdb, {1, {0x1f77}}},
9297  { 0x1fe2, {3, {0x03c5, 0x0308, 0x0300}}},
9298  { 0x1fe3, {3, {0x03c5, 0x0308, 0x0301}}},
9299  { 0x1fe4, {2, {0x03c1, 0x0313}}},
9300  { 0x1fe6, {2, {0x03c5, 0x0342}}},
9301  { 0x1fe7, {3, {0x03c5, 0x0308, 0x0342}}},
9302  { 0x1fe8, {1, {0x1fe0}}},
9303  { 0x1fe9, {1, {0x1fe1}}},
9304  { 0x1fea, {1, {0x1f7a}}},
9305  { 0x1feb, {1, {0x1f7b}}},
9306  { 0x1fec, {1, {0x1fe5}}},
9307  { 0x1ff2, {2, {0x1f7c, 0x03b9}}},
9308  { 0x1ff3, {2, {0x03c9, 0x03b9}}},
9309  { 0x1ff4, {2, {0x03ce, 0x03b9}}},
9310  { 0x1ff6, {2, {0x03c9, 0x0342}}},
9311  { 0x1ff7, {3, {0x03c9, 0x0342, 0x03b9}}},
9312  { 0x1ff8, {1, {0x1f78}}},
9313  { 0x1ff9, {1, {0x1f79}}},
9314  { 0x1ffa, {1, {0x1f7c}}},
9315  { 0x1ffb, {1, {0x1f7d}}},
9316  { 0x1ffc, {2, {0x03c9, 0x03b9}}},
9317  { 0x2126, {1, {0x03c9}}},
9318  { 0x212a, {1, {0x006b}}},
9319  { 0x212b, {1, {0x00e5}}},
9320  { 0x2160, {1, {0x2170}}},
9321  { 0x2161, {1, {0x2171}}},
9322  { 0x2162, {1, {0x2172}}},
9323  { 0x2163, {1, {0x2173}}},
9324  { 0x2164, {1, {0x2174}}},
9325  { 0x2165, {1, {0x2175}}},
9326  { 0x2166, {1, {0x2176}}},
9327  { 0x2167, {1, {0x2177}}},
9328  { 0x2168, {1, {0x2178}}},
9329  { 0x2169, {1, {0x2179}}},
9330  { 0x216a, {1, {0x217a}}},
9331  { 0x216b, {1, {0x217b}}},
9332  { 0x216c, {1, {0x217c}}},
9333  { 0x216d, {1, {0x217d}}},
9334  { 0x216e, {1, {0x217e}}},
9335  { 0x216f, {1, {0x217f}}},
9336  { 0x24b6, {1, {0x24d0}}},
9337  { 0x24b7, {1, {0x24d1}}},
9338  { 0x24b8, {1, {0x24d2}}},
9339  { 0x24b9, {1, {0x24d3}}},
9340  { 0x24ba, {1, {0x24d4}}},
9341  { 0x24bb, {1, {0x24d5}}},
9342  { 0x24bc, {1, {0x24d6}}},
9343  { 0x24bd, {1, {0x24d7}}},
9344  { 0x24be, {1, {0x24d8}}},
9345  { 0x24bf, {1, {0x24d9}}},
9346  { 0x24c0, {1, {0x24da}}},
9347  { 0x24c1, {1, {0x24db}}},
9348  { 0x24c2, {1, {0x24dc}}},
9349  { 0x24c3, {1, {0x24dd}}},
9350  { 0x24c4, {1, {0x24de}}},
9351  { 0x24c5, {1, {0x24df}}},
9352  { 0x24c6, {1, {0x24e0}}},
9353  { 0x24c7, {1, {0x24e1}}},
9354  { 0x24c8, {1, {0x24e2}}},
9355  { 0x24c9, {1, {0x24e3}}},
9356  { 0x24ca, {1, {0x24e4}}},
9357  { 0x24cb, {1, {0x24e5}}},
9358  { 0x24cc, {1, {0x24e6}}},
9359  { 0x24cd, {1, {0x24e7}}},
9360  { 0x24ce, {1, {0x24e8}}},
9361  { 0x24cf, {1, {0x24e9}}},
9362  { 0x2c00, {1, {0x2c30}}},
9363  { 0x2c01, {1, {0x2c31}}},
9364  { 0x2c02, {1, {0x2c32}}},
9365  { 0x2c03, {1, {0x2c33}}},
9366  { 0x2c04, {1, {0x2c34}}},
9367  { 0x2c05, {1, {0x2c35}}},
9368  { 0x2c06, {1, {0x2c36}}},
9369  { 0x2c07, {1, {0x2c37}}},
9370  { 0x2c08, {1, {0x2c38}}},
9371  { 0x2c09, {1, {0x2c39}}},
9372  { 0x2c0a, {1, {0x2c3a}}},
9373  { 0x2c0b, {1, {0x2c3b}}},
9374  { 0x2c0c, {1, {0x2c3c}}},
9375  { 0x2c0d, {1, {0x2c3d}}},
9376  { 0x2c0e, {1, {0x2c3e}}},
9377  { 0x2c0f, {1, {0x2c3f}}},
9378  { 0x2c10, {1, {0x2c40}}},
9379  { 0x2c11, {1, {0x2c41}}},
9380  { 0x2c12, {1, {0x2c42}}},
9381  { 0x2c13, {1, {0x2c43}}},
9382  { 0x2c14, {1, {0x2c44}}},
9383  { 0x2c15, {1, {0x2c45}}},
9384  { 0x2c16, {1, {0x2c46}}},
9385  { 0x2c17, {1, {0x2c47}}},
9386  { 0x2c18, {1, {0x2c48}}},
9387  { 0x2c19, {1, {0x2c49}}},
9388  { 0x2c1a, {1, {0x2c4a}}},
9389  { 0x2c1b, {1, {0x2c4b}}},
9390  { 0x2c1c, {1, {0x2c4c}}},
9391  { 0x2c1d, {1, {0x2c4d}}},
9392  { 0x2c1e, {1, {0x2c4e}}},
9393  { 0x2c1f, {1, {0x2c4f}}},
9394  { 0x2c20, {1, {0x2c50}}},
9395  { 0x2c21, {1, {0x2c51}}},
9396  { 0x2c22, {1, {0x2c52}}},
9397  { 0x2c23, {1, {0x2c53}}},
9398  { 0x2c24, {1, {0x2c54}}},
9399  { 0x2c25, {1, {0x2c55}}},
9400  { 0x2c26, {1, {0x2c56}}},
9401  { 0x2c27, {1, {0x2c57}}},
9402  { 0x2c28, {1, {0x2c58}}},
9403  { 0x2c29, {1, {0x2c59}}},
9404  { 0x2c2a, {1, {0x2c5a}}},
9405  { 0x2c2b, {1, {0x2c5b}}},
9406  { 0x2c2c, {1, {0x2c5c}}},
9407  { 0x2c2d, {1, {0x2c5d}}},
9408  { 0x2c2e, {1, {0x2c5e}}},
9409  { 0x2c80, {1, {0x2c81}}},
9410  { 0x2c82, {1, {0x2c83}}},
9411  { 0x2c84, {1, {0x2c85}}},
9412  { 0x2c86, {1, {0x2c87}}},
9413  { 0x2c88, {1, {0x2c89}}},
9414  { 0x2c8a, {1, {0x2c8b}}},
9415  { 0x2c8c, {1, {0x2c8d}}},
9416  { 0x2c8e, {1, {0x2c8f}}},
9417  { 0x2c90, {1, {0x2c91}}},
9418  { 0x2c92, {1, {0x2c93}}},
9419  { 0x2c94, {1, {0x2c95}}},
9420  { 0x2c96, {1, {0x2c97}}},
9421  { 0x2c98, {1, {0x2c99}}},
9422  { 0x2c9a, {1, {0x2c9b}}},
9423  { 0x2c9c, {1, {0x2c9d}}},
9424  { 0x2c9e, {1, {0x2c9f}}},
9425  { 0x2ca0, {1, {0x2ca1}}},
9426  { 0x2ca2, {1, {0x2ca3}}},
9427  { 0x2ca4, {1, {0x2ca5}}},
9428  { 0x2ca6, {1, {0x2ca7}}},
9429  { 0x2ca8, {1, {0x2ca9}}},
9430  { 0x2caa, {1, {0x2cab}}},
9431  { 0x2cac, {1, {0x2cad}}},
9432  { 0x2cae, {1, {0x2caf}}},
9433  { 0x2cb0, {1, {0x2cb1}}},
9434  { 0x2cb2, {1, {0x2cb3}}},
9435  { 0x2cb4, {1, {0x2cb5}}},
9436  { 0x2cb6, {1, {0x2cb7}}},
9437  { 0x2cb8, {1, {0x2cb9}}},
9438  { 0x2cba, {1, {0x2cbb}}},
9439  { 0x2cbc, {1, {0x2cbd}}},
9440  { 0x2cbe, {1, {0x2cbf}}},
9441  { 0x2cc0, {1, {0x2cc1}}},
9442  { 0x2cc2, {1, {0x2cc3}}},
9443  { 0x2cc4, {1, {0x2cc5}}},
9444  { 0x2cc6, {1, {0x2cc7}}},
9445  { 0x2cc8, {1, {0x2cc9}}},
9446  { 0x2cca, {1, {0x2ccb}}},
9447  { 0x2ccc, {1, {0x2ccd}}},
9448  { 0x2cce, {1, {0x2ccf}}},
9449  { 0x2cd0, {1, {0x2cd1}}},
9450  { 0x2cd2, {1, {0x2cd3}}},
9451  { 0x2cd4, {1, {0x2cd5}}},
9452  { 0x2cd6, {1, {0x2cd7}}},
9453  { 0x2cd8, {1, {0x2cd9}}},
9454  { 0x2cda, {1, {0x2cdb}}},
9455  { 0x2cdc, {1, {0x2cdd}}},
9456  { 0x2cde, {1, {0x2cdf}}},
9457  { 0x2ce0, {1, {0x2ce1}}},
9458  { 0x2ce2, {1, {0x2ce3}}},
9459  { 0xfb00, {2, {0x0066, 0x0066}}},
9460  { 0xfb01, {2, {0x0066, 0x0069}}},
9461  { 0xfb02, {2, {0x0066, 0x006c}}},
9462  { 0xfb03, {3, {0x0066, 0x0066, 0x0069}}},
9463  { 0xfb04, {3, {0x0066, 0x0066, 0x006c}}},
9464  { 0xfb05, {2, {0x0073, 0x0074}}},
9465  { 0xfb06, {2, {0x0073, 0x0074}}},
9466  { 0xfb13, {2, {0x0574, 0x0576}}},
9467  { 0xfb14, {2, {0x0574, 0x0565}}},
9468  { 0xfb15, {2, {0x0574, 0x056b}}},
9469  { 0xfb16, {2, {0x057e, 0x0576}}},
9470  { 0xfb17, {2, {0x0574, 0x056d}}},
9471  { 0xff21, {1, {0xff41}}},
9472  { 0xff22, {1, {0xff42}}},
9473  { 0xff23, {1, {0xff43}}},
9474  { 0xff24, {1, {0xff44}}},
9475  { 0xff25, {1, {0xff45}}},
9476  { 0xff26, {1, {0xff46}}},
9477  { 0xff27, {1, {0xff47}}},
9478  { 0xff28, {1, {0xff48}}},
9479  { 0xff29, {1, {0xff49}}},
9480  { 0xff2a, {1, {0xff4a}}},
9481  { 0xff2b, {1, {0xff4b}}},
9482  { 0xff2c, {1, {0xff4c}}},
9483  { 0xff2d, {1, {0xff4d}}},
9484  { 0xff2e, {1, {0xff4e}}},
9485  { 0xff2f, {1, {0xff4f}}},
9486  { 0xff30, {1, {0xff50}}},
9487  { 0xff31, {1, {0xff51}}},
9488  { 0xff32, {1, {0xff52}}},
9489  { 0xff33, {1, {0xff53}}},
9490  { 0xff34, {1, {0xff54}}},
9491  { 0xff35, {1, {0xff55}}},
9492  { 0xff36, {1, {0xff56}}},
9493  { 0xff37, {1, {0xff57}}},
9494  { 0xff38, {1, {0xff58}}},
9495  { 0xff39, {1, {0xff59}}},
9496  { 0xff3a, {1, {0xff5a}}},
9497  { 0x10400, {1, {0x10428}}},
9498  { 0x10401, {1, {0x10429}}},
9499  { 0x10402, {1, {0x1042a}}},
9500  { 0x10403, {1, {0x1042b}}},
9501  { 0x10404, {1, {0x1042c}}},
9502  { 0x10405, {1, {0x1042d}}},
9503  { 0x10406, {1, {0x1042e}}},
9504  { 0x10407, {1, {0x1042f}}},
9505  { 0x10408, {1, {0x10430}}},
9506  { 0x10409, {1, {0x10431}}},
9507  { 0x1040a, {1, {0x10432}}},
9508  { 0x1040b, {1, {0x10433}}},
9509  { 0x1040c, {1, {0x10434}}},
9510  { 0x1040d, {1, {0x10435}}},
9511  { 0x1040e, {1, {0x10436}}},
9512  { 0x1040f, {1, {0x10437}}},
9513  { 0x10410, {1, {0x10438}}},
9514  { 0x10411, {1, {0x10439}}},
9515  { 0x10412, {1, {0x1043a}}},
9516  { 0x10413, {1, {0x1043b}}},
9517  { 0x10414, {1, {0x1043c}}},
9518  { 0x10415, {1, {0x1043d}}},
9519  { 0x10416, {1, {0x1043e}}},
9520  { 0x10417, {1, {0x1043f}}},
9521  { 0x10418, {1, {0x10440}}},
9522  { 0x10419, {1, {0x10441}}},
9523  { 0x1041a, {1, {0x10442}}},
9524  { 0x1041b, {1, {0x10443}}},
9525  { 0x1041c, {1, {0x10444}}},
9526  { 0x1041d, {1, {0x10445}}},
9527  { 0x1041e, {1, {0x10446}}},
9528  { 0x1041f, {1, {0x10447}}},
9529  { 0x10420, {1, {0x10448}}},
9530  { 0x10421, {1, {0x10449}}},
9531  { 0x10422, {1, {0x1044a}}},
9532  { 0x10423, {1, {0x1044b}}},
9533  { 0x10424, {1, {0x1044c}}},
9534  { 0x10425, {1, {0x1044d}}},
9535  { 0x10426, {1, {0x1044e}}},
9536  { 0x10427, {1, {0x1044f}}}
9537 };
9538 
9539 static const CaseFold_11_Type CaseFold_Locale[] = {
9540  { 0x0049, {1, {0x0069}}},
9541  { 0x0130, {2, {0x0069, 0x0307}}}
9542 };
9543 
9544 static const CaseUnfold_11_Type CaseUnfold_11[] = {
9545  { 0x0061, {1, {0x0041 }}},
9546  { 0x0062, {1, {0x0042 }}},
9547  { 0x0063, {1, {0x0043 }}},
9548  { 0x0064, {1, {0x0044 }}},
9549  { 0x0065, {1, {0x0045 }}},
9550  { 0x0066, {1, {0x0046 }}},
9551  { 0x0067, {1, {0x0047 }}},
9552  { 0x0068, {1, {0x0048 }}},
9553  { 0x006a, {1, {0x004a }}},
9554  { 0x006b, {2, {0x212a, 0x004b }}},
9555  { 0x006c, {1, {0x004c }}},
9556  { 0x006d, {1, {0x004d }}},
9557  { 0x006e, {1, {0x004e }}},
9558  { 0x006f, {1, {0x004f }}},
9559  { 0x0070, {1, {0x0050 }}},
9560  { 0x0071, {1, {0x0051 }}},
9561  { 0x0072, {1, {0x0052 }}},
9562  { 0x0073, {2, {0x0053, 0x017f }}},
9563  { 0x0074, {1, {0x0054 }}},
9564  { 0x0075, {1, {0x0055 }}},
9565  { 0x0076, {1, {0x0056 }}},
9566  { 0x0077, {1, {0x0057 }}},
9567  { 0x0078, {1, {0x0058 }}},
9568  { 0x0079, {1, {0x0059 }}},
9569  { 0x007a, {1, {0x005a }}},
9570  { 0x00e0, {1, {0x00c0 }}},
9571  { 0x00e1, {1, {0x00c1 }}},
9572  { 0x00e2, {1, {0x00c2 }}},
9573  { 0x00e3, {1, {0x00c3 }}},
9574  { 0x00e4, {1, {0x00c4 }}},
9575  { 0x00e5, {2, {0x212b, 0x00c5 }}},
9576  { 0x00e6, {1, {0x00c6 }}},
9577  { 0x00e7, {1, {0x00c7 }}},
9578  { 0x00e8, {1, {0x00c8 }}},
9579  { 0x00e9, {1, {0x00c9 }}},
9580  { 0x00ea, {1, {0x00ca }}},
9581  { 0x00eb, {1, {0x00cb }}},
9582  { 0x00ec, {1, {0x00cc }}},
9583  { 0x00ed, {1, {0x00cd }}},
9584  { 0x00ee, {1, {0x00ce }}},
9585  { 0x00ef, {1, {0x00cf }}},
9586  { 0x00f0, {1, {0x00d0 }}},
9587  { 0x00f1, {1, {0x00d1 }}},
9588  { 0x00f2, {1, {0x00d2 }}},
9589  { 0x00f3, {1, {0x00d3 }}},
9590  { 0x00f4, {1, {0x00d4 }}},
9591  { 0x00f5, {1, {0x00d5 }}},
9592  { 0x00f6, {1, {0x00d6 }}},
9593  { 0x00f8, {1, {0x00d8 }}},
9594  { 0x00f9, {1, {0x00d9 }}},
9595  { 0x00fa, {1, {0x00da }}},
9596  { 0x00fb, {1, {0x00db }}},
9597  { 0x00fc, {1, {0x00dc }}},
9598  { 0x00fd, {1, {0x00dd }}},
9599  { 0x00fe, {1, {0x00de }}},
9600  { 0x00ff, {1, {0x0178 }}},
9601  { 0x0101, {1, {0x0100 }}},
9602  { 0x0103, {1, {0x0102 }}},
9603  { 0x0105, {1, {0x0104 }}},
9604  { 0x0107, {1, {0x0106 }}},
9605  { 0x0109, {1, {0x0108 }}},
9606  { 0x010b, {1, {0x010a }}},
9607  { 0x010d, {1, {0x010c }}},
9608  { 0x010f, {1, {0x010e }}},
9609  { 0x0111, {1, {0x0110 }}},
9610  { 0x0113, {1, {0x0112 }}},
9611  { 0x0115, {1, {0x0114 }}},
9612  { 0x0117, {1, {0x0116 }}},
9613  { 0x0119, {1, {0x0118 }}},
9614  { 0x011b, {1, {0x011a }}},
9615  { 0x011d, {1, {0x011c }}},
9616  { 0x011f, {1, {0x011e }}},
9617  { 0x0121, {1, {0x0120 }}},
9618  { 0x0123, {1, {0x0122 }}},
9619  { 0x0125, {1, {0x0124 }}},
9620  { 0x0127, {1, {0x0126 }}},
9621  { 0x0129, {1, {0x0128 }}},
9622  { 0x012b, {1, {0x012a }}},
9623  { 0x012d, {1, {0x012c }}},
9624  { 0x012f, {1, {0x012e }}},
9625  { 0x0133, {1, {0x0132 }}},
9626  { 0x0135, {1, {0x0134 }}},
9627  { 0x0137, {1, {0x0136 }}},
9628  { 0x013a, {1, {0x0139 }}},
9629  { 0x013c, {1, {0x013b }}},
9630  { 0x013e, {1, {0x013d }}},
9631  { 0x0140, {1, {0x013f }}},
9632  { 0x0142, {1, {0x0141 }}},
9633  { 0x0144, {1, {0x0143 }}},
9634  { 0x0146, {1, {0x0145 }}},
9635  { 0x0148, {1, {0x0147 }}},
9636  { 0x014b, {1, {0x014a }}},
9637  { 0x014d, {1, {0x014c }}},
9638  { 0x014f, {1, {0x014e }}},
9639  { 0x0151, {1, {0x0150 }}},
9640  { 0x0153, {1, {0x0152 }}},
9641  { 0x0155, {1, {0x0154 }}},
9642  { 0x0157, {1, {0x0156 }}},
9643  { 0x0159, {1, {0x0158 }}},
9644  { 0x015b, {1, {0x015a }}},
9645  { 0x015d, {1, {0x015c }}},
9646  { 0x015f, {1, {0x015e }}},
9647  { 0x0161, {1, {0x0160 }}},
9648  { 0x0163, {1, {0x0162 }}},
9649  { 0x0165, {1, {0x0164 }}},
9650  { 0x0167, {1, {0x0166 }}},
9651  { 0x0169, {1, {0x0168 }}},
9652  { 0x016b, {1, {0x016a }}},
9653  { 0x016d, {1, {0x016c }}},
9654  { 0x016f, {1, {0x016e }}},
9655  { 0x0171, {1, {0x0170 }}},
9656  { 0x0173, {1, {0x0172 }}},
9657  { 0x0175, {1, {0x0174 }}},
9658  { 0x0177, {1, {0x0176 }}},
9659  { 0x017a, {1, {0x0179 }}},
9660  { 0x017c, {1, {0x017b }}},
9661  { 0x017e, {1, {0x017d }}},
9662  { 0x0183, {1, {0x0182 }}},
9663  { 0x0185, {1, {0x0184 }}},
9664  { 0x0188, {1, {0x0187 }}},
9665  { 0x018c, {1, {0x018b }}},
9666  { 0x0192, {1, {0x0191 }}},
9667  { 0x0195, {1, {0x01f6 }}},
9668  { 0x0199, {1, {0x0198 }}},
9669  { 0x019a, {1, {0x023d }}},
9670  { 0x019e, {1, {0x0220 }}},
9671  { 0x01a1, {1, {0x01a0 }}},
9672  { 0x01a3, {1, {0x01a2 }}},
9673  { 0x01a5, {1, {0x01a4 }}},
9674  { 0x01a8, {1, {0x01a7 }}},
9675  { 0x01ad, {1, {0x01ac }}},
9676  { 0x01b0, {1, {0x01af }}},
9677  { 0x01b4, {1, {0x01b3 }}},
9678  { 0x01b6, {1, {0x01b5 }}},
9679  { 0x01b9, {1, {0x01b8 }}},
9680  { 0x01bd, {1, {0x01bc }}},
9681  { 0x01bf, {1, {0x01f7 }}},
9682  { 0x01c6, {2, {0x01c4, 0x01c5 }}},
9683  { 0x01c9, {2, {0x01c7, 0x01c8 }}},
9684  { 0x01cc, {2, {0x01ca, 0x01cb }}},
9685  { 0x01ce, {1, {0x01cd }}},
9686  { 0x01d0, {1, {0x01cf }}},
9687  { 0x01d2, {1, {0x01d1 }}},
9688  { 0x01d4, {1, {0x01d3 }}},
9689  { 0x01d6, {1, {0x01d5 }}},
9690  { 0x01d8, {1, {0x01d7 }}},
9691  { 0x01da, {1, {0x01d9 }}},
9692  { 0x01dc, {1, {0x01db }}},
9693  { 0x01dd, {1, {0x018e }}},
9694  { 0x01df, {1, {0x01de }}},
9695  { 0x01e1, {1, {0x01e0 }}},
9696  { 0x01e3, {1, {0x01e2 }}},
9697  { 0x01e5, {1, {0x01e4 }}},
9698  { 0x01e7, {1, {0x01e6 }}},
9699  { 0x01e9, {1, {0x01e8 }}},
9700  { 0x01eb, {1, {0x01ea }}},
9701  { 0x01ed, {1, {0x01ec }}},
9702  { 0x01ef, {1, {0x01ee }}},
9703  { 0x01f3, {2, {0x01f1, 0x01f2 }}},
9704  { 0x01f5, {1, {0x01f4 }}},
9705  { 0x01f9, {1, {0x01f8 }}},
9706  { 0x01fb, {1, {0x01fa }}},
9707  { 0x01fd, {1, {0x01fc }}},
9708  { 0x01ff, {1, {0x01fe }}},
9709  { 0x0201, {1, {0x0200 }}},
9710  { 0x0203, {1, {0x0202 }}},
9711  { 0x0205, {1, {0x0204 }}},
9712  { 0x0207, {1, {0x0206 }}},
9713  { 0x0209, {1, {0x0208 }}},
9714  { 0x020b, {1, {0x020a }}},
9715  { 0x020d, {1, {0x020c }}},
9716  { 0x020f, {1, {0x020e }}},
9717  { 0x0211, {1, {0x0210 }}},
9718  { 0x0213, {1, {0x0212 }}},
9719  { 0x0215, {1, {0x0214 }}},
9720  { 0x0217, {1, {0x0216 }}},
9721  { 0x0219, {1, {0x0218 }}},
9722  { 0x021b, {1, {0x021a }}},
9723  { 0x021d, {1, {0x021c }}},
9724  { 0x021f, {1, {0x021e }}},
9725  { 0x0223, {1, {0x0222 }}},
9726  { 0x0225, {1, {0x0224 }}},
9727  { 0x0227, {1, {0x0226 }}},
9728  { 0x0229, {1, {0x0228 }}},
9729  { 0x022b, {1, {0x022a }}},
9730  { 0x022d, {1, {0x022c }}},
9731  { 0x022f, {1, {0x022e }}},
9732  { 0x0231, {1, {0x0230 }}},
9733  { 0x0233, {1, {0x0232 }}},
9734  { 0x023c, {1, {0x023b }}},
9735  { 0x0253, {1, {0x0181 }}},
9736  { 0x0254, {1, {0x0186 }}},
9737  { 0x0256, {1, {0x0189 }}},
9738  { 0x0257, {1, {0x018a }}},
9739  { 0x0259, {1, {0x018f }}},
9740  { 0x025b, {1, {0x0190 }}},
9741  { 0x0260, {1, {0x0193 }}},
9742  { 0x0263, {1, {0x0194 }}},
9743  { 0x0268, {1, {0x0197 }}},
9744  { 0x0269, {1, {0x0196 }}},
9745  { 0x026f, {1, {0x019c }}},
9746  { 0x0272, {1, {0x019d }}},
9747  { 0x0275, {1, {0x019f }}},
9748  { 0x0280, {1, {0x01a6 }}},
9749  { 0x0283, {1, {0x01a9 }}},
9750  { 0x0288, {1, {0x01ae }}},
9751  { 0x028a, {1, {0x01b1 }}},
9752  { 0x028b, {1, {0x01b2 }}},
9753  { 0x0292, {1, {0x01b7 }}},
9754  { 0x0294, {1, {0x0241 }}},
9755  { 0x03ac, {1, {0x0386 }}},
9756  { 0x03ad, {1, {0x0388 }}},
9757  { 0x03ae, {1, {0x0389 }}},
9758  { 0x03af, {1, {0x038a }}},
9759  { 0x03b1, {1, {0x0391 }}},
9760  { 0x03b2, {2, {0x0392, 0x03d0 }}},
9761  { 0x03b3, {1, {0x0393 }}},
9762  { 0x03b4, {1, {0x0394 }}},
9763  { 0x03b5, {2, {0x03f5, 0x0395 }}},
9764  { 0x03b6, {1, {0x0396 }}},
9765  { 0x03b7, {1, {0x0397 }}},
9766  { 0x03b8, {3, {0x03f4, 0x0398, 0x03d1 }}},
9767  { 0x03b9, {3, {0x1fbe, 0x0399, 0x0345 }}},
9768  { 0x03ba, {2, {0x03f0, 0x039a }}},
9769  { 0x03bb, {1, {0x039b }}},
9770  { 0x03bc, {2, {0x00b5, 0x039c }}},
9771  { 0x03bd, {1, {0x039d }}},
9772  { 0x03be, {1, {0x039e }}},
9773  { 0x03bf, {1, {0x039f }}},
9774  { 0x03c0, {2, {0x03a0, 0x03d6 }}},
9775  { 0x03c1, {2, {0x03f1, 0x03a1 }}},
9776  { 0x03c3, {2, {0x03a3, 0x03c2 }}},
9777  { 0x03c4, {1, {0x03a4 }}},
9778  { 0x03c5, {1, {0x03a5 }}},
9779  { 0x03c6, {2, {0x03a6, 0x03d5 }}},
9780  { 0x03c7, {1, {0x03a7 }}},
9781  { 0x03c8, {1, {0x03a8 }}},
9782  { 0x03c9, {2, {0x03a9, 0x2126 }}},
9783  { 0x03ca, {1, {0x03aa }}},
9784  { 0x03cb, {1, {0x03ab }}},
9785  { 0x03cc, {1, {0x038c }}},
9786  { 0x03cd, {1, {0x038e }}},
9787  { 0x03ce, {1, {0x038f }}},
9788  { 0x03d9, {1, {0x03d8 }}},
9789  { 0x03db, {1, {0x03da }}},
9790  { 0x03dd, {1, {0x03dc }}},
9791  { 0x03df, {1, {0x03de }}},
9792  { 0x03e1, {1, {0x03e0 }}},
9793  { 0x03e3, {1, {0x03e2 }}},
9794  { 0x03e5, {1, {0x03e4 }}},
9795  { 0x03e7, {1, {0x03e6 }}},
9796  { 0x03e9, {1, {0x03e8 }}},
9797  { 0x03eb, {1, {0x03ea }}},
9798  { 0x03ed, {1, {0x03ec }}},
9799  { 0x03ef, {1, {0x03ee }}},
9800  { 0x03f2, {1, {0x03f9 }}},
9801  { 0x03f8, {1, {0x03f7 }}},
9802  { 0x03fb, {1, {0x03fa }}},
9803  { 0x0430, {1, {0x0410 }}},
9804  { 0x0431, {1, {0x0411 }}},
9805  { 0x0432, {1, {0x0412 }}},
9806  { 0x0433, {1, {0x0413 }}},
9807  { 0x0434, {1, {0x0414 }}},
9808  { 0x0435, {1, {0x0415 }}},
9809  { 0x0436, {1, {0x0416 }}},
9810  { 0x0437, {1, {0x0417 }}},
9811  { 0x0438, {1, {0x0418 }}},
9812  { 0x0439, {1, {0x0419 }}},
9813  { 0x043a, {1, {0x041a }}},
9814  { 0x043b, {1, {0x041b }}},
9815  { 0x043c, {1, {0x041c }}},
9816  { 0x043d, {1, {0x041d }}},
9817  { 0x043e, {1, {0x041e }}},
9818  { 0x043f, {1, {0x041f }}},
9819  { 0x0440, {1, {0x0420 }}},
9820  { 0x0441, {1, {0x0421 }}},
9821  { 0x0442, {1, {0x0422 }}},
9822  { 0x0443, {1, {0x0423 }}},
9823  { 0x0444, {1, {0x0424 }}},
9824  { 0x0445, {1, {0x0425 }}},
9825  { 0x0446, {1, {0x0426 }}},
9826  { 0x0447, {1, {0x0427 }}},
9827  { 0x0448, {1, {0x0428 }}},
9828  { 0x0449, {1, {0x0429 }}},
9829  { 0x044a, {1, {0x042a }}},
9830  { 0x044b, {1, {0x042b }}},
9831  { 0x044c, {1, {0x042c }}},
9832  { 0x044d, {1, {0x042d }}},
9833  { 0x044e, {1, {0x042e }}},
9834  { 0x044f, {1, {0x042f }}},
9835  { 0x0450, {1, {0x0400 }}},
9836  { 0x0451, {1, {0x0401 }}},
9837  { 0x0452, {1, {0x0402 }}},
9838  { 0x0453, {1, {0x0403 }}},
9839  { 0x0454, {1, {0x0404 }}},
9840  { 0x0455, {1, {0x0405 }}},
9841  { 0x0456, {1, {0x0406 }}},
9842  { 0x0457, {1, {0x0407 }}},
9843  { 0x0458, {1, {0x0408 }}},
9844  { 0x0459, {1, {0x0409 }}},
9845  { 0x045a, {1, {0x040a }}},
9846  { 0x045b, {1, {0x040b }}},
9847  { 0x045c, {1, {0x040c }}},
9848  { 0x045d, {1, {0x040d }}},
9849  { 0x045e, {1, {0x040e }}},
9850  { 0x045f, {1, {0x040f }}},
9851  { 0x0461, {1, {0x0460 }}},
9852  { 0x0463, {1, {0x0462 }}},
9853  { 0x0465, {1, {0x0464 }}},
9854  { 0x0467, {1, {0x0466 }}},
9855  { 0x0469, {1, {0x0468 }}},
9856  { 0x046b, {1, {0x046a }}},
9857  { 0x046d, {1, {0x046c }}},
9858  { 0x046f, {1, {0x046e }}},
9859  { 0x0471, {1, {0x0470 }}},
9860  { 0x0473, {1, {0x0472 }}},
9861  { 0x0475, {1, {0x0474 }}},
9862  { 0x0477, {1, {0x0476 }}},
9863  { 0x0479, {1, {0x0478 }}},
9864  { 0x047b, {1, {0x047a }}},
9865  { 0x047d, {1, {0x047c }}},
9866  { 0x047f, {1, {0x047e }}},
9867  { 0x0481, {1, {0x0480 }}},
9868  { 0x048b, {1, {0x048a }}},
9869  { 0x048d, {1, {0x048c }}},
9870  { 0x048f, {1, {0x048e }}},
9871  { 0x0491, {1, {0x0490 }}},
9872  { 0x0493, {1, {0x0492 }}},
9873  { 0x0495, {1, {0x0494 }}},
9874  { 0x0497, {1, {0x0496 }}},
9875  { 0x0499, {1, {0x0498 }}},
9876  { 0x049b, {1, {0x049a }}},
9877  { 0x049d, {1, {0x049c }}},
9878  { 0x049f, {1, {0x049e }}},
9879  { 0x04a1, {1, {0x04a0 }}},
9880  { 0x04a3, {1, {0x04a2 }}},
9881  { 0x04a5, {1, {0x04a4 }}},
9882  { 0x04a7, {1, {0x04a6 }}},
9883  { 0x04a9, {1, {0x04a8 }}},
9884  { 0x04ab, {1, {0x04aa }}},
9885  { 0x04ad, {1, {0x04ac }}},
9886  { 0x04af, {1, {0x04ae }}},
9887  { 0x04b1, {1, {0x04b0 }}},
9888  { 0x04b3, {1, {0x04b2 }}},
9889  { 0x04b5, {1, {0x04b4 }}},
9890  { 0x04b7, {1, {0x04b6 }}},
9891  { 0x04b9, {1, {0x04b8 }}},
9892  { 0x04bb, {1, {0x04ba }}},
9893  { 0x04bd, {1, {0x04bc }}},
9894  { 0x04bf, {1, {0x04be }}},
9895  { 0x04c2, {1, {0x04c1 }}},
9896  { 0x04c4, {1, {0x04c3 }}},
9897  { 0x04c6, {1, {0x04c5 }}},
9898  { 0x04c8, {1, {0x04c7 }}},
9899  { 0x04ca, {1, {0x04c9 }}},
9900  { 0x04cc, {1, {0x04cb }}},
9901  { 0x04ce, {1, {0x04cd }}},
9902  { 0x04d1, {1, {0x04d0 }}},
9903  { 0x04d3, {1, {0x04d2 }}},
9904  { 0x04d5, {1, {0x04d4 }}},
9905  { 0x04d7, {1, {0x04d6 }}},
9906  { 0x04d9, {1, {0x04d8 }}},
9907  { 0x04db, {1, {0x04da }}},
9908  { 0x04dd, {1, {0x04dc }}},
9909  { 0x04df, {1, {0x04de }}},
9910  { 0x04e1, {1, {0x04e0 }}},
9911  { 0x04e3, {1, {0x04e2 }}},
9912  { 0x04e5, {1, {0x04e4 }}},
9913  { 0x04e7, {1, {0x04e6 }}},
9914  { 0x04e9, {1, {0x04e8 }}},
9915  { 0x04eb, {1, {0x04ea }}},
9916  { 0x04ed, {1, {0x04ec }}},
9917  { 0x04ef, {1, {0x04ee }}},
9918  { 0x04f1, {1, {0x04f0 }}},
9919  { 0x04f3, {1, {0x04f2 }}},
9920  { 0x04f5, {1, {0x04f4 }}},
9921  { 0x04f7, {1, {0x04f6 }}},
9922  { 0x04f9, {1, {0x04f8 }}},
9923  { 0x0501, {1, {0x0500 }}},
9924  { 0x0503, {1, {0x0502 }}},
9925  { 0x0505, {1, {0x0504 }}},
9926  { 0x0507, {1, {0x0506 }}},
9927  { 0x0509, {1, {0x0508 }}},
9928  { 0x050b, {1, {0x050a }}},
9929  { 0x050d, {1, {0x050c }}},
9930  { 0x050f, {1, {0x050e }}},
9931  { 0x0561, {1, {0x0531 }}},
9932  { 0x0562, {1, {0x0532 }}},
9933  { 0x0563, {1, {0x0533 }}},
9934  { 0x0564, {1, {0x0534 }}},
9935  { 0x0565, {1, {0x0535 }}},
9936  { 0x0566, {1, {0x0536 }}},
9937  { 0x0567, {1, {0x0537 }}},
9938  { 0x0568, {1, {0x0538 }}},
9939  { 0x0569, {1, {0x0539 }}},
9940  { 0x056a, {1, {0x053a }}},
9941  { 0x056b, {1, {0x053b }}},
9942  { 0x056c, {1, {0x053c }}},
9943  { 0x056d, {1, {0x053d }}},
9944  { 0x056e, {1, {0x053e }}},
9945  { 0x056f, {1, {0x053f }}},
9946  { 0x0570, {1, {0x0540 }}},
9947  { 0x0571, {1, {0x0541 }}},
9948  { 0x0572, {1, {0x0542 }}},
9949  { 0x0573, {1, {0x0543 }}},
9950  { 0x0574, {1, {0x0544 }}},
9951  { 0x0575, {1, {0x0545 }}},
9952  { 0x0576, {1, {0x0546 }}},
9953  { 0x0577, {1, {0x0547 }}},
9954  { 0x0578, {1, {0x0548 }}},
9955  { 0x0579, {1, {0x0549 }}},
9956  { 0x057a, {1, {0x054a }}},
9957  { 0x057b, {1, {0x054b }}},
9958  { 0x057c, {1, {0x054c }}},
9959  { 0x057d, {1, {0x054d }}},
9960  { 0x057e, {1, {0x054e }}},
9961  { 0x057f, {1, {0x054f }}},
9962  { 0x0580, {1, {0x0550 }}},
9963  { 0x0581, {1, {0x0551 }}},
9964  { 0x0582, {1, {0x0552 }}},
9965  { 0x0583, {1, {0x0553 }}},
9966  { 0x0584, {1, {0x0554 }}},
9967  { 0x0585, {1, {0x0555 }}},
9968  { 0x0586, {1, {0x0556 }}},
9969  { 0x1e01, {1, {0x1e00 }}},
9970  { 0x1e03, {1, {0x1e02 }}},
9971  { 0x1e05, {1, {0x1e04 }}},
9972  { 0x1e07, {1, {0x1e06 }}},
9973  { 0x1e09, {1, {0x1e08 }}},
9974  { 0x1e0b, {1, {0x1e0a }}},
9975  { 0x1e0d, {1, {0x1e0c }}},
9976  { 0x1e0f, {1, {0x1e0e }}},
9977  { 0x1e11, {1, {0x1e10 }}},
9978  { 0x1e13, {1, {0x1e12 }}},
9979  { 0x1e15, {1, {0x1e14 }}},
9980  { 0x1e17, {1, {0x1e16 }}},
9981  { 0x1e19, {1, {0x1e18 }}},
9982  { 0x1e1b, {1, {0x1e1a }}},
9983  { 0x1e1d, {1, {0x1e1c }}},
9984  { 0x1e1f, {1, {0x1e1e }}},
9985  { 0x1e21, {1, {0x1e20 }}},
9986  { 0x1e23, {1, {0x1e22 }}},
9987  { 0x1e25, {1, {0x1e24 }}},
9988  { 0x1e27, {1, {0x1e26 }}},
9989  { 0x1e29, {1, {0x1e28 }}},
9990  { 0x1e2b, {1, {0x1e2a }}},
9991  { 0x1e2d, {1, {0x1e2c }}},
9992  { 0x1e2f, {1, {0x1e2e }}},
9993  { 0x1e31, {1, {0x1e30 }}},
9994  { 0x1e33, {1, {0x1e32 }}},
9995  { 0x1e35, {1, {0x1e34 }}},
9996  { 0x1e37, {1, {0x1e36 }}},
9997  { 0x1e39, {1, {0x1e38 }}},
9998  { 0x1e3b, {1, {0x1e3a }}},
9999  { 0x1e3d, {1, {0x1e3c }}},
10000  { 0x1e3f, {1, {0x1e3e }}},
10001  { 0x1e41, {1, {0x1e40 }}},
10002  { 0x1e43, {1, {0x1e42 }}},
10003  { 0x1e45, {1, {0x1e44 }}},
10004  { 0x1e47, {1, {0x1e46 }}},
10005  { 0x1e49, {1, {0x1e48 }}},
10006  { 0x1e4b, {1, {0x1e4a }}},
10007  { 0x1e4d, {1, {0x1e4c }}},
10008  { 0x1e4f, {1, {0x1e4e }}},
10009  { 0x1e51, {1, {0x1e50 }}},
10010  { 0x1e53, {1, {0x1e52 }}},
10011  { 0x1e55, {1, {0x1e54 }}},
10012  { 0x1e57, {1, {0x1e56 }}},
10013  { 0x1e59, {1, {0x1e58 }}},
10014  { 0x1e5b, {1, {0x1e5a }}},
10015  { 0x1e5d, {1, {0x1e5c }}},
10016  { 0x1e5f, {1, {0x1e5e }}},
10017  { 0x1e61, {2, {0x1e9b, 0x1e60 }}},
10018  { 0x1e63, {1, {0x1e62 }}},
10019  { 0x1e65, {1, {0x1e64 }}},
10020  { 0x1e67, {1, {0x1e66 }}},
10021  { 0x1e69, {1, {0x1e68 }}},
10022  { 0x1e6b, {1, {0x1e6a }}},
10023  { 0x1e6d, {1, {0x1e6c }}},
10024  { 0x1e6f, {1, {0x1e6e }}},
10025  { 0x1e71, {1, {0x1e70 }}},
10026  { 0x1e73, {1, {0x1e72 }}},
10027  { 0x1e75, {1, {0x1e74 }}},
10028  { 0x1e77, {1, {0x1e76 }}},
10029  { 0x1e79, {1, {0x1e78 }}},
10030  { 0x1e7b, {1, {0x1e7a }}},
10031  { 0x1e7d, {1, {0x1e7c }}},
10032  { 0x1e7f, {1, {0x1e7e }}},
10033  { 0x1e81, {1, {0x1e80 }}},
10034  { 0x1e83, {1, {0x1e82 }}},
10035  { 0x1e85, {1, {0x1e84 }}},
10036  { 0x1e87, {1, {0x1e86 }}},
10037  { 0x1e89, {1, {0x1e88 }}},
10038  { 0x1e8b, {1, {0x1e8a }}},
10039  { 0x1e8d, {1, {0x1e8c }}},
10040  { 0x1e8f, {1, {0x1e8e }}},
10041  { 0x1e91, {1, {0x1e90 }}},
10042  { 0x1e93, {1, {0x1e92 }}},
10043  { 0x1e95, {1, {0x1e94 }}},
10044  { 0x1ea1, {1, {0x1ea0 }}},
10045  { 0x1ea3, {1, {0x1ea2 }}},
10046  { 0x1ea5, {1, {0x1ea4 }}},
10047  { 0x1ea7, {1, {0x1ea6 }}},
10048  { 0x1ea9, {1, {0x1ea8 }}},
10049  { 0x1eab, {1, {0x1eaa }}},
10050  { 0x1ead, {1, {0x1eac }}},
10051  { 0x1eaf, {1, {0x1eae }}},
10052  { 0x1eb1, {1, {0x1eb0 }}},
10053  { 0x1eb3, {1, {0x1eb2 }}},
10054  { 0x1eb5, {1, {0x1eb4 }}},
10055  { 0x1eb7, {1, {0x1eb6 }}},
10056  { 0x1eb9, {1, {0x1eb8 }}},
10057  { 0x1ebb, {1, {0x1eba }}},
10058  { 0x1ebd, {1, {0x1ebc }}},
10059  { 0x1ebf, {1, {0x1ebe }}},
10060  { 0x1ec1, {1, {0x1ec0 }}},
10061  { 0x1ec3, {1, {0x1ec2 }}},
10062  { 0x1ec5, {1, {0x1ec4 }}},
10063  { 0x1ec7, {1, {0x1ec6 }}},
10064  { 0x1ec9, {1, {0x1ec8 }}},
10065  { 0x1ecb, {1, {0x1eca }}},
10066  { 0x1ecd, {1, {0x1ecc }}},
10067  { 0x1ecf, {1, {0x1ece }}},
10068  { 0x1ed1, {1, {0x1ed0 }}},
10069  { 0x1ed3, {1, {0x1ed2 }}},
10070  { 0x1ed5, {1, {0x1ed4 }}},
10071  { 0x1ed7, {1, {0x1ed6 }}},
10072  { 0x1ed9, {1, {0x1ed8 }}},
10073  { 0x1edb, {1, {0x1eda }}},
10074  { 0x1edd, {1, {0x1edc }}},
10075  { 0x1edf, {1, {0x1ede }}},
10076  { 0x1ee1, {1, {0x1ee0 }}},
10077  { 0x1ee3, {1, {0x1ee2 }}},
10078  { 0x1ee5, {1, {0x1ee4 }}},
10079  { 0x1ee7, {1, {0x1ee6 }}},
10080  { 0x1ee9, {1, {0x1ee8 }}},
10081  { 0x1eeb, {1, {0x1eea }}},
10082  { 0x1eed, {1, {0x1eec }}},
10083  { 0x1eef, {1, {0x1eee }}},
10084  { 0x1ef1, {1, {0x1ef0 }}},
10085  { 0x1ef3, {1, {0x1ef2 }}},
10086  { 0x1ef5, {1, {0x1ef4 }}},
10087  { 0x1ef7, {1, {0x1ef6 }}},
10088  { 0x1ef9, {1, {0x1ef8 }}},
10089  { 0x1f00, {1, {0x1f08 }}},
10090  { 0x1f01, {1, {0x1f09 }}},
10091  { 0x1f02, {1, {0x1f0a }}},
10092  { 0x1f03, {1, {0x1f0b }}},
10093  { 0x1f04, {1, {0x1f0c }}},
10094  { 0x1f05, {1, {0x1f0d }}},
10095  { 0x1f06, {1, {0x1f0e }}},
10096  { 0x1f07, {1, {0x1f0f }}},
10097  { 0x1f10, {1, {0x1f18 }}},
10098  { 0x1f11, {1, {0x1f19 }}},
10099  { 0x1f12, {1, {0x1f1a }}},
10100  { 0x1f13, {1, {0x1f1b }}},
10101  { 0x1f14, {1, {0x1f1c }}},
10102  { 0x1f15, {1, {0x1f1d }}},
10103  { 0x1f20, {1, {0x1f28 }}},
10104  { 0x1f21, {1, {0x1f29 }}},
10105  { 0x1f22, {1, {0x1f2a }}},
10106  { 0x1f23, {1, {0x1f2b }}},
10107  { 0x1f24, {1, {0x1f2c }}},
10108  { 0x1f25, {1, {0x1f2d }}},
10109  { 0x1f26, {1, {0x1f2e }}},
10110  { 0x1f27, {1, {0x1f2f }}},
10111  { 0x1f30, {1, {0x1f38 }}},
10112  { 0x1f31, {1, {0x1f39 }}},
10113  { 0x1f32, {1, {0x1f3a }}},
10114  { 0x1f33, {1, {0x1f3b }}},
10115  { 0x1f34, {1, {0x1f3c }}},
10116  { 0x1f35, {1, {0x1f3d }}},
10117  { 0x1f36, {1, {0x1f3e }}},
10118  { 0x1f37, {1, {0x1f3f }}},
10119  { 0x1f40, {1, {0x1f48 }}},
10120  { 0x1f41, {1, {0x1f49 }}},
10121  { 0x1f42, {1, {0x1f4a }}},
10122  { 0x1f43, {1, {0x1f4b }}},
10123  { 0x1f44, {1, {0x1f4c }}},
10124  { 0x1f45, {1, {0x1f4d }}},
10125  { 0x1f51, {1, {0x1f59 }}},
10126  { 0x1f53, {1, {0x1f5b }}},
10127  { 0x1f55, {1, {0x1f5d }}},
10128  { 0x1f57, {1, {0x1f5f }}},
10129  { 0x1f60, {1, {0x1f68 }}},
10130  { 0x1f61, {1, {0x1f69 }}},
10131  { 0x1f62, {1, {0x1f6a }}},
10132  { 0x1f63, {1, {0x1f6b }}},
10133  { 0x1f64, {1, {0x1f6c }}},
10134  { 0x1f65, {1, {0x1f6d }}},
10135  { 0x1f66, {1, {0x1f6e }}},
10136  { 0x1f67, {1, {0x1f6f }}},
10137  { 0x1f70, {1, {0x1fba }}},
10138  { 0x1f71, {1, {0x1fbb }}},
10139  { 0x1f72, {1, {0x1fc8 }}},
10140  { 0x1f73, {1, {0x1fc9 }}},
10141  { 0x1f74, {1, {0x1fca }}},
10142  { 0x1f75, {1, {0x1fcb }}},
10143  { 0x1f76, {1, {0x1fda }}},
10144  { 0x1f77, {1, {0x1fdb }}},
10145  { 0x1f78, {1, {0x1ff8 }}},
10146  { 0x1f79, {1, {0x1ff9 }}},
10147  { 0x1f7a, {1, {0x1fea }}},
10148  { 0x1f7b, {1, {0x1feb }}},
10149  { 0x1f7c, {1, {0x1ffa }}},
10150  { 0x1f7d, {1, {0x1ffb }}},
10151  { 0x1fb0, {1, {0x1fb8 }}},
10152  { 0x1fb1, {1, {0x1fb9 }}},
10153  { 0x1fd0, {1, {0x1fd8 }}},
10154  { 0x1fd1, {1, {0x1fd9 }}},
10155  { 0x1fe0, {1, {0x1fe8 }}},
10156  { 0x1fe1, {1, {0x1fe9 }}},
10157  { 0x1fe5, {1, {0x1fec }}},
10158  { 0x2170, {1, {0x2160 }}},
10159  { 0x2171, {1, {0x2161 }}},
10160  { 0x2172, {1, {0x2162 }}},
10161  { 0x2173, {1, {0x2163 }}},
10162  { 0x2174, {1, {0x2164 }}},
10163  { 0x2175, {1, {0x2165 }}},
10164  { 0x2176, {1, {0x2166 }}},
10165  { 0x2177, {1, {0x2167 }}},
10166  { 0x2178, {1, {0x2168 }}},
10167  { 0x2179, {1, {0x2169 }}},
10168  { 0x217a, {1, {0x216a }}},
10169  { 0x217b, {1, {0x216b }}},
10170  { 0x217c, {1, {0x216c }}},
10171  { 0x217d, {1, {0x216d }}},
10172  { 0x217e, {1, {0x216e }}},
10173  { 0x217f, {1, {0x216f }}},
10174  { 0x24d0, {1, {0x24b6 }}},
10175  { 0x24d1, {1, {0x24b7 }}},
10176  { 0x24d2, {1, {0x24b8 }}},
10177  { 0x24d3, {1, {0x24b9 }}},
10178  { 0x24d4, {1, {0x24ba }}},
10179  { 0x24d5, {1, {0x24bb }}},
10180  { 0x24d6, {1, {0x24bc }}},
10181  { 0x24d7, {1, {0x24bd }}},
10182  { 0x24d8, {1, {0x24be }}},
10183  { 0x24d9, {1, {0x24bf }}},
10184  { 0x24da, {1, {0x24c0 }}},
10185  { 0x24db, {1, {0x24c1 }}},
10186  { 0x24dc, {1, {0x24c2 }}},
10187  { 0x24dd, {1, {0x24c3 }}},
10188  { 0x24de, {1, {0x24c4 }}},
10189  { 0x24df, {1, {0x24c5 }}},
10190  { 0x24e0, {1, {0x24c6 }}},
10191  { 0x24e1, {1, {0x24c7 }}},
10192  { 0x24e2, {1, {0x24c8 }}},
10193  { 0x24e3, {1, {0x24c9 }}},
10194  { 0x24e4, {1, {0x24ca }}},
10195  { 0x24e5, {1, {0x24cb }}},
10196  { 0x24e6, {1, {0x24cc }}},
10197  { 0x24e7, {1, {0x24cd }}},
10198  { 0x24e8, {1, {0x24ce }}},
10199  { 0x24e9, {1, {0x24cf }}},
10200  { 0x2c30, {1, {0x2c00 }}},
10201  { 0x2c31, {1, {0x2c01 }}},
10202  { 0x2c32, {1, {0x2c02 }}},
10203  { 0x2c33, {1, {0x2c03 }}},
10204  { 0x2c34, {1, {0x2c04 }}},
10205  { 0x2c35, {1, {0x2c05 }}},
10206  { 0x2c36, {1, {0x2c06 }}},
10207  { 0x2c37, {1, {0x2c07 }}},
10208  { 0x2c38, {1, {0x2c08 }}},
10209  { 0x2c39, {1, {0x2c09 }}},
10210  { 0x2c3a, {1, {0x2c0a }}},
10211  { 0x2c3b, {1, {0x2c0b }}},
10212  { 0x2c3c, {1, {0x2c0c }}},
10213  { 0x2c3d, {1, {0x2c0d }}},
10214  { 0x2c3e, {1, {0x2c0e }}},
10215  { 0x2c3f, {1, {0x2c0f }}},
10216  { 0x2c40, {1, {0x2c10 }}},
10217  { 0x2c41, {1, {0x2c11 }}},
10218  { 0x2c42, {1, {0x2c12 }}},
10219  { 0x2c43, {1, {0x2c13 }}},
10220  { 0x2c44, {1, {0x2c14 }}},
10221  { 0x2c45, {1, {0x2c15 }}},
10222  { 0x2c46, {1, {0x2c16 }}},
10223  { 0x2c47, {1, {0x2c17 }}},
10224  { 0x2c48, {1, {0x2c18 }}},
10225  { 0x2c49, {1, {0x2c19 }}},
10226  { 0x2c4a, {1, {0x2c1a }}},
10227  { 0x2c4b, {1, {0x2c1b }}},
10228  { 0x2c4c, {1, {0x2c1c }}},
10229  { 0x2c4d, {1, {0x2c1d }}},
10230  { 0x2c4e, {1, {0x2c1e }}},
10231  { 0x2c4f, {1, {0x2c1f }}},
10232  { 0x2c50, {1, {0x2c20 }}},
10233  { 0x2c51, {1, {0x2c21 }}},
10234  { 0x2c52, {1, {0x2c22 }}},
10235  { 0x2c53, {1, {0x2c23 }}},
10236  { 0x2c54, {1, {0x2c24 }}},
10237  { 0x2c55, {1, {0x2c25 }}},
10238  { 0x2c56, {1, {0x2c26 }}},
10239  { 0x2c57, {1, {0x2c27 }}},
10240  { 0x2c58, {1, {0x2c28 }}},
10241  { 0x2c59, {1, {0x2c29 }}},
10242  { 0x2c5a, {1, {0x2c2a }}},
10243  { 0x2c5b, {1, {0x2c2b }}},
10244  { 0x2c5c, {1, {0x2c2c }}},
10245  { 0x2c5d, {1, {0x2c2d }}},
10246  { 0x2c5e, {1, {0x2c2e }}},
10247  { 0x2c81, {1, {0x2c80 }}},
10248  { 0x2c83, {1, {0x2c82 }}},
10249  { 0x2c85, {1, {0x2c84 }}},
10250  { 0x2c87, {1, {0x2c86 }}},
10251  { 0x2c89, {1, {0x2c88 }}},
10252  { 0x2c8b, {1, {0x2c8a }}},
10253  { 0x2c8d, {1, {0x2c8c }}},
10254  { 0x2c8f, {1, {0x2c8e }}},
10255  { 0x2c91, {1, {0x2c90 }}},
10256  { 0x2c93, {1, {0x2c92 }}},
10257  { 0x2c95, {1, {0x2c94 }}},
10258  { 0x2c97, {1, {0x2c96 }}},
10259  { 0x2c99, {1, {0x2c98 }}},
10260  { 0x2c9b, {1, {0x2c9a }}},
10261  { 0x2c9d, {1, {0x2c9c }}},
10262  { 0x2c9f, {1, {0x2c9e }}},
10263  { 0x2ca1, {1, {0x2ca0 }}},
10264  { 0x2ca3, {1, {0x2ca2 }}},
10265  { 0x2ca5, {1, {0x2ca4 }}},
10266  { 0x2ca7, {1, {0x2ca6 }}},
10267  { 0x2ca9, {1, {0x2ca8 }}},
10268  { 0x2cab, {1, {0x2caa }}},
10269  { 0x2cad, {1, {0x2cac }}},
10270  { 0x2caf, {1, {0x2cae }}},
10271  { 0x2cb1, {1, {0x2cb0 }}},
10272  { 0x2cb3, {1, {0x2cb2 }}},
10273  { 0x2cb5, {1, {0x2cb4 }}},
10274  { 0x2cb7, {1, {0x2cb6 }}},
10275  { 0x2cb9, {1, {0x2cb8 }}},
10276  { 0x2cbb, {1, {0x2cba }}},
10277  { 0x2cbd, {1, {0x2cbc }}},
10278  { 0x2cbf, {1, {0x2cbe }}},
10279  { 0x2cc1, {1, {0x2cc0 }}},
10280  { 0x2cc3, {1, {0x2cc2 }}},
10281  { 0x2cc5, {1, {0x2cc4 }}},
10282  { 0x2cc7, {1, {0x2cc6 }}},
10283  { 0x2cc9, {1, {0x2cc8 }}},
10284  { 0x2ccb, {1, {0x2cca }}},
10285  { 0x2ccd, {1, {0x2ccc }}},
10286  { 0x2ccf, {1, {0x2cce }}},
10287  { 0x2cd1, {1, {0x2cd0 }}},
10288  { 0x2cd3, {1, {0x2cd2 }}},
10289  { 0x2cd5, {1, {0x2cd4 }}},
10290  { 0x2cd7, {1, {0x2cd6 }}},
10291  { 0x2cd9, {1, {0x2cd8 }}},
10292  { 0x2cdb, {1, {0x2cda }}},
10293  { 0x2cdd, {1, {0x2cdc }}},
10294  { 0x2cdf, {1, {0x2cde }}},
10295  { 0x2ce1, {1, {0x2ce0 }}},
10296  { 0x2ce3, {1, {0x2ce2 }}},
10297  { 0x2d00, {1, {0x10a0 }}},
10298  { 0x2d01, {1, {0x10a1 }}},
10299  { 0x2d02, {1, {0x10a2 }}},
10300  { 0x2d03, {1, {0x10a3 }}},
10301  { 0x2d04, {1, {0x10a4 }}},
10302  { 0x2d05, {1, {0x10a5 }}},
10303  { 0x2d06, {1, {0x10a6 }}},
10304  { 0x2d07, {1, {0x10a7 }}},
10305  { 0x2d08, {1, {0x10a8 }}},
10306  { 0x2d09, {1, {0x10a9 }}},
10307  { 0x2d0a, {1, {0x10aa }}},
10308  { 0x2d0b, {1, {0x10ab }}},
10309  { 0x2d0c, {1, {0x10ac }}},
10310  { 0x2d0d, {1, {0x10ad }}},
10311  { 0x2d0e, {1, {0x10ae }}},
10312  { 0x2d0f, {1, {0x10af }}},
10313  { 0x2d10, {1, {0x10b0 }}},
10314  { 0x2d11, {1, {0x10b1 }}},
10315  { 0x2d12, {1, {0x10b2 }}},
10316  { 0x2d13, {1, {0x10b3 }}},
10317  { 0x2d14, {1, {0x10b4 }}},
10318  { 0x2d15, {1, {0x10b5 }}},
10319  { 0x2d16, {1, {0x10b6 }}},
10320  { 0x2d17, {1, {0x10b7 }}},
10321  { 0x2d18, {1, {0x10b8 }}},
10322  { 0x2d19, {1, {0x10b9 }}},
10323  { 0x2d1a, {1, {0x10ba }}},
10324  { 0x2d1b, {1, {0x10bb }}},
10325  { 0x2d1c, {1, {0x10bc }}},
10326  { 0x2d1d, {1, {0x10bd }}},
10327  { 0x2d1e, {1, {0x10be }}},
10328  { 0x2d1f, {1, {0x10bf }}},
10329  { 0x2d20, {1, {0x10c0 }}},
10330  { 0x2d21, {1, {0x10c1 }}},
10331  { 0x2d22, {1, {0x10c2 }}},
10332  { 0x2d23, {1, {0x10c3 }}},
10333  { 0x2d24, {1, {0x10c4 }}},
10334  { 0x2d25, {1, {0x10c5 }}},
10335  { 0xff41, {1, {0xff21 }}},
10336  { 0xff42, {1, {0xff22 }}},
10337  { 0xff43, {1, {0xff23 }}},
10338  { 0xff44, {1, {0xff24 }}},
10339  { 0xff45, {1, {0xff25 }}},
10340  { 0xff46, {1, {0xff26 }}},
10341  { 0xff47, {1, {0xff27 }}},
10342  { 0xff48, {1, {0xff28 }}},
10343  { 0xff49, {1, {0xff29 }}},
10344  { 0xff4a, {1, {0xff2a }}},
10345  { 0xff4b, {1, {0xff2b }}},
10346  { 0xff4c, {1, {0xff2c }}},
10347  { 0xff4d, {1, {0xff2d }}},
10348  { 0xff4e, {1, {0xff2e }}},
10349  { 0xff4f, {1, {0xff2f }}},
10350  { 0xff50, {1, {0xff30 }}},
10351  { 0xff51, {1, {0xff31 }}},
10352  { 0xff52, {1, {0xff32 }}},
10353  { 0xff53, {1, {0xff33 }}},
10354  { 0xff54, {1, {0xff34 }}},
10355  { 0xff55, {1, {0xff35 }}},
10356  { 0xff56, {1, {0xff36 }}},
10357  { 0xff57, {1, {0xff37 }}},
10358  { 0xff58, {1, {0xff38 }}},
10359  { 0xff59, {1, {0xff39 }}},
10360  { 0xff5a, {1, {0xff3a }}},
10361  { 0x10428, {1, {0x10400 }}},
10362  { 0x10429, {1, {0x10401 }}},
10363  { 0x1042a, {1, {0x10402 }}},
10364  { 0x1042b, {1, {0x10403 }}},
10365  { 0x1042c, {1, {0x10404 }}},
10366  { 0x1042d, {1, {0x10405 }}},
10367  { 0x1042e, {1, {0x10406 }}},
10368  { 0x1042f, {1, {0x10407 }}},
10369  { 0x10430, {1, {0x10408 }}},
10370  { 0x10431, {1, {0x10409 }}},
10371  { 0x10432, {1, {0x1040a }}},
10372  { 0x10433, {1, {0x1040b }}},
10373  { 0x10434, {1, {0x1040c }}},
10374  { 0x10435, {1, {0x1040d }}},
10375  { 0x10436, {1, {0x1040e }}},
10376  { 0x10437, {1, {0x1040f }}},
10377  { 0x10438, {1, {0x10410 }}},
10378  { 0x10439, {1, {0x10411 }}},
10379  { 0x1043a, {1, {0x10412 }}},
10380  { 0x1043b, {1, {0x10413 }}},
10381  { 0x1043c, {1, {0x10414 }}},
10382  { 0x1043d, {1, {0x10415 }}},
10383  { 0x1043e, {1, {0x10416 }}},
10384  { 0x1043f, {1, {0x10417 }}},
10385  { 0x10440, {1, {0x10418 }}},
10386  { 0x10441, {1, {0x10419 }}},
10387  { 0x10442, {1, {0x1041a }}},
10388  { 0x10443, {1, {0x1041b }}},
10389  { 0x10444, {1, {0x1041c }}},
10390  { 0x10445, {1, {0x1041d }}},
10391  { 0x10446, {1, {0x1041e }}},
10392  { 0x10447, {1, {0x1041f }}},
10393  { 0x10448, {1, {0x10420 }}},
10394  { 0x10449, {1, {0x10421 }}},
10395  { 0x1044a, {1, {0x10422 }}},
10396  { 0x1044b, {1, {0x10423 }}},
10397  { 0x1044c, {1, {0x10424 }}},
10398  { 0x1044d, {1, {0x10425 }}},
10399  { 0x1044e, {1, {0x10426 }}},
10400  { 0x1044f, {1, {0x10427 }}}
10401 };
10402 
10403 static const CaseUnfold_11_Type CaseUnfold_11_Locale[] = {
10404  { 0x0069, {1, {0x0049 }}}
10405 };
10406 
10407 static const CaseUnfold_12_Type CaseUnfold_12[] = {
10408  { {0x0061, 0x02be}, {1, {0x1e9a }}},
10409  { {0x0066, 0x0066}, {1, {0xfb00 }}},
10410  { {0x0066, 0x0069}, {1, {0xfb01 }}},
10411  { {0x0066, 0x006c}, {1, {0xfb02 }}},
10412  { {0x0068, 0x0331}, {1, {0x1e96 }}},
10413  { {0x006a, 0x030c}, {1, {0x01f0 }}},
10414  { {0x0073, 0x0073}, {1, {0x00df }}},
10415  { {0x0073, 0x0074}, {2, {0xfb05, 0xfb06 }}},
10416  { {0x0074, 0x0308}, {1, {0x1e97 }}},
10417  { {0x0077, 0x030a}, {1, {0x1e98 }}},
10418  { {0x0079, 0x030a}, {1, {0x1e99 }}},
10419  { {0x02bc, 0x006e}, {1, {0x0149 }}},
10420  { {0x03ac, 0x03b9}, {1, {0x1fb4 }}},
10421  { {0x03ae, 0x03b9}, {1, {0x1fc4 }}},
10422  { {0x03b1, 0x0342}, {1, {0x1fb6 }}},
10423  { {0x03b1, 0x03b9}, {2, {0x1fb3, 0x1fbc }}},
10424  { {0x03b7, 0x0342}, {1, {0x1fc6 }}},
10425  { {0x03b7, 0x03b9}, {2, {0x1fc3, 0x1fcc }}},
10426  { {0x03b9, 0x0342}, {1, {0x1fd6 }}},
10427  { {0x03c1, 0x0313}, {1, {0x1fe4 }}},
10428  { {0x03c5, 0x0313}, {1, {0x1f50 }}},
10429  { {0x03c5, 0x0342}, {1, {0x1fe6 }}},
10430  { {0x03c9, 0x0342}, {1, {0x1ff6 }}},
10431  { {0x03c9, 0x03b9}, {2, {0x1ff3, 0x1ffc }}},
10432  { {0x03ce, 0x03b9}, {1, {0x1ff4 }}},
10433  { {0x0565, 0x0582}, {1, {0x0587 }}},
10434  { {0x0574, 0x0565}, {1, {0xfb14 }}},
10435  { {0x0574, 0x056b}, {1, {0xfb15 }}},
10436  { {0x0574, 0x056d}, {1, {0xfb17 }}},
10437  { {0x0574, 0x0576}, {1, {0xfb13 }}},
10438  { {0x057e, 0x0576}, {1, {0xfb16 }}},
10439  { {0x1f00, 0x03b9}, {2, {0x1f88, 0x1f80 }}},
10440  { {0x1f01, 0x03b9}, {2, {0x1f81, 0x1f89 }}},
10441  { {0x1f02, 0x03b9}, {2, {0x1f82, 0x1f8a }}},
10442  { {0x1f03, 0x03b9}, {2, {0x1f83, 0x1f8b }}},
10443  { {0x1f04, 0x03b9}, {2, {0x1f84, 0x1f8c }}},
10444  { {0x1f05, 0x03b9}, {2, {0x1f85, 0x1f8d }}},
10445  { {0x1f06, 0x03b9}, {2, {0x1f86, 0x1f8e }}},
10446  { {0x1f07, 0x03b9}, {2, {0x1f87, 0x1f8f }}},
10447  { {0x1f20, 0x03b9}, {2, {0x1f90, 0x1f98 }}},
10448  { {0x1f21, 0x03b9}, {2, {0x1f91, 0x1f99 }}},
10449  { {0x1f22, 0x03b9}, {2, {0x1f92, 0x1f9a }}},
10450  { {0x1f23, 0x03b9}, {2, {0x1f93, 0x1f9b }}},
10451  { {0x1f24, 0x03b9}, {2, {0x1f94, 0x1f9c }}},
10452  { {0x1f25, 0x03b9}, {2, {0x1f95, 0x1f9d }}},
10453  { {0x1f26, 0x03b9}, {2, {0x1f96, 0x1f9e }}},
10454  { {0x1f27, 0x03b9}, {2, {0x1f97, 0x1f9f }}},
10455  { {0x1f60, 0x03b9}, {2, {0x1fa0, 0x1fa8 }}},
10456  { {0x1f61, 0x03b9}, {2, {0x1fa1, 0x1fa9 }}},
10457  { {0x1f62, 0x03b9}, {2, {0x1fa2, 0x1faa }}},
10458  { {0x1f63, 0x03b9}, {2, {0x1fa3, 0x1fab }}},
10459  { {0x1f64, 0x03b9}, {2, {0x1fa4, 0x1fac }}},
10460  { {0x1f65, 0x03b9}, {2, {0x1fa5, 0x1fad }}},
10461  { {0x1f66, 0x03b9}, {2, {0x1fa6, 0x1fae }}},
10462  { {0x1f67, 0x03b9}, {2, {0x1fa7, 0x1faf }}},
10463  { {0x1f70, 0x03b9}, {1, {0x1fb2 }}},
10464  { {0x1f74, 0x03b9}, {1, {0x1fc2 }}},
10465  { {0x1f7c, 0x03b9}, {1, {0x1ff2 }}}
10466 };
10467 
10468 static const CaseUnfold_12_Type CaseUnfold_12_Locale[] = {
10469  { {0x0069, 0x0307}, {1, {0x0130 }}}
10470 };
10471 
10472 static const CaseUnfold_13_Type CaseUnfold_13[] = {
10473  { {0x0066, 0x0066, 0x0069}, {1, {0xfb03 }}},
10474  { {0x0066, 0x0066, 0x006c}, {1, {0xfb04 }}},
10475  { {0x03b1, 0x0342, 0x03b9}, {1, {0x1fb7 }}},
10476  { {0x03b7, 0x0342, 0x03b9}, {1, {0x1fc7 }}},
10477  { {0x03b9, 0x0308, 0x0300}, {1, {0x1fd2 }}},
10478  { {0x03b9, 0x0308, 0x0301}, {2, {0x0390, 0x1fd3 }}},
10479  { {0x03b9, 0x0308, 0x0342}, {1, {0x1fd7 }}},
10480  { {0x03c5, 0x0308, 0x0300}, {1, {0x1fe2 }}},
10481  { {0x03c5, 0x0308, 0x0301}, {2, {0x03b0, 0x1fe3 }}},
10482  { {0x03c5, 0x0308, 0x0342}, {1, {0x1fe7 }}},
10483  { {0x03c5, 0x0313, 0x0300}, {1, {0x1f52 }}},
10484  { {0x03c5, 0x0313, 0x0301}, {1, {0x1f54 }}},
10485  { {0x03c5, 0x0313, 0x0342}, {1, {0x1f56 }}},
10486  { {0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7 }}}
10487 };
10488 
10489 
10490 static PosixBracketEntryType HashEntryData[] = {
10491   { (UChar* )"NEWLINE",                0,  7 },
10492   { (UChar* )"Alpha",                  1,  5 },
10493   { (UChar* )"Blank",                  2,  5 },
10494   { (UChar* )"Cntrl",                  3,  5 },
10495   { (UChar* )"Digit",                  4,  5 },
10496   { (UChar* )"Graph",                  5,  5 },
10497   { (UChar* )"Lower",                  6,  5 },
10498   { (UChar* )"Print",                  7,  5 },
10499   { (UChar* )"Punct",                  8,  5 },
10500   { (UChar* )"Space",                  9,  5 },
10501   { (UChar* )"Upper",                 10,  5 },
10502   { (UChar* )"XDigit",                11,  6 },
10503   { (UChar* )"Word",                  12,  4 },
10504   { (UChar* )"Alnum",                 13,  5 },
10505   { (UChar* )"ASCII",                 14,  5 },
10506 
10507 #ifdef USE_UNICODE_PROPERTIES
10508   { (UChar* )"Any",                   15,  3 },
10509   { (UChar* )"Assigned",              16,  8 },
10510   { (UChar* )"C",                     17,  1 },
10511   { (UChar* )"Cc",                    18,  2 },
10512   { (UChar* )"Cf",                    19,  2 },
10513   { (UChar* )"Cn",                    20,  2 },
10514   { (UChar* )"Co",                    21,  2 },
10515   { (UChar* )"Cs",                    22,  2 },
10516   { (UChar* )"L",                     23,  1 },
10517   { (UChar* )"Ll",                    24,  2 },
10518   { (UChar* )"Lm",                    25,  2 },
10519   { (UChar* )"Lo",                    26,  2 },
10520   { (UChar* )"Lt",                    27,  2 },
10521   { (UChar* )"Lu",                    28,  2 },
10522   { (UChar* )"M",                     29,  1 },
10523   { (UChar* )"Mc",                    30,  2 },
10524   { (UChar* )"Me",                    31,  2 },
10525   { (UChar* )"Mn",                    32,  2 },
10526   { (UChar* )"N",                     33,  1 },
10527   { (UChar* )"Nd",                    34,  2 },
10528   { (UChar* )"Nl",                    35,  2 },
10529   { (UChar* )"No",                    36,  2 },
10530   { (UChar* )"P",                     37,  1 },
10531   { (UChar* )"Pc",                    38,  2 },
10532   { (UChar* )"Pd",                    39,  2 },
10533   { (UChar* )"Pe",                    40,  2 },
10534   { (UChar* )"Pf",                    41,  2 },
10535   { (UChar* )"Pi",                    42,  2 },
10536   { (UChar* )"Po",                    43,  2 },
10537   { (UChar* )"Ps",                    44,  2 },
10538   { (UChar* )"S",                     45,  1 },
10539   { (UChar* )"Sc",                    46,  2 },
10540   { (UChar* )"Sk",                    47,  2 },
10541   { (UChar* )"Sm",                    48,  2 },
10542   { (UChar* )"So",                    49,  2 },
10543   { (UChar* )"Z",                     50,  1 },
10544   { (UChar* )"Zl",                    51,  2 },
10545   { (UChar* )"Zp",                    52,  2 },
10546   { (UChar* )"Zs",                    53,  2 },
10547   { (UChar* )"Arabic",                54,  6 },
10548   { (UChar* )"Armenian",              55,  8 },
10549   { (UChar* )"Bengali",               56,  7 },
10550   { (UChar* )"Bopomofo",              57,  8 },
10551   { (UChar* )"Braille",               58,  7 },
10552   { (UChar* )"Buginese",              59,  8 },
10553   { (UChar* )"Buhid",                 60,  5 },
10554   { (UChar* )"Canadian_Aboriginal",   61, 19 },
10555   { (UChar* )"Cherokee",              62,  8 },
10556   { (UChar* )"Common",                63,  6 },
10557   { (UChar* )"Coptic",                64,  6 },
10558   { (UChar* )"Cypriot",               65,  7 },
10559   { (UChar* )"Cyrillic",              66,  8 },
10560   { (UChar* )"Deseret",               67,  7 },
10561   { (UChar* )"Devanagari",            68, 10 },
10562   { (UChar* )"Ethiopic",              69,  8 },
10563   { (UChar* )"Georgian",              70,  8 },
10564   { (UChar* )"Glagolitic",            71, 10 },
10565   { (UChar* )"Gothic",                72,  6 },
10566   { (UChar* )"Greek",                 73,  5 },
10567   { (UChar* )"Gujarati",              74,  8 },
10568   { (UChar* )"Gurmukhi",              75,  8 },
10569   { (UChar* )"Han",                   76,  3 },
10570   { (UChar* )"Hangul",                77,  6 },
10571   { (UChar* )"Hanunoo",               78,  7 },
10572   { (UChar* )"Hebrew",                79,  6 },
10573   { (UChar* )"Hiragana",              80,  8 },
10574   { (UChar* )"Inherited",             81,  9 },
10575   { (UChar* )"Kannada",               82,  7 },
10576   { (UChar* )"Katakana",              83,  8 },
10577   { (UChar* )"Kharoshthi",            84, 10 },
10578   { (UChar* )"Khmer",                 85,  5 },
10579   { (UChar* )"Lao",                   86,  3 },
10580   { (UChar* )"Latin",                 87,  5 },
10581   { (UChar* )"Limbu",                 88,  5 },
10582   { (UChar* )"Linear_B",              89,  8 },
10583   { (UChar* )"Malayalam",             90,  9 },
10584   { (UChar* )"Mongolian",             91,  9 },
10585   { (UChar* )"Myanmar",               92,  7 },
10586   { (UChar* )"New_Tai_Lue",           93, 11 },
10587   { (UChar* )"Ogham",                 94,  5 },
10588   { (UChar* )"Old_Italic",            95, 10 },
10589   { (UChar* )"Old_Persian",           96, 11 },
10590   { (UChar* )"Oriya",                 97,  5 },
10591   { (UChar* )"Osmanya",               98,  7 },
10592   { (UChar* )"Runic",                 99,  5 },
10593   { (UChar* )"Shavian",              100,  7 },
10594   { (UChar* )"Sinhala",              101,  7 },
10595   { (UChar* )"Syloti_Nagri",         102, 12 },
10596   { (UChar* )"Syriac",               103,  6 },
10597   { (UChar* )"Tagalog",              104,  7 },
10598   { (UChar* )"Tagbanwa",             105,  8 },
10599   { (UChar* )"Tai_Le",               106,  6 },
10600   { (UChar* )"Tamil",                107,  5 },
10601   { (UChar* )"Telugu",               108,  6 },
10602   { (UChar* )"Thaana",               109,  6 },
10603   { (UChar* )"Thai",                 110,  4 },
10604   { (UChar* )"Tibetan",              111,  7 },
10605   { (UChar* )"Tifinagh",             112,  8 },
10606   { (UChar* )"Ugaritic",             113,  8 },
10607   { (UChar* )"Yi",                   114,  2 },
10608 #endif /* USE_UNICODE_PROPERTIES */
10609   { (UChar* )NULL,                    -1,  0 }
10610 };
10611 
10612 #ifdef USE_UNICODE_PROPERTIES
10613 #define CODE_RANGES_NUM     115
10614 #else
10615 #define CODE_RANGES_NUM      15
10616 #endif
10617 
10618 static const OnigCodePoint* CodeRanges[CODE_RANGES_NUM];
10619 static int CodeRangeTableInited = 0;
10620 
init_code_range_array(void)10621 static void init_code_range_array(void) {
10622   THREAD_ATOMIC_START;
10623 
10624   CodeRanges[0] = CR_NEWLINE;
10625   CodeRanges[1] = CR_Alpha;
10626   CodeRanges[2] = CR_Blank;
10627   CodeRanges[3] = CR_Cntrl;
10628   CodeRanges[4] = CR_Digit;
10629   CodeRanges[5] = CR_Graph;
10630   CodeRanges[6] = CR_Lower;
10631   CodeRanges[7] = CR_Print;
10632   CodeRanges[8] = CR_Punct;
10633   CodeRanges[9] = CR_Space;
10634   CodeRanges[10] = CR_Upper;
10635   CodeRanges[11] = CR_XDigit;
10636   CodeRanges[12] = CR_Word;
10637   CodeRanges[13] = CR_Alnum;
10638   CodeRanges[14] = CR_ASCII;
10639 
10640 #ifdef USE_UNICODE_PROPERTIES
10641   CodeRanges[15] = CR_Any;
10642   CodeRanges[16] = CR_Assigned;
10643   CodeRanges[17] = CR_C;
10644   CodeRanges[18] = CR_Cc;
10645   CodeRanges[19] = CR_Cf;
10646   CodeRanges[20] = CR_Cn;
10647   CodeRanges[21] = CR_Co;
10648   CodeRanges[22] = CR_Cs;
10649   CodeRanges[23] = CR_L;
10650   CodeRanges[24] = CR_Ll;
10651   CodeRanges[25] = CR_Lm;
10652   CodeRanges[26] = CR_Lo;
10653   CodeRanges[27] = CR_Lt;
10654   CodeRanges[28] = CR_Lu;
10655   CodeRanges[29] = CR_M;
10656   CodeRanges[30] = CR_Mc;
10657   CodeRanges[31] = CR_Me;
10658   CodeRanges[32] = CR_Mn;
10659   CodeRanges[33] = CR_N;
10660   CodeRanges[34] = CR_Nd;
10661   CodeRanges[35] = CR_Nl;
10662   CodeRanges[36] = CR_No;
10663   CodeRanges[37] = CR_P;
10664   CodeRanges[38] = CR_Pc;
10665   CodeRanges[39] = CR_Pd;
10666   CodeRanges[40] = CR_Pe;
10667   CodeRanges[41] = CR_Pf;
10668   CodeRanges[42] = CR_Pi;
10669   CodeRanges[43] = CR_Po;
10670   CodeRanges[44] = CR_Ps;
10671   CodeRanges[45] = CR_S;
10672   CodeRanges[46] = CR_Sc;
10673   CodeRanges[47] = CR_Sk;
10674   CodeRanges[48] = CR_Sm;
10675   CodeRanges[49] = CR_So;
10676   CodeRanges[50] = CR_Z;
10677   CodeRanges[51] = CR_Zl;
10678   CodeRanges[52] = CR_Zp;
10679   CodeRanges[53] = CR_Zs;
10680   CodeRanges[54] = CR_Arabic;
10681   CodeRanges[55] = CR_Armenian;
10682   CodeRanges[56] = CR_Bengali;
10683   CodeRanges[57] = CR_Bopomofo;
10684   CodeRanges[58] = CR_Braille;
10685   CodeRanges[59] = CR_Buginese;
10686   CodeRanges[60] = CR_Buhid;
10687   CodeRanges[61] = CR_Canadian_Aboriginal;
10688   CodeRanges[62] = CR_Cherokee;
10689   CodeRanges[63] = CR_Common;
10690   CodeRanges[64] = CR_Coptic;
10691   CodeRanges[65] = CR_Cypriot;
10692   CodeRanges[66] = CR_Cyrillic;
10693   CodeRanges[67] = CR_Deseret;
10694   CodeRanges[68] = CR_Devanagari;
10695   CodeRanges[69] = CR_Ethiopic;
10696   CodeRanges[70] = CR_Georgian;
10697   CodeRanges[71] = CR_Glagolitic;
10698   CodeRanges[72] = CR_Gothic;
10699   CodeRanges[73] = CR_Greek;
10700   CodeRanges[74] = CR_Gujarati;
10701   CodeRanges[75] = CR_Gurmukhi;
10702   CodeRanges[76] = CR_Han;
10703   CodeRanges[77] = CR_Hangul;
10704   CodeRanges[78] = CR_Hanunoo;
10705   CodeRanges[79] = CR_Hebrew;
10706   CodeRanges[80] = CR_Hiragana;
10707   CodeRanges[81] = CR_Inherited;
10708   CodeRanges[82] = CR_Kannada;
10709   CodeRanges[83] = CR_Katakana;
10710   CodeRanges[84] = CR_Kharoshthi;
10711   CodeRanges[85] = CR_Khmer;
10712   CodeRanges[86] = CR_Lao;
10713   CodeRanges[87] = CR_Latin;
10714   CodeRanges[88] = CR_Limbu;
10715   CodeRanges[89] = CR_Linear_B;
10716   CodeRanges[90] = CR_Malayalam;
10717   CodeRanges[91] = CR_Mongolian;
10718   CodeRanges[92] = CR_Myanmar;
10719   CodeRanges[93] = CR_New_Tai_Lue;
10720   CodeRanges[94] = CR_Ogham;
10721   CodeRanges[95] = CR_Old_Italic;
10722   CodeRanges[96] = CR_Old_Persian;
10723   CodeRanges[97] = CR_Oriya;
10724   CodeRanges[98] = CR_Osmanya;
10725   CodeRanges[99] = CR_Runic;
10726   CodeRanges[100] = CR_Shavian;
10727   CodeRanges[101] = CR_Sinhala;
10728   CodeRanges[102] = CR_Syloti_Nagri;
10729   CodeRanges[103] = CR_Syriac;
10730   CodeRanges[104] = CR_Tagalog;
10731   CodeRanges[105] = CR_Tagbanwa;
10732   CodeRanges[106] = CR_Tai_Le;
10733   CodeRanges[107] = CR_Tamil;
10734   CodeRanges[108] = CR_Telugu;
10735   CodeRanges[109] = CR_Thaana;
10736   CodeRanges[110] = CR_Thai;
10737   CodeRanges[111] = CR_Tibetan;
10738   CodeRanges[112] = CR_Tifinagh;
10739   CodeRanges[113] = CR_Ugaritic;
10740   CodeRanges[114] = CR_Yi;
10741 #endif /* USE_UNICODE_PROPERTIES */
10742 
10743   CodeRangeTableInited = 1;
10744   THREAD_ATOMIC_END;
10745 }
10746 
10747 extern int
onigenc_unicode_is_code_ctype(OnigCodePoint code,unsigned int ctype)10748 onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype)
10749 {
10750   if (
10751 #ifdef USE_UNICODE_PROPERTIES
10752       ctype <= ONIGENC_MAX_STD_CTYPE &&
10753 #endif
10754       code < 256) {
10755     return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype);
10756   }
10757 
10758   if (ctype >= CODE_RANGES_NUM) {
10759     return ONIGERR_TYPE_BUG;
10760   }
10761 
10762   if (CodeRangeTableInited == 0) init_code_range_array();
10763 
10764   return onig_is_in_code_range((UChar* )CodeRanges[ctype], code);
10765 }
10766 
10767 
10768 extern int
onigenc_unicode_ctype_code_range(int ctype,const OnigCodePoint * ranges[])10769 onigenc_unicode_ctype_code_range(int ctype, const OnigCodePoint* ranges[])
10770 {
10771   if (ctype >= CODE_RANGES_NUM) {
10772     return ONIGERR_TYPE_BUG;
10773   }
10774 
10775   if (CodeRangeTableInited == 0) init_code_range_array();
10776 
10777   *ranges = CodeRanges[ctype];
10778 
10779   return 0;
10780 }
10781 
10782 extern int
onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype,OnigCodePoint * sb_out,const OnigCodePoint * ranges[])10783 onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out,
10784                                       const OnigCodePoint* ranges[])
10785 {
10786   *sb_out = 0x00;
10787   return onigenc_unicode_ctype_code_range(ctype, ranges);
10788 }
10789 
10790 #include "st.h"
10791 
10792 #define PROPERTY_NAME_MAX_SIZE    20
10793 
10794 static st_table* NameCtypeTable;
10795 static int NameTableInited = 0;
10796 
init_name_ctype_table(void)10797 static int init_name_ctype_table(void)
10798 {
10799   PosixBracketEntryType *pb;
10800 
10801   THREAD_ATOMIC_START;
10802 
10803   NameCtypeTable = onig_st_init_strend_table_with_size(100);
10804   if (ONIG_IS_NULL(NameCtypeTable)) return ONIGERR_MEMORY;
10805 
10806   for (pb = HashEntryData; ONIG_IS_NOT_NULL(pb->name); pb++) {
10807     onig_st_insert_strend(NameCtypeTable, pb->name, pb->name + pb->len,
10808 			  (st_data_t )pb->ctype);
10809   }
10810 
10811   NameTableInited = 1;
10812   THREAD_ATOMIC_END;
10813   return 0;
10814 }
10815 
10816 extern int
onigenc_unicode_property_name_to_ctype(OnigEncoding enc,UChar * name,UChar * end)10817 onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end)
10818 {
10819   int len;
10820   hash_data_type ctype;
10821   UChar buf[PROPERTY_NAME_MAX_SIZE];
10822   UChar *p;
10823   OnigCodePoint code;
10824 
10825   p = name;
10826   len = 0;
10827   while (p < end) {
10828     code = ONIGENC_MBC_TO_CODE(enc, p, end);
10829     if (code >= 0x80)
10830       return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
10831 
10832     buf[len++] = (UChar )code;
10833     if (len >= PROPERTY_NAME_MAX_SIZE)
10834       return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
10835 
10836     p += enclen(enc, p);
10837   }
10838 
10839   buf[len] = 0;
10840 
10841   if (NameTableInited == 0)  init_name_ctype_table();
10842 
10843   if (onig_st_lookup_strend(NameCtypeTable, buf, buf + len, &ctype) == 0) {
10844     return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
10845   }
10846 
10847   return (int )ctype;
10848 }
10849 
10850 
10851 static int
code2_cmp(OnigCodePoint * x,OnigCodePoint * y)10852 code2_cmp(OnigCodePoint* x, OnigCodePoint* y)
10853 {
10854   if (x[0] == y[0] && x[1] == y[1]) return 0;
10855   return 1;
10856 }
10857 
10858 static int
code2_hash(OnigCodePoint * x)10859 code2_hash(OnigCodePoint* x)
10860 {
10861   return (int )(x[0] + x[1]);
10862 }
10863 
10864 static struct st_hash_type type_code2_hash = {
10865   code2_cmp,
10866   code2_hash,
10867 };
10868 
10869 static int
code3_cmp(OnigCodePoint * x,OnigCodePoint * y)10870 code3_cmp(OnigCodePoint* x, OnigCodePoint* y)
10871 {
10872   if (x[0] == y[0] && x[1] == y[1] && x[2] == y[2]) return 0;
10873   return 1;
10874 }
10875 
10876 static int
code3_hash(OnigCodePoint * x)10877 code3_hash(OnigCodePoint* x)
10878 {
10879   return (int )(x[0] + x[1] + x[2]);
10880 }
10881 
10882 static struct st_hash_type type_code3_hash = {
10883   code3_cmp,
10884   code3_hash,
10885 };
10886 
10887 
10888 static st_table* FoldTable;    /* fold-1, fold-2, fold-3 */
10889 static st_table* Unfold1Table;
10890 static st_table* Unfold2Table;
10891 static st_table* Unfold3Table;
10892 static int CaseFoldInited = 0;
10893 
init_case_fold_table(void)10894 static int init_case_fold_table(void)
10895 {
10896   const CaseFold_11_Type   *p;
10897   const CaseUnfold_11_Type *p1;
10898   const CaseUnfold_12_Type *p2;
10899   const CaseUnfold_13_Type *p3;
10900   int i;
10901 
10902   THREAD_ATOMIC_START;
10903 
10904   FoldTable = st_init_numtable_with_size(1200);
10905   if (ONIG_IS_NULL(FoldTable)) return ONIGERR_MEMORY;
10906   for (i = 0; i < (int )(sizeof(CaseFold)/sizeof(CaseFold_11_Type)); i++) {
10907     p = &CaseFold[i];
10908     st_add_direct(FoldTable, (st_data_t )p->from, (st_data_t )&(p->to));
10909   }
10910   for (i = 0; i < (int )(sizeof(CaseFold_Locale)/sizeof(CaseFold_11_Type));
10911        i++) {
10912     p = &CaseFold_Locale[i];
10913     st_add_direct(FoldTable, (st_data_t )p->from, (st_data_t )&(p->to));
10914   }
10915 
10916   Unfold1Table = st_init_numtable_with_size(1000);
10917   if (ONIG_IS_NULL(Unfold1Table)) return ONIGERR_MEMORY;
10918 
10919   for (i = 0; i < (int )(sizeof(CaseUnfold_11)/sizeof(CaseUnfold_11_Type));
10920        i++) {
10921     p1 = &CaseUnfold_11[i];
10922     st_add_direct(Unfold1Table, (st_data_t )p1->from, (st_data_t )&(p1->to));
10923   }
10924   for (i = 0;
10925        i < (int )(sizeof(CaseUnfold_11_Locale)/sizeof(CaseUnfold_11_Type));
10926        i++) {
10927     p1 = &CaseUnfold_11_Locale[i];
10928     st_add_direct(Unfold1Table, (st_data_t )p1->from, (st_data_t )&(p1->to));
10929   }
10930 
10931   Unfold2Table = st_init_table_with_size(&type_code2_hash, 200);
10932   if (ONIG_IS_NULL(Unfold2Table)) return ONIGERR_MEMORY;
10933 
10934   for (i = 0; i < (int )(sizeof(CaseUnfold_12)/sizeof(CaseUnfold_12_Type));
10935        i++) {
10936     p2 = &CaseUnfold_12[i];
10937     st_add_direct(Unfold2Table, (st_data_t )p2->from, (st_data_t )(&p2->to));
10938   }
10939   for (i = 0;
10940        i < (int )(sizeof(CaseUnfold_12_Locale)/sizeof(CaseUnfold_12_Type));
10941        i++) {
10942     p2 = &CaseUnfold_12_Locale[i];
10943     st_add_direct(Unfold2Table, (st_data_t )p2->from, (st_data_t )(&p2->to));
10944   }
10945 
10946   Unfold3Table = st_init_table_with_size(&type_code3_hash, 30);
10947   if (ONIG_IS_NULL(Unfold3Table)) return ONIGERR_MEMORY;
10948 
10949   for (i = 0; i < (int )(sizeof(CaseUnfold_13)/sizeof(CaseUnfold_13_Type));
10950        i++) {
10951     p3 = &CaseUnfold_13[i];
10952     st_add_direct(Unfold3Table, (st_data_t )p3->from, (st_data_t )(&p3->to));
10953   }
10954 
10955   CaseFoldInited = 1;
10956   THREAD_ATOMIC_END;
10957   return 0;
10958 }
10959 
10960 extern int
onigenc_unicode_mbc_case_fold(OnigEncoding enc,OnigCaseFoldType flag ARG_UNUSED,const UChar ** pp,const UChar * end,UChar * fold)10961 onigenc_unicode_mbc_case_fold(OnigEncoding enc,
10962     OnigCaseFoldType flag ARG_UNUSED, const UChar** pp, const UChar* end,
10963     UChar* fold)
10964 {
10965   CodePointList3 *to;
10966   OnigCodePoint code;
10967   int i, len, rlen;
10968   const UChar *p = *pp;
10969 
10970   if (CaseFoldInited == 0) init_case_fold_table();
10971 
10972   code = ONIGENC_MBC_TO_CODE(enc, p, end);
10973   len = enclen(enc, p);
10974   *pp += len;
10975 
10976 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
10977   if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {
10978     if (code == 0x0049) {
10979       return ONIGENC_CODE_TO_MBC(enc, 0x0131, fold);
10980     }
10981     else if (code == 0x0130) {
10982       return ONIGENC_CODE_TO_MBC(enc, 0x0069, fold);
10983     }
10984   }
10985 #endif
10986 
10987   if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0) {
10988     if (to->n == 1) {
10989       return ONIGENC_CODE_TO_MBC(enc, to->code[0], fold);
10990     }
10991 #if 0
10992     /* NO NEEDS TO CHECK */
10993     else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
10994 #else
10995     else {
10996 #endif
10997       rlen = 0;
10998       for (i = 0; i < to->n; i++) {
10999 	len = ONIGENC_CODE_TO_MBC(enc, to->code[i], fold);
11000 	fold += len;
11001 	rlen += len;
11002       }
11003       return rlen;
11004     }
11005   }
11006 
11007   for (i = 0; i < len; i++) {
11008     *fold++ = *p++;
11009   }
11010   return len;
11011 }
11012 
11013 extern int
11014 onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag,
11015 				    OnigApplyAllCaseFoldFunc f, void* arg)
11016 {
11017   const CaseUnfold_11_Type* p11;
11018   OnigCodePoint code;
11019   int i, j, k, r;
11020 
11021   /* if (CaseFoldInited == 0) init_case_fold_table(); */
11022 
11023   for (i = 0; i < (int )(sizeof(CaseUnfold_11)/sizeof(CaseUnfold_11_Type));
11024        i++) {
11025     p11 = &CaseUnfold_11[i];
11026     for (j = 0; j < p11->to.n; j++) {
11027       code = p11->from;
11028       r = (*f)(p11->to.code[j], &code, 1, arg);
11029       if (r != 0) return r;
11030 
11031       code = p11->to.code[j];
11032       r = (*f)(p11->from, &code, 1, arg);
11033       if (r != 0) return r;
11034 
11035       for (k = 0; k < j; k++) {
11036 	r = (*f)(p11->to.code[j], (OnigCodePoint* )(&p11->to.code[k]), 1, arg);
11037 	if (r != 0) return r;
11038 
11039 	r = (*f)(p11->to.code[k], (OnigCodePoint* )(&p11->to.code[j]), 1, arg);
11040 	if (r != 0) return r;
11041       }
11042     }
11043   }
11044 
11045 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11046   if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {
11047     code = 0x0131;
11048     r = (*f)(0x0049, &code, 1, arg);
11049     if (r != 0) return r;
11050     code = 0x0049;
11051     r = (*f)(0x0131, &code, 1, arg);
11052     if (r != 0) return r;
11053 
11054     code = 0x0130;
11055     r = (*f)(0x0069, &code, 1, arg);
11056     if (r != 0) return r;
11057     code = 0x0069;
11058     r = (*f)(0x0130, &code, 1, arg);
11059     if (r != 0) return r;
11060   }
11061   else {
11062 #endif
11063     for (i = 0;
11064 	 i < (int )(sizeof(CaseUnfold_11_Locale)/sizeof(CaseUnfold_11_Type));
11065 	 i++) {
11066       p11 = &CaseUnfold_11_Locale[i];
11067       for (j = 0; j < p11->to.n; j++) {
11068 	code = p11->from;
11069 	r = (*f)(p11->to.code[j], &code, 1, arg);
11070 	if (r != 0) return r;
11071 
11072 	code = p11->to.code[j];
11073 	r = (*f)(p11->from, &code, 1, arg);
11074 	if (r != 0) return r;
11075 
11076 	for (k = 0; k < j; k++) {
11077 	  r = (*f)(p11->to.code[j], (OnigCodePoint* )(&p11->to.code[k]),
11078 		   1, arg);
11079 	  if (r != 0) return r;
11080 
11081 	  r = (*f)(p11->to.code[k], (OnigCodePoint* )(&p11->to.code[j]),
11082 		   1, arg);
11083 	  if (r != 0) return r;
11084 	}
11085       }
11086     }
11087 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11088   }
11089 #endif
11090 
11091   if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
11092     for (i = 0; i < (int )(sizeof(CaseUnfold_12)/sizeof(CaseUnfold_12_Type));
11093 	 i++) {
11094       for (j = 0; j < CaseUnfold_12[i].to.n; j++) {
11095 	r = (*f)(CaseUnfold_12[i].to.code[j],
11096 		 (OnigCodePoint* )CaseUnfold_12[i].from, 2, arg);
11097 	if (r != 0) return r;
11098 
11099 	for (k = 0; k < CaseUnfold_12[i].to.n; k++) {
11100 	  if (k == j) continue;
11101 
11102 	  r = (*f)(CaseUnfold_12[i].to.code[j],
11103 		   (OnigCodePoint* )(&CaseUnfold_12[i].to.code[k]), 1, arg);
11104 	  if (r != 0) return r;
11105 	}
11106       }
11107     }
11108 
11109 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11110     if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) == 0) {
11111 #endif
11112       for (i = 0;
11113 	   i < (int )(sizeof(CaseUnfold_12_Locale)/sizeof(CaseUnfold_12_Type));
11114 	   i++) {
11115 	for (j = 0; j < CaseUnfold_12_Locale[i].to.n; j++) {
11116 	  r = (*f)(CaseUnfold_12_Locale[i].to.code[j],
11117 		   (OnigCodePoint* )CaseUnfold_12_Locale[i].from, 2, arg);
11118 	  if (r != 0) return r;
11119 
11120 	  for (k = 0; k < CaseUnfold_12_Locale[i].to.n; k++) {
11121 	    if (k == j) continue;
11122 
11123 	    r = (*f)(CaseUnfold_12_Locale[i].to.code[j],
11124 		     (OnigCodePoint* )(&CaseUnfold_12_Locale[i].to.code[k]),
11125 		     1, arg);
11126 	    if (r != 0) return r;
11127 	  }
11128 	}
11129       }
11130 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11131     }
11132 #endif
11133 
11134     for (i = 0; i < (int )(sizeof(CaseUnfold_13)/sizeof(CaseUnfold_13_Type));
11135 	 i++) {
11136       for (j = 0; j < CaseUnfold_13[i].to.n; j++) {
11137 	r = (*f)(CaseUnfold_13[i].to.code[j],
11138 		 (OnigCodePoint* )CaseUnfold_13[i].from, 3, arg);
11139 	if (r != 0) return r;
11140 
11141 	for (k = 0; k < CaseUnfold_13[i].to.n; k++) {
11142 	  if (k == j) continue;
11143 
11144 	  r = (*f)(CaseUnfold_13[i].to.code[j],
11145 		   (OnigCodePoint* )(&CaseUnfold_13[i].to.code[k]), 1, arg);
11146 	  if (r != 0) return r;
11147 	}
11148       }
11149     }
11150   }
11151 
11152   return 0;
11153 }
11154 
11155 extern int
11156 onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,
11157     OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end,
11158     OnigCaseFoldCodeItem items[])
11159 {
11160   int n, i, j, k, len;
11161   OnigCodePoint code, codes[3];
11162   CodePointList3 *to, *z3;
11163   CodePointList2 *z2;
11164 
11165   if (CaseFoldInited == 0) init_case_fold_table();
11166 
11167   n = 0;
11168 
11169   code = ONIGENC_MBC_TO_CODE(enc, p, end);
11170   len = enclen(enc, p);
11171 
11172 #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
11173   if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {
11174     if (code == 0x0049) {
11175       items[0].byte_len = len;
11176       items[0].code_len = 1;
11177       items[0].code[0]  = 0x0131;
11178       return 1;
11179     }
11180     else if (code == 0x0130) {
11181       items[0].byte_len = len;
11182       items[0].code_len = 1;
11183       items[0].code[0]  = 0x0069;
11184       return 1;
11185     }
11186     else if (code == 0x0131) {
11187       items[0].byte_len = len;
11188       items[0].code_len = 1;
11189       items[0].code[0]  = 0x0049;
11190       return 1;
11191     }
11192     else if (code == 0x0069) {
11193       items[0].byte_len = len;
11194       items[0].code_len = 1;
11195       items[0].code[0]  = 0x0130;
11196       return 1;
11197     }
11198   }
11199 #endif
11200 
11201   if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0) {
11202     if (to->n == 1) {
11203       OnigCodePoint orig_code = code;
11204 
11205       items[0].byte_len = len;
11206       items[0].code_len = 1;
11207       items[0].code[0]  = to->code[0];
11208       n++;
11209 
11210       code = to->code[0];
11211       if (onig_st_lookup(Unfold1Table, (st_data_t )code, (void* )&to) != 0) {
11212 	for (i = 0; i < to->n; i++) {
11213 	  if (to->code[i] != orig_code) {
11214 	    items[n].byte_len = len;
11215 	    items[n].code_len = 1;
11216 	    items[n].code[0]  = to->code[i];
11217 	    n++;
11218 	  }
11219 	}
11220       }
11221     }
11222     else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
11223       OnigCodePoint cs[3][4];
11224       int fn, ncs[3];
11225 
11226       for (fn = 0; fn < to->n; fn++) {
11227 	cs[fn][0] = to->code[fn];
11228 	if (onig_st_lookup(Unfold1Table, (st_data_t )cs[fn][0],
11229 			   (void* )&z3) != 0) {
11230 	  for (i = 0; i < z3->n; i++) {
11231 	    cs[fn][i+1] = z3->code[i];
11232 	  }
11233 	  ncs[fn] = z3->n + 1;
11234 	}
11235 	else
11236 	  ncs[fn] = 1;
11237       }
11238 
11239       if (fn == 2) {
11240 	for (i = 0; i < ncs[0]; i++) {
11241 	  for (j = 0; j < ncs[1]; j++) {
11242 	    items[n].byte_len = len;
11243 	    items[n].code_len = 2;
11244 	    items[n].code[0]  = cs[0][i];
11245 	    items[n].code[1]  = cs[1][j];
11246 	    n++;
11247 	  }
11248 	}
11249 
11250 	if (onig_st_lookup(Unfold2Table, (st_data_t )to->code,
11251 			   (void* )&z2) != 0) {
11252 	  for (i = 0; i < z2->n; i++) {
11253 	    if (z2->code[i] == code) continue;
11254 
11255 	    items[n].byte_len = len;
11256 	    items[n].code_len = 1;
11257 	    items[n].code[0]  = z2->code[i];
11258 	    n++;
11259 	  }
11260 	}
11261       }
11262       else {
11263 	for (i = 0; i < ncs[0]; i++) {
11264 	  for (j = 0; j < ncs[1]; j++) {
11265 	    for (k = 0; k < ncs[2]; k++) {
11266 	      items[n].byte_len = len;
11267 	      items[n].code_len = 3;
11268 	      items[n].code[0]  = cs[0][i];
11269 	      items[n].code[1]  = cs[1][j];
11270 	      items[n].code[2]  = cs[2][k];
11271 	      n++;
11272 	    }
11273 	  }
11274 	}
11275 
11276 	if (onig_st_lookup(Unfold3Table, (st_data_t )to->code,
11277 			   (void* )&z2) != 0) {
11278 	  for (i = 0; i < z2->n; i++) {
11279 	    if (z2->code[i] == code) continue;
11280 
11281 	    items[n].byte_len = len;
11282 	    items[n].code_len = 1;
11283 	    items[n].code[0]  = z2->code[i];
11284 	    n++;
11285 	  }
11286 	}
11287       }
11288 
11289       /* multi char folded code is not head of another folded multi char */
11290       flag = 0; /* DISABLE_CASE_FOLD_MULTI_CHAR(flag); */
11291     }
11292   }
11293   else {
11294     if (onig_st_lookup(Unfold1Table, (st_data_t )code, (void* )&to) != 0) {
11295       for (i = 0; i < to->n; i++) {
11296 	items[n].byte_len = len;
11297 	items[n].code_len = 1;
11298 	items[n].code[0]  = to->code[i];
11299 	n++;
11300       }
11301     }
11302   }
11303 
11304 
11305   if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
11306     p += len;
11307     if (p < end) {
11308       int clen;
11309 
11310       codes[0] = code;
11311       code = ONIGENC_MBC_TO_CODE(enc, p, end);
11312       if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0
11313 	  && to->n == 1) {
11314 	codes[1] = to->code[0];
11315       }
11316       else
11317 	codes[1] = code;
11318 
11319       clen = enclen(enc, p);
11320       len += clen;
11321       if (onig_st_lookup(Unfold2Table, (st_data_t )codes, (void* )&z2) != 0) {
11322 	for (i = 0; i < z2->n; i++) {
11323 	  items[n].byte_len = len;
11324 	  items[n].code_len = 1;
11325 	  items[n].code[0]  = z2->code[i];
11326 	  n++;
11327 	}
11328       }
11329 
11330       p += clen;
11331       if (p < end) {
11332 	code = ONIGENC_MBC_TO_CODE(enc, p, end);
11333 	if (onig_st_lookup(FoldTable, (st_data_t )code, (void* )&to) != 0
11334 	    && to->n == 1) {
11335 	  codes[2] = to->code[0];
11336 	}
11337 	else
11338 	  codes[2] = code;
11339 
11340 	clen = enclen(enc, p);
11341 	len += clen;
11342 	if (onig_st_lookup(Unfold3Table, (st_data_t )codes,
11343 			   (void* )&z2) != 0) {
11344 	  for (i = 0; i < z2->n; i++) {
11345 	    items[n].byte_len = len;
11346 	    items[n].code_len = 1;
11347 	    items[n].code[0]  = z2->code[i];
11348 	    n++;
11349 	  }
11350 	}
11351       }
11352     }
11353   }
11354 
11355   return n;
11356 }
11357