1 // Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10 
11 // NOTE: The following code was generated by "scripts/unicode.py", do not edit directly
12 
13 #![allow(missing_docs, non_upper_case_globals, non_snake_case)]
14 
15 /// The version of [Unicode](http://www.unicode.org/)
16 /// that this version of unicode-xid is based on.
17 pub const UNICODE_VERSION: (u64, u64, u64) = (15, 0, 0);
18 
bsearch_range_table(c: char, r: &[(char, char)]) -> bool19 fn bsearch_range_table(c: char, r: &[(char, char)]) -> bool {
20     use core::cmp::Ordering::{Equal, Greater, Less};
21 
22     r.binary_search_by(|&(lo, hi)| {
23         // Because ASCII ranges are at the start of the tables, a search for an
24         // ASCII char will involve more `Greater` results (i.e. the `(lo,hi)`
25         // table entry is greater than `c`) than `Less` results. And given that
26         // ASCII chars are so common, it makes sense to favor them. Therefore,
27         // the `Greater` case is tested for before the `Less` case.
28         if lo > c {
29             Greater
30         } else if hi < c {
31             Less
32         } else {
33             Equal
34         }
35     })
36     .is_ok()
37 }
38 
39 pub mod derived_property {
40     static XID_Continue_table: &[(char, char)] = &[
41         ('\u{30}', '\u{39}'),
42         ('\u{41}', '\u{5a}'),
43         ('\u{5f}', '\u{5f}'),
44         ('\u{61}', '\u{7a}'),
45         ('\u{aa}', '\u{aa}'),
46         ('\u{b5}', '\u{b5}'),
47         ('\u{b7}', '\u{b7}'),
48         ('\u{ba}', '\u{ba}'),
49         ('\u{c0}', '\u{d6}'),
50         ('\u{d8}', '\u{f6}'),
51         ('\u{f8}', '\u{2c1}'),
52         ('\u{2c6}', '\u{2d1}'),
53         ('\u{2e0}', '\u{2e4}'),
54         ('\u{2ec}', '\u{2ec}'),
55         ('\u{2ee}', '\u{2ee}'),
56         ('\u{300}', '\u{374}'),
57         ('\u{376}', '\u{377}'),
58         ('\u{37b}', '\u{37d}'),
59         ('\u{37f}', '\u{37f}'),
60         ('\u{386}', '\u{38a}'),
61         ('\u{38c}', '\u{38c}'),
62         ('\u{38e}', '\u{3a1}'),
63         ('\u{3a3}', '\u{3f5}'),
64         ('\u{3f7}', '\u{481}'),
65         ('\u{483}', '\u{487}'),
66         ('\u{48a}', '\u{52f}'),
67         ('\u{531}', '\u{556}'),
68         ('\u{559}', '\u{559}'),
69         ('\u{560}', '\u{588}'),
70         ('\u{591}', '\u{5bd}'),
71         ('\u{5bf}', '\u{5bf}'),
72         ('\u{5c1}', '\u{5c2}'),
73         ('\u{5c4}', '\u{5c5}'),
74         ('\u{5c7}', '\u{5c7}'),
75         ('\u{5d0}', '\u{5ea}'),
76         ('\u{5ef}', '\u{5f2}'),
77         ('\u{610}', '\u{61a}'),
78         ('\u{620}', '\u{669}'),
79         ('\u{66e}', '\u{6d3}'),
80         ('\u{6d5}', '\u{6dc}'),
81         ('\u{6df}', '\u{6e8}'),
82         ('\u{6ea}', '\u{6fc}'),
83         ('\u{6ff}', '\u{6ff}'),
84         ('\u{710}', '\u{74a}'),
85         ('\u{74d}', '\u{7b1}'),
86         ('\u{7c0}', '\u{7f5}'),
87         ('\u{7fa}', '\u{7fa}'),
88         ('\u{7fd}', '\u{7fd}'),
89         ('\u{800}', '\u{82d}'),
90         ('\u{840}', '\u{85b}'),
91         ('\u{860}', '\u{86a}'),
92         ('\u{870}', '\u{887}'),
93         ('\u{889}', '\u{88e}'),
94         ('\u{898}', '\u{8e1}'),
95         ('\u{8e3}', '\u{963}'),
96         ('\u{966}', '\u{96f}'),
97         ('\u{971}', '\u{983}'),
98         ('\u{985}', '\u{98c}'),
99         ('\u{98f}', '\u{990}'),
100         ('\u{993}', '\u{9a8}'),
101         ('\u{9aa}', '\u{9b0}'),
102         ('\u{9b2}', '\u{9b2}'),
103         ('\u{9b6}', '\u{9b9}'),
104         ('\u{9bc}', '\u{9c4}'),
105         ('\u{9c7}', '\u{9c8}'),
106         ('\u{9cb}', '\u{9ce}'),
107         ('\u{9d7}', '\u{9d7}'),
108         ('\u{9dc}', '\u{9dd}'),
109         ('\u{9df}', '\u{9e3}'),
110         ('\u{9e6}', '\u{9f1}'),
111         ('\u{9fc}', '\u{9fc}'),
112         ('\u{9fe}', '\u{9fe}'),
113         ('\u{a01}', '\u{a03}'),
114         ('\u{a05}', '\u{a0a}'),
115         ('\u{a0f}', '\u{a10}'),
116         ('\u{a13}', '\u{a28}'),
117         ('\u{a2a}', '\u{a30}'),
118         ('\u{a32}', '\u{a33}'),
119         ('\u{a35}', '\u{a36}'),
120         ('\u{a38}', '\u{a39}'),
121         ('\u{a3c}', '\u{a3c}'),
122         ('\u{a3e}', '\u{a42}'),
123         ('\u{a47}', '\u{a48}'),
124         ('\u{a4b}', '\u{a4d}'),
125         ('\u{a51}', '\u{a51}'),
126         ('\u{a59}', '\u{a5c}'),
127         ('\u{a5e}', '\u{a5e}'),
128         ('\u{a66}', '\u{a75}'),
129         ('\u{a81}', '\u{a83}'),
130         ('\u{a85}', '\u{a8d}'),
131         ('\u{a8f}', '\u{a91}'),
132         ('\u{a93}', '\u{aa8}'),
133         ('\u{aaa}', '\u{ab0}'),
134         ('\u{ab2}', '\u{ab3}'),
135         ('\u{ab5}', '\u{ab9}'),
136         ('\u{abc}', '\u{ac5}'),
137         ('\u{ac7}', '\u{ac9}'),
138         ('\u{acb}', '\u{acd}'),
139         ('\u{ad0}', '\u{ad0}'),
140         ('\u{ae0}', '\u{ae3}'),
141         ('\u{ae6}', '\u{aef}'),
142         ('\u{af9}', '\u{aff}'),
143         ('\u{b01}', '\u{b03}'),
144         ('\u{b05}', '\u{b0c}'),
145         ('\u{b0f}', '\u{b10}'),
146         ('\u{b13}', '\u{b28}'),
147         ('\u{b2a}', '\u{b30}'),
148         ('\u{b32}', '\u{b33}'),
149         ('\u{b35}', '\u{b39}'),
150         ('\u{b3c}', '\u{b44}'),
151         ('\u{b47}', '\u{b48}'),
152         ('\u{b4b}', '\u{b4d}'),
153         ('\u{b55}', '\u{b57}'),
154         ('\u{b5c}', '\u{b5d}'),
155         ('\u{b5f}', '\u{b63}'),
156         ('\u{b66}', '\u{b6f}'),
157         ('\u{b71}', '\u{b71}'),
158         ('\u{b82}', '\u{b83}'),
159         ('\u{b85}', '\u{b8a}'),
160         ('\u{b8e}', '\u{b90}'),
161         ('\u{b92}', '\u{b95}'),
162         ('\u{b99}', '\u{b9a}'),
163         ('\u{b9c}', '\u{b9c}'),
164         ('\u{b9e}', '\u{b9f}'),
165         ('\u{ba3}', '\u{ba4}'),
166         ('\u{ba8}', '\u{baa}'),
167         ('\u{bae}', '\u{bb9}'),
168         ('\u{bbe}', '\u{bc2}'),
169         ('\u{bc6}', '\u{bc8}'),
170         ('\u{bca}', '\u{bcd}'),
171         ('\u{bd0}', '\u{bd0}'),
172         ('\u{bd7}', '\u{bd7}'),
173         ('\u{be6}', '\u{bef}'),
174         ('\u{c00}', '\u{c0c}'),
175         ('\u{c0e}', '\u{c10}'),
176         ('\u{c12}', '\u{c28}'),
177         ('\u{c2a}', '\u{c39}'),
178         ('\u{c3c}', '\u{c44}'),
179         ('\u{c46}', '\u{c48}'),
180         ('\u{c4a}', '\u{c4d}'),
181         ('\u{c55}', '\u{c56}'),
182         ('\u{c58}', '\u{c5a}'),
183         ('\u{c5d}', '\u{c5d}'),
184         ('\u{c60}', '\u{c63}'),
185         ('\u{c66}', '\u{c6f}'),
186         ('\u{c80}', '\u{c83}'),
187         ('\u{c85}', '\u{c8c}'),
188         ('\u{c8e}', '\u{c90}'),
189         ('\u{c92}', '\u{ca8}'),
190         ('\u{caa}', '\u{cb3}'),
191         ('\u{cb5}', '\u{cb9}'),
192         ('\u{cbc}', '\u{cc4}'),
193         ('\u{cc6}', '\u{cc8}'),
194         ('\u{cca}', '\u{ccd}'),
195         ('\u{cd5}', '\u{cd6}'),
196         ('\u{cdd}', '\u{cde}'),
197         ('\u{ce0}', '\u{ce3}'),
198         ('\u{ce6}', '\u{cef}'),
199         ('\u{cf1}', '\u{cf3}'),
200         ('\u{d00}', '\u{d0c}'),
201         ('\u{d0e}', '\u{d10}'),
202         ('\u{d12}', '\u{d44}'),
203         ('\u{d46}', '\u{d48}'),
204         ('\u{d4a}', '\u{d4e}'),
205         ('\u{d54}', '\u{d57}'),
206         ('\u{d5f}', '\u{d63}'),
207         ('\u{d66}', '\u{d6f}'),
208         ('\u{d7a}', '\u{d7f}'),
209         ('\u{d81}', '\u{d83}'),
210         ('\u{d85}', '\u{d96}'),
211         ('\u{d9a}', '\u{db1}'),
212         ('\u{db3}', '\u{dbb}'),
213         ('\u{dbd}', '\u{dbd}'),
214         ('\u{dc0}', '\u{dc6}'),
215         ('\u{dca}', '\u{dca}'),
216         ('\u{dcf}', '\u{dd4}'),
217         ('\u{dd6}', '\u{dd6}'),
218         ('\u{dd8}', '\u{ddf}'),
219         ('\u{de6}', '\u{def}'),
220         ('\u{df2}', '\u{df3}'),
221         ('\u{e01}', '\u{e3a}'),
222         ('\u{e40}', '\u{e4e}'),
223         ('\u{e50}', '\u{e59}'),
224         ('\u{e81}', '\u{e82}'),
225         ('\u{e84}', '\u{e84}'),
226         ('\u{e86}', '\u{e8a}'),
227         ('\u{e8c}', '\u{ea3}'),
228         ('\u{ea5}', '\u{ea5}'),
229         ('\u{ea7}', '\u{ebd}'),
230         ('\u{ec0}', '\u{ec4}'),
231         ('\u{ec6}', '\u{ec6}'),
232         ('\u{ec8}', '\u{ece}'),
233         ('\u{ed0}', '\u{ed9}'),
234         ('\u{edc}', '\u{edf}'),
235         ('\u{f00}', '\u{f00}'),
236         ('\u{f18}', '\u{f19}'),
237         ('\u{f20}', '\u{f29}'),
238         ('\u{f35}', '\u{f35}'),
239         ('\u{f37}', '\u{f37}'),
240         ('\u{f39}', '\u{f39}'),
241         ('\u{f3e}', '\u{f47}'),
242         ('\u{f49}', '\u{f6c}'),
243         ('\u{f71}', '\u{f84}'),
244         ('\u{f86}', '\u{f97}'),
245         ('\u{f99}', '\u{fbc}'),
246         ('\u{fc6}', '\u{fc6}'),
247         ('\u{1000}', '\u{1049}'),
248         ('\u{1050}', '\u{109d}'),
249         ('\u{10a0}', '\u{10c5}'),
250         ('\u{10c7}', '\u{10c7}'),
251         ('\u{10cd}', '\u{10cd}'),
252         ('\u{10d0}', '\u{10fa}'),
253         ('\u{10fc}', '\u{1248}'),
254         ('\u{124a}', '\u{124d}'),
255         ('\u{1250}', '\u{1256}'),
256         ('\u{1258}', '\u{1258}'),
257         ('\u{125a}', '\u{125d}'),
258         ('\u{1260}', '\u{1288}'),
259         ('\u{128a}', '\u{128d}'),
260         ('\u{1290}', '\u{12b0}'),
261         ('\u{12b2}', '\u{12b5}'),
262         ('\u{12b8}', '\u{12be}'),
263         ('\u{12c0}', '\u{12c0}'),
264         ('\u{12c2}', '\u{12c5}'),
265         ('\u{12c8}', '\u{12d6}'),
266         ('\u{12d8}', '\u{1310}'),
267         ('\u{1312}', '\u{1315}'),
268         ('\u{1318}', '\u{135a}'),
269         ('\u{135d}', '\u{135f}'),
270         ('\u{1369}', '\u{1371}'),
271         ('\u{1380}', '\u{138f}'),
272         ('\u{13a0}', '\u{13f5}'),
273         ('\u{13f8}', '\u{13fd}'),
274         ('\u{1401}', '\u{166c}'),
275         ('\u{166f}', '\u{167f}'),
276         ('\u{1681}', '\u{169a}'),
277         ('\u{16a0}', '\u{16ea}'),
278         ('\u{16ee}', '\u{16f8}'),
279         ('\u{1700}', '\u{1715}'),
280         ('\u{171f}', '\u{1734}'),
281         ('\u{1740}', '\u{1753}'),
282         ('\u{1760}', '\u{176c}'),
283         ('\u{176e}', '\u{1770}'),
284         ('\u{1772}', '\u{1773}'),
285         ('\u{1780}', '\u{17d3}'),
286         ('\u{17d7}', '\u{17d7}'),
287         ('\u{17dc}', '\u{17dd}'),
288         ('\u{17e0}', '\u{17e9}'),
289         ('\u{180b}', '\u{180d}'),
290         ('\u{180f}', '\u{1819}'),
291         ('\u{1820}', '\u{1878}'),
292         ('\u{1880}', '\u{18aa}'),
293         ('\u{18b0}', '\u{18f5}'),
294         ('\u{1900}', '\u{191e}'),
295         ('\u{1920}', '\u{192b}'),
296         ('\u{1930}', '\u{193b}'),
297         ('\u{1946}', '\u{196d}'),
298         ('\u{1970}', '\u{1974}'),
299         ('\u{1980}', '\u{19ab}'),
300         ('\u{19b0}', '\u{19c9}'),
301         ('\u{19d0}', '\u{19da}'),
302         ('\u{1a00}', '\u{1a1b}'),
303         ('\u{1a20}', '\u{1a5e}'),
304         ('\u{1a60}', '\u{1a7c}'),
305         ('\u{1a7f}', '\u{1a89}'),
306         ('\u{1a90}', '\u{1a99}'),
307         ('\u{1aa7}', '\u{1aa7}'),
308         ('\u{1ab0}', '\u{1abd}'),
309         ('\u{1abf}', '\u{1ace}'),
310         ('\u{1b00}', '\u{1b4c}'),
311         ('\u{1b50}', '\u{1b59}'),
312         ('\u{1b6b}', '\u{1b73}'),
313         ('\u{1b80}', '\u{1bf3}'),
314         ('\u{1c00}', '\u{1c37}'),
315         ('\u{1c40}', '\u{1c49}'),
316         ('\u{1c4d}', '\u{1c7d}'),
317         ('\u{1c80}', '\u{1c88}'),
318         ('\u{1c90}', '\u{1cba}'),
319         ('\u{1cbd}', '\u{1cbf}'),
320         ('\u{1cd0}', '\u{1cd2}'),
321         ('\u{1cd4}', '\u{1cfa}'),
322         ('\u{1d00}', '\u{1f15}'),
323         ('\u{1f18}', '\u{1f1d}'),
324         ('\u{1f20}', '\u{1f45}'),
325         ('\u{1f48}', '\u{1f4d}'),
326         ('\u{1f50}', '\u{1f57}'),
327         ('\u{1f59}', '\u{1f59}'),
328         ('\u{1f5b}', '\u{1f5b}'),
329         ('\u{1f5d}', '\u{1f5d}'),
330         ('\u{1f5f}', '\u{1f7d}'),
331         ('\u{1f80}', '\u{1fb4}'),
332         ('\u{1fb6}', '\u{1fbc}'),
333         ('\u{1fbe}', '\u{1fbe}'),
334         ('\u{1fc2}', '\u{1fc4}'),
335         ('\u{1fc6}', '\u{1fcc}'),
336         ('\u{1fd0}', '\u{1fd3}'),
337         ('\u{1fd6}', '\u{1fdb}'),
338         ('\u{1fe0}', '\u{1fec}'),
339         ('\u{1ff2}', '\u{1ff4}'),
340         ('\u{1ff6}', '\u{1ffc}'),
341         ('\u{203f}', '\u{2040}'),
342         ('\u{2054}', '\u{2054}'),
343         ('\u{2071}', '\u{2071}'),
344         ('\u{207f}', '\u{207f}'),
345         ('\u{2090}', '\u{209c}'),
346         ('\u{20d0}', '\u{20dc}'),
347         ('\u{20e1}', '\u{20e1}'),
348         ('\u{20e5}', '\u{20f0}'),
349         ('\u{2102}', '\u{2102}'),
350         ('\u{2107}', '\u{2107}'),
351         ('\u{210a}', '\u{2113}'),
352         ('\u{2115}', '\u{2115}'),
353         ('\u{2118}', '\u{211d}'),
354         ('\u{2124}', '\u{2124}'),
355         ('\u{2126}', '\u{2126}'),
356         ('\u{2128}', '\u{2128}'),
357         ('\u{212a}', '\u{2139}'),
358         ('\u{213c}', '\u{213f}'),
359         ('\u{2145}', '\u{2149}'),
360         ('\u{214e}', '\u{214e}'),
361         ('\u{2160}', '\u{2188}'),
362         ('\u{2c00}', '\u{2ce4}'),
363         ('\u{2ceb}', '\u{2cf3}'),
364         ('\u{2d00}', '\u{2d25}'),
365         ('\u{2d27}', '\u{2d27}'),
366         ('\u{2d2d}', '\u{2d2d}'),
367         ('\u{2d30}', '\u{2d67}'),
368         ('\u{2d6f}', '\u{2d6f}'),
369         ('\u{2d7f}', '\u{2d96}'),
370         ('\u{2da0}', '\u{2da6}'),
371         ('\u{2da8}', '\u{2dae}'),
372         ('\u{2db0}', '\u{2db6}'),
373         ('\u{2db8}', '\u{2dbe}'),
374         ('\u{2dc0}', '\u{2dc6}'),
375         ('\u{2dc8}', '\u{2dce}'),
376         ('\u{2dd0}', '\u{2dd6}'),
377         ('\u{2dd8}', '\u{2dde}'),
378         ('\u{2de0}', '\u{2dff}'),
379         ('\u{3005}', '\u{3007}'),
380         ('\u{3021}', '\u{302f}'),
381         ('\u{3031}', '\u{3035}'),
382         ('\u{3038}', '\u{303c}'),
383         ('\u{3041}', '\u{3096}'),
384         ('\u{3099}', '\u{309a}'),
385         ('\u{309d}', '\u{309f}'),
386         ('\u{30a1}', '\u{30fa}'),
387         ('\u{30fc}', '\u{30ff}'),
388         ('\u{3105}', '\u{312f}'),
389         ('\u{3131}', '\u{318e}'),
390         ('\u{31a0}', '\u{31bf}'),
391         ('\u{31f0}', '\u{31ff}'),
392         ('\u{3400}', '\u{4dbf}'),
393         ('\u{4e00}', '\u{a48c}'),
394         ('\u{a4d0}', '\u{a4fd}'),
395         ('\u{a500}', '\u{a60c}'),
396         ('\u{a610}', '\u{a62b}'),
397         ('\u{a640}', '\u{a66f}'),
398         ('\u{a674}', '\u{a67d}'),
399         ('\u{a67f}', '\u{a6f1}'),
400         ('\u{a717}', '\u{a71f}'),
401         ('\u{a722}', '\u{a788}'),
402         ('\u{a78b}', '\u{a7ca}'),
403         ('\u{a7d0}', '\u{a7d1}'),
404         ('\u{a7d3}', '\u{a7d3}'),
405         ('\u{a7d5}', '\u{a7d9}'),
406         ('\u{a7f2}', '\u{a827}'),
407         ('\u{a82c}', '\u{a82c}'),
408         ('\u{a840}', '\u{a873}'),
409         ('\u{a880}', '\u{a8c5}'),
410         ('\u{a8d0}', '\u{a8d9}'),
411         ('\u{a8e0}', '\u{a8f7}'),
412         ('\u{a8fb}', '\u{a8fb}'),
413         ('\u{a8fd}', '\u{a92d}'),
414         ('\u{a930}', '\u{a953}'),
415         ('\u{a960}', '\u{a97c}'),
416         ('\u{a980}', '\u{a9c0}'),
417         ('\u{a9cf}', '\u{a9d9}'),
418         ('\u{a9e0}', '\u{a9fe}'),
419         ('\u{aa00}', '\u{aa36}'),
420         ('\u{aa40}', '\u{aa4d}'),
421         ('\u{aa50}', '\u{aa59}'),
422         ('\u{aa60}', '\u{aa76}'),
423         ('\u{aa7a}', '\u{aac2}'),
424         ('\u{aadb}', '\u{aadd}'),
425         ('\u{aae0}', '\u{aaef}'),
426         ('\u{aaf2}', '\u{aaf6}'),
427         ('\u{ab01}', '\u{ab06}'),
428         ('\u{ab09}', '\u{ab0e}'),
429         ('\u{ab11}', '\u{ab16}'),
430         ('\u{ab20}', '\u{ab26}'),
431         ('\u{ab28}', '\u{ab2e}'),
432         ('\u{ab30}', '\u{ab5a}'),
433         ('\u{ab5c}', '\u{ab69}'),
434         ('\u{ab70}', '\u{abea}'),
435         ('\u{abec}', '\u{abed}'),
436         ('\u{abf0}', '\u{abf9}'),
437         ('\u{ac00}', '\u{d7a3}'),
438         ('\u{d7b0}', '\u{d7c6}'),
439         ('\u{d7cb}', '\u{d7fb}'),
440         ('\u{f900}', '\u{fa6d}'),
441         ('\u{fa70}', '\u{fad9}'),
442         ('\u{fb00}', '\u{fb06}'),
443         ('\u{fb13}', '\u{fb17}'),
444         ('\u{fb1d}', '\u{fb28}'),
445         ('\u{fb2a}', '\u{fb36}'),
446         ('\u{fb38}', '\u{fb3c}'),
447         ('\u{fb3e}', '\u{fb3e}'),
448         ('\u{fb40}', '\u{fb41}'),
449         ('\u{fb43}', '\u{fb44}'),
450         ('\u{fb46}', '\u{fbb1}'),
451         ('\u{fbd3}', '\u{fc5d}'),
452         ('\u{fc64}', '\u{fd3d}'),
453         ('\u{fd50}', '\u{fd8f}'),
454         ('\u{fd92}', '\u{fdc7}'),
455         ('\u{fdf0}', '\u{fdf9}'),
456         ('\u{fe00}', '\u{fe0f}'),
457         ('\u{fe20}', '\u{fe2f}'),
458         ('\u{fe33}', '\u{fe34}'),
459         ('\u{fe4d}', '\u{fe4f}'),
460         ('\u{fe71}', '\u{fe71}'),
461         ('\u{fe73}', '\u{fe73}'),
462         ('\u{fe77}', '\u{fe77}'),
463         ('\u{fe79}', '\u{fe79}'),
464         ('\u{fe7b}', '\u{fe7b}'),
465         ('\u{fe7d}', '\u{fe7d}'),
466         ('\u{fe7f}', '\u{fefc}'),
467         ('\u{ff10}', '\u{ff19}'),
468         ('\u{ff21}', '\u{ff3a}'),
469         ('\u{ff3f}', '\u{ff3f}'),
470         ('\u{ff41}', '\u{ff5a}'),
471         ('\u{ff66}', '\u{ffbe}'),
472         ('\u{ffc2}', '\u{ffc7}'),
473         ('\u{ffca}', '\u{ffcf}'),
474         ('\u{ffd2}', '\u{ffd7}'),
475         ('\u{ffda}', '\u{ffdc}'),
476         ('\u{10000}', '\u{1000b}'),
477         ('\u{1000d}', '\u{10026}'),
478         ('\u{10028}', '\u{1003a}'),
479         ('\u{1003c}', '\u{1003d}'),
480         ('\u{1003f}', '\u{1004d}'),
481         ('\u{10050}', '\u{1005d}'),
482         ('\u{10080}', '\u{100fa}'),
483         ('\u{10140}', '\u{10174}'),
484         ('\u{101fd}', '\u{101fd}'),
485         ('\u{10280}', '\u{1029c}'),
486         ('\u{102a0}', '\u{102d0}'),
487         ('\u{102e0}', '\u{102e0}'),
488         ('\u{10300}', '\u{1031f}'),
489         ('\u{1032d}', '\u{1034a}'),
490         ('\u{10350}', '\u{1037a}'),
491         ('\u{10380}', '\u{1039d}'),
492         ('\u{103a0}', '\u{103c3}'),
493         ('\u{103c8}', '\u{103cf}'),
494         ('\u{103d1}', '\u{103d5}'),
495         ('\u{10400}', '\u{1049d}'),
496         ('\u{104a0}', '\u{104a9}'),
497         ('\u{104b0}', '\u{104d3}'),
498         ('\u{104d8}', '\u{104fb}'),
499         ('\u{10500}', '\u{10527}'),
500         ('\u{10530}', '\u{10563}'),
501         ('\u{10570}', '\u{1057a}'),
502         ('\u{1057c}', '\u{1058a}'),
503         ('\u{1058c}', '\u{10592}'),
504         ('\u{10594}', '\u{10595}'),
505         ('\u{10597}', '\u{105a1}'),
506         ('\u{105a3}', '\u{105b1}'),
507         ('\u{105b3}', '\u{105b9}'),
508         ('\u{105bb}', '\u{105bc}'),
509         ('\u{10600}', '\u{10736}'),
510         ('\u{10740}', '\u{10755}'),
511         ('\u{10760}', '\u{10767}'),
512         ('\u{10780}', '\u{10785}'),
513         ('\u{10787}', '\u{107b0}'),
514         ('\u{107b2}', '\u{107ba}'),
515         ('\u{10800}', '\u{10805}'),
516         ('\u{10808}', '\u{10808}'),
517         ('\u{1080a}', '\u{10835}'),
518         ('\u{10837}', '\u{10838}'),
519         ('\u{1083c}', '\u{1083c}'),
520         ('\u{1083f}', '\u{10855}'),
521         ('\u{10860}', '\u{10876}'),
522         ('\u{10880}', '\u{1089e}'),
523         ('\u{108e0}', '\u{108f2}'),
524         ('\u{108f4}', '\u{108f5}'),
525         ('\u{10900}', '\u{10915}'),
526         ('\u{10920}', '\u{10939}'),
527         ('\u{10980}', '\u{109b7}'),
528         ('\u{109be}', '\u{109bf}'),
529         ('\u{10a00}', '\u{10a03}'),
530         ('\u{10a05}', '\u{10a06}'),
531         ('\u{10a0c}', '\u{10a13}'),
532         ('\u{10a15}', '\u{10a17}'),
533         ('\u{10a19}', '\u{10a35}'),
534         ('\u{10a38}', '\u{10a3a}'),
535         ('\u{10a3f}', '\u{10a3f}'),
536         ('\u{10a60}', '\u{10a7c}'),
537         ('\u{10a80}', '\u{10a9c}'),
538         ('\u{10ac0}', '\u{10ac7}'),
539         ('\u{10ac9}', '\u{10ae6}'),
540         ('\u{10b00}', '\u{10b35}'),
541         ('\u{10b40}', '\u{10b55}'),
542         ('\u{10b60}', '\u{10b72}'),
543         ('\u{10b80}', '\u{10b91}'),
544         ('\u{10c00}', '\u{10c48}'),
545         ('\u{10c80}', '\u{10cb2}'),
546         ('\u{10cc0}', '\u{10cf2}'),
547         ('\u{10d00}', '\u{10d27}'),
548         ('\u{10d30}', '\u{10d39}'),
549         ('\u{10e80}', '\u{10ea9}'),
550         ('\u{10eab}', '\u{10eac}'),
551         ('\u{10eb0}', '\u{10eb1}'),
552         ('\u{10efd}', '\u{10f1c}'),
553         ('\u{10f27}', '\u{10f27}'),
554         ('\u{10f30}', '\u{10f50}'),
555         ('\u{10f70}', '\u{10f85}'),
556         ('\u{10fb0}', '\u{10fc4}'),
557         ('\u{10fe0}', '\u{10ff6}'),
558         ('\u{11000}', '\u{11046}'),
559         ('\u{11066}', '\u{11075}'),
560         ('\u{1107f}', '\u{110ba}'),
561         ('\u{110c2}', '\u{110c2}'),
562         ('\u{110d0}', '\u{110e8}'),
563         ('\u{110f0}', '\u{110f9}'),
564         ('\u{11100}', '\u{11134}'),
565         ('\u{11136}', '\u{1113f}'),
566         ('\u{11144}', '\u{11147}'),
567         ('\u{11150}', '\u{11173}'),
568         ('\u{11176}', '\u{11176}'),
569         ('\u{11180}', '\u{111c4}'),
570         ('\u{111c9}', '\u{111cc}'),
571         ('\u{111ce}', '\u{111da}'),
572         ('\u{111dc}', '\u{111dc}'),
573         ('\u{11200}', '\u{11211}'),
574         ('\u{11213}', '\u{11237}'),
575         ('\u{1123e}', '\u{11241}'),
576         ('\u{11280}', '\u{11286}'),
577         ('\u{11288}', '\u{11288}'),
578         ('\u{1128a}', '\u{1128d}'),
579         ('\u{1128f}', '\u{1129d}'),
580         ('\u{1129f}', '\u{112a8}'),
581         ('\u{112b0}', '\u{112ea}'),
582         ('\u{112f0}', '\u{112f9}'),
583         ('\u{11300}', '\u{11303}'),
584         ('\u{11305}', '\u{1130c}'),
585         ('\u{1130f}', '\u{11310}'),
586         ('\u{11313}', '\u{11328}'),
587         ('\u{1132a}', '\u{11330}'),
588         ('\u{11332}', '\u{11333}'),
589         ('\u{11335}', '\u{11339}'),
590         ('\u{1133b}', '\u{11344}'),
591         ('\u{11347}', '\u{11348}'),
592         ('\u{1134b}', '\u{1134d}'),
593         ('\u{11350}', '\u{11350}'),
594         ('\u{11357}', '\u{11357}'),
595         ('\u{1135d}', '\u{11363}'),
596         ('\u{11366}', '\u{1136c}'),
597         ('\u{11370}', '\u{11374}'),
598         ('\u{11400}', '\u{1144a}'),
599         ('\u{11450}', '\u{11459}'),
600         ('\u{1145e}', '\u{11461}'),
601         ('\u{11480}', '\u{114c5}'),
602         ('\u{114c7}', '\u{114c7}'),
603         ('\u{114d0}', '\u{114d9}'),
604         ('\u{11580}', '\u{115b5}'),
605         ('\u{115b8}', '\u{115c0}'),
606         ('\u{115d8}', '\u{115dd}'),
607         ('\u{11600}', '\u{11640}'),
608         ('\u{11644}', '\u{11644}'),
609         ('\u{11650}', '\u{11659}'),
610         ('\u{11680}', '\u{116b8}'),
611         ('\u{116c0}', '\u{116c9}'),
612         ('\u{11700}', '\u{1171a}'),
613         ('\u{1171d}', '\u{1172b}'),
614         ('\u{11730}', '\u{11739}'),
615         ('\u{11740}', '\u{11746}'),
616         ('\u{11800}', '\u{1183a}'),
617         ('\u{118a0}', '\u{118e9}'),
618         ('\u{118ff}', '\u{11906}'),
619         ('\u{11909}', '\u{11909}'),
620         ('\u{1190c}', '\u{11913}'),
621         ('\u{11915}', '\u{11916}'),
622         ('\u{11918}', '\u{11935}'),
623         ('\u{11937}', '\u{11938}'),
624         ('\u{1193b}', '\u{11943}'),
625         ('\u{11950}', '\u{11959}'),
626         ('\u{119a0}', '\u{119a7}'),
627         ('\u{119aa}', '\u{119d7}'),
628         ('\u{119da}', '\u{119e1}'),
629         ('\u{119e3}', '\u{119e4}'),
630         ('\u{11a00}', '\u{11a3e}'),
631         ('\u{11a47}', '\u{11a47}'),
632         ('\u{11a50}', '\u{11a99}'),
633         ('\u{11a9d}', '\u{11a9d}'),
634         ('\u{11ab0}', '\u{11af8}'),
635         ('\u{11c00}', '\u{11c08}'),
636         ('\u{11c0a}', '\u{11c36}'),
637         ('\u{11c38}', '\u{11c40}'),
638         ('\u{11c50}', '\u{11c59}'),
639         ('\u{11c72}', '\u{11c8f}'),
640         ('\u{11c92}', '\u{11ca7}'),
641         ('\u{11ca9}', '\u{11cb6}'),
642         ('\u{11d00}', '\u{11d06}'),
643         ('\u{11d08}', '\u{11d09}'),
644         ('\u{11d0b}', '\u{11d36}'),
645         ('\u{11d3a}', '\u{11d3a}'),
646         ('\u{11d3c}', '\u{11d3d}'),
647         ('\u{11d3f}', '\u{11d47}'),
648         ('\u{11d50}', '\u{11d59}'),
649         ('\u{11d60}', '\u{11d65}'),
650         ('\u{11d67}', '\u{11d68}'),
651         ('\u{11d6a}', '\u{11d8e}'),
652         ('\u{11d90}', '\u{11d91}'),
653         ('\u{11d93}', '\u{11d98}'),
654         ('\u{11da0}', '\u{11da9}'),
655         ('\u{11ee0}', '\u{11ef6}'),
656         ('\u{11f00}', '\u{11f10}'),
657         ('\u{11f12}', '\u{11f3a}'),
658         ('\u{11f3e}', '\u{11f42}'),
659         ('\u{11f50}', '\u{11f59}'),
660         ('\u{11fb0}', '\u{11fb0}'),
661         ('\u{12000}', '\u{12399}'),
662         ('\u{12400}', '\u{1246e}'),
663         ('\u{12480}', '\u{12543}'),
664         ('\u{12f90}', '\u{12ff0}'),
665         ('\u{13000}', '\u{1342f}'),
666         ('\u{13440}', '\u{13455}'),
667         ('\u{14400}', '\u{14646}'),
668         ('\u{16800}', '\u{16a38}'),
669         ('\u{16a40}', '\u{16a5e}'),
670         ('\u{16a60}', '\u{16a69}'),
671         ('\u{16a70}', '\u{16abe}'),
672         ('\u{16ac0}', '\u{16ac9}'),
673         ('\u{16ad0}', '\u{16aed}'),
674         ('\u{16af0}', '\u{16af4}'),
675         ('\u{16b00}', '\u{16b36}'),
676         ('\u{16b40}', '\u{16b43}'),
677         ('\u{16b50}', '\u{16b59}'),
678         ('\u{16b63}', '\u{16b77}'),
679         ('\u{16b7d}', '\u{16b8f}'),
680         ('\u{16e40}', '\u{16e7f}'),
681         ('\u{16f00}', '\u{16f4a}'),
682         ('\u{16f4f}', '\u{16f87}'),
683         ('\u{16f8f}', '\u{16f9f}'),
684         ('\u{16fe0}', '\u{16fe1}'),
685         ('\u{16fe3}', '\u{16fe4}'),
686         ('\u{16ff0}', '\u{16ff1}'),
687         ('\u{17000}', '\u{187f7}'),
688         ('\u{18800}', '\u{18cd5}'),
689         ('\u{18d00}', '\u{18d08}'),
690         ('\u{1aff0}', '\u{1aff3}'),
691         ('\u{1aff5}', '\u{1affb}'),
692         ('\u{1affd}', '\u{1affe}'),
693         ('\u{1b000}', '\u{1b122}'),
694         ('\u{1b132}', '\u{1b132}'),
695         ('\u{1b150}', '\u{1b152}'),
696         ('\u{1b155}', '\u{1b155}'),
697         ('\u{1b164}', '\u{1b167}'),
698         ('\u{1b170}', '\u{1b2fb}'),
699         ('\u{1bc00}', '\u{1bc6a}'),
700         ('\u{1bc70}', '\u{1bc7c}'),
701         ('\u{1bc80}', '\u{1bc88}'),
702         ('\u{1bc90}', '\u{1bc99}'),
703         ('\u{1bc9d}', '\u{1bc9e}'),
704         ('\u{1cf00}', '\u{1cf2d}'),
705         ('\u{1cf30}', '\u{1cf46}'),
706         ('\u{1d165}', '\u{1d169}'),
707         ('\u{1d16d}', '\u{1d172}'),
708         ('\u{1d17b}', '\u{1d182}'),
709         ('\u{1d185}', '\u{1d18b}'),
710         ('\u{1d1aa}', '\u{1d1ad}'),
711         ('\u{1d242}', '\u{1d244}'),
712         ('\u{1d400}', '\u{1d454}'),
713         ('\u{1d456}', '\u{1d49c}'),
714         ('\u{1d49e}', '\u{1d49f}'),
715         ('\u{1d4a2}', '\u{1d4a2}'),
716         ('\u{1d4a5}', '\u{1d4a6}'),
717         ('\u{1d4a9}', '\u{1d4ac}'),
718         ('\u{1d4ae}', '\u{1d4b9}'),
719         ('\u{1d4bb}', '\u{1d4bb}'),
720         ('\u{1d4bd}', '\u{1d4c3}'),
721         ('\u{1d4c5}', '\u{1d505}'),
722         ('\u{1d507}', '\u{1d50a}'),
723         ('\u{1d50d}', '\u{1d514}'),
724         ('\u{1d516}', '\u{1d51c}'),
725         ('\u{1d51e}', '\u{1d539}'),
726         ('\u{1d53b}', '\u{1d53e}'),
727         ('\u{1d540}', '\u{1d544}'),
728         ('\u{1d546}', '\u{1d546}'),
729         ('\u{1d54a}', '\u{1d550}'),
730         ('\u{1d552}', '\u{1d6a5}'),
731         ('\u{1d6a8}', '\u{1d6c0}'),
732         ('\u{1d6c2}', '\u{1d6da}'),
733         ('\u{1d6dc}', '\u{1d6fa}'),
734         ('\u{1d6fc}', '\u{1d714}'),
735         ('\u{1d716}', '\u{1d734}'),
736         ('\u{1d736}', '\u{1d74e}'),
737         ('\u{1d750}', '\u{1d76e}'),
738         ('\u{1d770}', '\u{1d788}'),
739         ('\u{1d78a}', '\u{1d7a8}'),
740         ('\u{1d7aa}', '\u{1d7c2}'),
741         ('\u{1d7c4}', '\u{1d7cb}'),
742         ('\u{1d7ce}', '\u{1d7ff}'),
743         ('\u{1da00}', '\u{1da36}'),
744         ('\u{1da3b}', '\u{1da6c}'),
745         ('\u{1da75}', '\u{1da75}'),
746         ('\u{1da84}', '\u{1da84}'),
747         ('\u{1da9b}', '\u{1da9f}'),
748         ('\u{1daa1}', '\u{1daaf}'),
749         ('\u{1df00}', '\u{1df1e}'),
750         ('\u{1df25}', '\u{1df2a}'),
751         ('\u{1e000}', '\u{1e006}'),
752         ('\u{1e008}', '\u{1e018}'),
753         ('\u{1e01b}', '\u{1e021}'),
754         ('\u{1e023}', '\u{1e024}'),
755         ('\u{1e026}', '\u{1e02a}'),
756         ('\u{1e030}', '\u{1e06d}'),
757         ('\u{1e08f}', '\u{1e08f}'),
758         ('\u{1e100}', '\u{1e12c}'),
759         ('\u{1e130}', '\u{1e13d}'),
760         ('\u{1e140}', '\u{1e149}'),
761         ('\u{1e14e}', '\u{1e14e}'),
762         ('\u{1e290}', '\u{1e2ae}'),
763         ('\u{1e2c0}', '\u{1e2f9}'),
764         ('\u{1e4d0}', '\u{1e4f9}'),
765         ('\u{1e7e0}', '\u{1e7e6}'),
766         ('\u{1e7e8}', '\u{1e7eb}'),
767         ('\u{1e7ed}', '\u{1e7ee}'),
768         ('\u{1e7f0}', '\u{1e7fe}'),
769         ('\u{1e800}', '\u{1e8c4}'),
770         ('\u{1e8d0}', '\u{1e8d6}'),
771         ('\u{1e900}', '\u{1e94b}'),
772         ('\u{1e950}', '\u{1e959}'),
773         ('\u{1ee00}', '\u{1ee03}'),
774         ('\u{1ee05}', '\u{1ee1f}'),
775         ('\u{1ee21}', '\u{1ee22}'),
776         ('\u{1ee24}', '\u{1ee24}'),
777         ('\u{1ee27}', '\u{1ee27}'),
778         ('\u{1ee29}', '\u{1ee32}'),
779         ('\u{1ee34}', '\u{1ee37}'),
780         ('\u{1ee39}', '\u{1ee39}'),
781         ('\u{1ee3b}', '\u{1ee3b}'),
782         ('\u{1ee42}', '\u{1ee42}'),
783         ('\u{1ee47}', '\u{1ee47}'),
784         ('\u{1ee49}', '\u{1ee49}'),
785         ('\u{1ee4b}', '\u{1ee4b}'),
786         ('\u{1ee4d}', '\u{1ee4f}'),
787         ('\u{1ee51}', '\u{1ee52}'),
788         ('\u{1ee54}', '\u{1ee54}'),
789         ('\u{1ee57}', '\u{1ee57}'),
790         ('\u{1ee59}', '\u{1ee59}'),
791         ('\u{1ee5b}', '\u{1ee5b}'),
792         ('\u{1ee5d}', '\u{1ee5d}'),
793         ('\u{1ee5f}', '\u{1ee5f}'),
794         ('\u{1ee61}', '\u{1ee62}'),
795         ('\u{1ee64}', '\u{1ee64}'),
796         ('\u{1ee67}', '\u{1ee6a}'),
797         ('\u{1ee6c}', '\u{1ee72}'),
798         ('\u{1ee74}', '\u{1ee77}'),
799         ('\u{1ee79}', '\u{1ee7c}'),
800         ('\u{1ee7e}', '\u{1ee7e}'),
801         ('\u{1ee80}', '\u{1ee89}'),
802         ('\u{1ee8b}', '\u{1ee9b}'),
803         ('\u{1eea1}', '\u{1eea3}'),
804         ('\u{1eea5}', '\u{1eea9}'),
805         ('\u{1eeab}', '\u{1eebb}'),
806         ('\u{1fbf0}', '\u{1fbf9}'),
807         ('\u{20000}', '\u{2a6df}'),
808         ('\u{2a700}', '\u{2b739}'),
809         ('\u{2b740}', '\u{2b81d}'),
810         ('\u{2b820}', '\u{2cea1}'),
811         ('\u{2ceb0}', '\u{2ebe0}'),
812         ('\u{2f800}', '\u{2fa1d}'),
813         ('\u{30000}', '\u{3134a}'),
814         ('\u{31350}', '\u{323af}'),
815         ('\u{e0100}', '\u{e01ef}'),
816     ];
817 
XID_Continue(c: char) -> bool818     pub fn XID_Continue(c: char) -> bool {
819         super::bsearch_range_table(c, XID_Continue_table)
820     }
821 
822     static XID_Start_table: &[(char, char)] = &[
823         ('\u{41}', '\u{5a}'),
824         ('\u{61}', '\u{7a}'),
825         ('\u{aa}', '\u{aa}'),
826         ('\u{b5}', '\u{b5}'),
827         ('\u{ba}', '\u{ba}'),
828         ('\u{c0}', '\u{d6}'),
829         ('\u{d8}', '\u{f6}'),
830         ('\u{f8}', '\u{2c1}'),
831         ('\u{2c6}', '\u{2d1}'),
832         ('\u{2e0}', '\u{2e4}'),
833         ('\u{2ec}', '\u{2ec}'),
834         ('\u{2ee}', '\u{2ee}'),
835         ('\u{370}', '\u{374}'),
836         ('\u{376}', '\u{377}'),
837         ('\u{37b}', '\u{37d}'),
838         ('\u{37f}', '\u{37f}'),
839         ('\u{386}', '\u{386}'),
840         ('\u{388}', '\u{38a}'),
841         ('\u{38c}', '\u{38c}'),
842         ('\u{38e}', '\u{3a1}'),
843         ('\u{3a3}', '\u{3f5}'),
844         ('\u{3f7}', '\u{481}'),
845         ('\u{48a}', '\u{52f}'),
846         ('\u{531}', '\u{556}'),
847         ('\u{559}', '\u{559}'),
848         ('\u{560}', '\u{588}'),
849         ('\u{5d0}', '\u{5ea}'),
850         ('\u{5ef}', '\u{5f2}'),
851         ('\u{620}', '\u{64a}'),
852         ('\u{66e}', '\u{66f}'),
853         ('\u{671}', '\u{6d3}'),
854         ('\u{6d5}', '\u{6d5}'),
855         ('\u{6e5}', '\u{6e6}'),
856         ('\u{6ee}', '\u{6ef}'),
857         ('\u{6fa}', '\u{6fc}'),
858         ('\u{6ff}', '\u{6ff}'),
859         ('\u{710}', '\u{710}'),
860         ('\u{712}', '\u{72f}'),
861         ('\u{74d}', '\u{7a5}'),
862         ('\u{7b1}', '\u{7b1}'),
863         ('\u{7ca}', '\u{7ea}'),
864         ('\u{7f4}', '\u{7f5}'),
865         ('\u{7fa}', '\u{7fa}'),
866         ('\u{800}', '\u{815}'),
867         ('\u{81a}', '\u{81a}'),
868         ('\u{824}', '\u{824}'),
869         ('\u{828}', '\u{828}'),
870         ('\u{840}', '\u{858}'),
871         ('\u{860}', '\u{86a}'),
872         ('\u{870}', '\u{887}'),
873         ('\u{889}', '\u{88e}'),
874         ('\u{8a0}', '\u{8c9}'),
875         ('\u{904}', '\u{939}'),
876         ('\u{93d}', '\u{93d}'),
877         ('\u{950}', '\u{950}'),
878         ('\u{958}', '\u{961}'),
879         ('\u{971}', '\u{980}'),
880         ('\u{985}', '\u{98c}'),
881         ('\u{98f}', '\u{990}'),
882         ('\u{993}', '\u{9a8}'),
883         ('\u{9aa}', '\u{9b0}'),
884         ('\u{9b2}', '\u{9b2}'),
885         ('\u{9b6}', '\u{9b9}'),
886         ('\u{9bd}', '\u{9bd}'),
887         ('\u{9ce}', '\u{9ce}'),
888         ('\u{9dc}', '\u{9dd}'),
889         ('\u{9df}', '\u{9e1}'),
890         ('\u{9f0}', '\u{9f1}'),
891         ('\u{9fc}', '\u{9fc}'),
892         ('\u{a05}', '\u{a0a}'),
893         ('\u{a0f}', '\u{a10}'),
894         ('\u{a13}', '\u{a28}'),
895         ('\u{a2a}', '\u{a30}'),
896         ('\u{a32}', '\u{a33}'),
897         ('\u{a35}', '\u{a36}'),
898         ('\u{a38}', '\u{a39}'),
899         ('\u{a59}', '\u{a5c}'),
900         ('\u{a5e}', '\u{a5e}'),
901         ('\u{a72}', '\u{a74}'),
902         ('\u{a85}', '\u{a8d}'),
903         ('\u{a8f}', '\u{a91}'),
904         ('\u{a93}', '\u{aa8}'),
905         ('\u{aaa}', '\u{ab0}'),
906         ('\u{ab2}', '\u{ab3}'),
907         ('\u{ab5}', '\u{ab9}'),
908         ('\u{abd}', '\u{abd}'),
909         ('\u{ad0}', '\u{ad0}'),
910         ('\u{ae0}', '\u{ae1}'),
911         ('\u{af9}', '\u{af9}'),
912         ('\u{b05}', '\u{b0c}'),
913         ('\u{b0f}', '\u{b10}'),
914         ('\u{b13}', '\u{b28}'),
915         ('\u{b2a}', '\u{b30}'),
916         ('\u{b32}', '\u{b33}'),
917         ('\u{b35}', '\u{b39}'),
918         ('\u{b3d}', '\u{b3d}'),
919         ('\u{b5c}', '\u{b5d}'),
920         ('\u{b5f}', '\u{b61}'),
921         ('\u{b71}', '\u{b71}'),
922         ('\u{b83}', '\u{b83}'),
923         ('\u{b85}', '\u{b8a}'),
924         ('\u{b8e}', '\u{b90}'),
925         ('\u{b92}', '\u{b95}'),
926         ('\u{b99}', '\u{b9a}'),
927         ('\u{b9c}', '\u{b9c}'),
928         ('\u{b9e}', '\u{b9f}'),
929         ('\u{ba3}', '\u{ba4}'),
930         ('\u{ba8}', '\u{baa}'),
931         ('\u{bae}', '\u{bb9}'),
932         ('\u{bd0}', '\u{bd0}'),
933         ('\u{c05}', '\u{c0c}'),
934         ('\u{c0e}', '\u{c10}'),
935         ('\u{c12}', '\u{c28}'),
936         ('\u{c2a}', '\u{c39}'),
937         ('\u{c3d}', '\u{c3d}'),
938         ('\u{c58}', '\u{c5a}'),
939         ('\u{c5d}', '\u{c5d}'),
940         ('\u{c60}', '\u{c61}'),
941         ('\u{c80}', '\u{c80}'),
942         ('\u{c85}', '\u{c8c}'),
943         ('\u{c8e}', '\u{c90}'),
944         ('\u{c92}', '\u{ca8}'),
945         ('\u{caa}', '\u{cb3}'),
946         ('\u{cb5}', '\u{cb9}'),
947         ('\u{cbd}', '\u{cbd}'),
948         ('\u{cdd}', '\u{cde}'),
949         ('\u{ce0}', '\u{ce1}'),
950         ('\u{cf1}', '\u{cf2}'),
951         ('\u{d04}', '\u{d0c}'),
952         ('\u{d0e}', '\u{d10}'),
953         ('\u{d12}', '\u{d3a}'),
954         ('\u{d3d}', '\u{d3d}'),
955         ('\u{d4e}', '\u{d4e}'),
956         ('\u{d54}', '\u{d56}'),
957         ('\u{d5f}', '\u{d61}'),
958         ('\u{d7a}', '\u{d7f}'),
959         ('\u{d85}', '\u{d96}'),
960         ('\u{d9a}', '\u{db1}'),
961         ('\u{db3}', '\u{dbb}'),
962         ('\u{dbd}', '\u{dbd}'),
963         ('\u{dc0}', '\u{dc6}'),
964         ('\u{e01}', '\u{e30}'),
965         ('\u{e32}', '\u{e32}'),
966         ('\u{e40}', '\u{e46}'),
967         ('\u{e81}', '\u{e82}'),
968         ('\u{e84}', '\u{e84}'),
969         ('\u{e86}', '\u{e8a}'),
970         ('\u{e8c}', '\u{ea3}'),
971         ('\u{ea5}', '\u{ea5}'),
972         ('\u{ea7}', '\u{eb0}'),
973         ('\u{eb2}', '\u{eb2}'),
974         ('\u{ebd}', '\u{ebd}'),
975         ('\u{ec0}', '\u{ec4}'),
976         ('\u{ec6}', '\u{ec6}'),
977         ('\u{edc}', '\u{edf}'),
978         ('\u{f00}', '\u{f00}'),
979         ('\u{f40}', '\u{f47}'),
980         ('\u{f49}', '\u{f6c}'),
981         ('\u{f88}', '\u{f8c}'),
982         ('\u{1000}', '\u{102a}'),
983         ('\u{103f}', '\u{103f}'),
984         ('\u{1050}', '\u{1055}'),
985         ('\u{105a}', '\u{105d}'),
986         ('\u{1061}', '\u{1061}'),
987         ('\u{1065}', '\u{1066}'),
988         ('\u{106e}', '\u{1070}'),
989         ('\u{1075}', '\u{1081}'),
990         ('\u{108e}', '\u{108e}'),
991         ('\u{10a0}', '\u{10c5}'),
992         ('\u{10c7}', '\u{10c7}'),
993         ('\u{10cd}', '\u{10cd}'),
994         ('\u{10d0}', '\u{10fa}'),
995         ('\u{10fc}', '\u{1248}'),
996         ('\u{124a}', '\u{124d}'),
997         ('\u{1250}', '\u{1256}'),
998         ('\u{1258}', '\u{1258}'),
999         ('\u{125a}', '\u{125d}'),
1000         ('\u{1260}', '\u{1288}'),
1001         ('\u{128a}', '\u{128d}'),
1002         ('\u{1290}', '\u{12b0}'),
1003         ('\u{12b2}', '\u{12b5}'),
1004         ('\u{12b8}', '\u{12be}'),
1005         ('\u{12c0}', '\u{12c0}'),
1006         ('\u{12c2}', '\u{12c5}'),
1007         ('\u{12c8}', '\u{12d6}'),
1008         ('\u{12d8}', '\u{1310}'),
1009         ('\u{1312}', '\u{1315}'),
1010         ('\u{1318}', '\u{135a}'),
1011         ('\u{1380}', '\u{138f}'),
1012         ('\u{13a0}', '\u{13f5}'),
1013         ('\u{13f8}', '\u{13fd}'),
1014         ('\u{1401}', '\u{166c}'),
1015         ('\u{166f}', '\u{167f}'),
1016         ('\u{1681}', '\u{169a}'),
1017         ('\u{16a0}', '\u{16ea}'),
1018         ('\u{16ee}', '\u{16f8}'),
1019         ('\u{1700}', '\u{1711}'),
1020         ('\u{171f}', '\u{1731}'),
1021         ('\u{1740}', '\u{1751}'),
1022         ('\u{1760}', '\u{176c}'),
1023         ('\u{176e}', '\u{1770}'),
1024         ('\u{1780}', '\u{17b3}'),
1025         ('\u{17d7}', '\u{17d7}'),
1026         ('\u{17dc}', '\u{17dc}'),
1027         ('\u{1820}', '\u{1878}'),
1028         ('\u{1880}', '\u{18a8}'),
1029         ('\u{18aa}', '\u{18aa}'),
1030         ('\u{18b0}', '\u{18f5}'),
1031         ('\u{1900}', '\u{191e}'),
1032         ('\u{1950}', '\u{196d}'),
1033         ('\u{1970}', '\u{1974}'),
1034         ('\u{1980}', '\u{19ab}'),
1035         ('\u{19b0}', '\u{19c9}'),
1036         ('\u{1a00}', '\u{1a16}'),
1037         ('\u{1a20}', '\u{1a54}'),
1038         ('\u{1aa7}', '\u{1aa7}'),
1039         ('\u{1b05}', '\u{1b33}'),
1040         ('\u{1b45}', '\u{1b4c}'),
1041         ('\u{1b83}', '\u{1ba0}'),
1042         ('\u{1bae}', '\u{1baf}'),
1043         ('\u{1bba}', '\u{1be5}'),
1044         ('\u{1c00}', '\u{1c23}'),
1045         ('\u{1c4d}', '\u{1c4f}'),
1046         ('\u{1c5a}', '\u{1c7d}'),
1047         ('\u{1c80}', '\u{1c88}'),
1048         ('\u{1c90}', '\u{1cba}'),
1049         ('\u{1cbd}', '\u{1cbf}'),
1050         ('\u{1ce9}', '\u{1cec}'),
1051         ('\u{1cee}', '\u{1cf3}'),
1052         ('\u{1cf5}', '\u{1cf6}'),
1053         ('\u{1cfa}', '\u{1cfa}'),
1054         ('\u{1d00}', '\u{1dbf}'),
1055         ('\u{1e00}', '\u{1f15}'),
1056         ('\u{1f18}', '\u{1f1d}'),
1057         ('\u{1f20}', '\u{1f45}'),
1058         ('\u{1f48}', '\u{1f4d}'),
1059         ('\u{1f50}', '\u{1f57}'),
1060         ('\u{1f59}', '\u{1f59}'),
1061         ('\u{1f5b}', '\u{1f5b}'),
1062         ('\u{1f5d}', '\u{1f5d}'),
1063         ('\u{1f5f}', '\u{1f7d}'),
1064         ('\u{1f80}', '\u{1fb4}'),
1065         ('\u{1fb6}', '\u{1fbc}'),
1066         ('\u{1fbe}', '\u{1fbe}'),
1067         ('\u{1fc2}', '\u{1fc4}'),
1068         ('\u{1fc6}', '\u{1fcc}'),
1069         ('\u{1fd0}', '\u{1fd3}'),
1070         ('\u{1fd6}', '\u{1fdb}'),
1071         ('\u{1fe0}', '\u{1fec}'),
1072         ('\u{1ff2}', '\u{1ff4}'),
1073         ('\u{1ff6}', '\u{1ffc}'),
1074         ('\u{2071}', '\u{2071}'),
1075         ('\u{207f}', '\u{207f}'),
1076         ('\u{2090}', '\u{209c}'),
1077         ('\u{2102}', '\u{2102}'),
1078         ('\u{2107}', '\u{2107}'),
1079         ('\u{210a}', '\u{2113}'),
1080         ('\u{2115}', '\u{2115}'),
1081         ('\u{2118}', '\u{211d}'),
1082         ('\u{2124}', '\u{2124}'),
1083         ('\u{2126}', '\u{2126}'),
1084         ('\u{2128}', '\u{2128}'),
1085         ('\u{212a}', '\u{2139}'),
1086         ('\u{213c}', '\u{213f}'),
1087         ('\u{2145}', '\u{2149}'),
1088         ('\u{214e}', '\u{214e}'),
1089         ('\u{2160}', '\u{2188}'),
1090         ('\u{2c00}', '\u{2ce4}'),
1091         ('\u{2ceb}', '\u{2cee}'),
1092         ('\u{2cf2}', '\u{2cf3}'),
1093         ('\u{2d00}', '\u{2d25}'),
1094         ('\u{2d27}', '\u{2d27}'),
1095         ('\u{2d2d}', '\u{2d2d}'),
1096         ('\u{2d30}', '\u{2d67}'),
1097         ('\u{2d6f}', '\u{2d6f}'),
1098         ('\u{2d80}', '\u{2d96}'),
1099         ('\u{2da0}', '\u{2da6}'),
1100         ('\u{2da8}', '\u{2dae}'),
1101         ('\u{2db0}', '\u{2db6}'),
1102         ('\u{2db8}', '\u{2dbe}'),
1103         ('\u{2dc0}', '\u{2dc6}'),
1104         ('\u{2dc8}', '\u{2dce}'),
1105         ('\u{2dd0}', '\u{2dd6}'),
1106         ('\u{2dd8}', '\u{2dde}'),
1107         ('\u{3005}', '\u{3007}'),
1108         ('\u{3021}', '\u{3029}'),
1109         ('\u{3031}', '\u{3035}'),
1110         ('\u{3038}', '\u{303c}'),
1111         ('\u{3041}', '\u{3096}'),
1112         ('\u{309d}', '\u{309f}'),
1113         ('\u{30a1}', '\u{30fa}'),
1114         ('\u{30fc}', '\u{30ff}'),
1115         ('\u{3105}', '\u{312f}'),
1116         ('\u{3131}', '\u{318e}'),
1117         ('\u{31a0}', '\u{31bf}'),
1118         ('\u{31f0}', '\u{31ff}'),
1119         ('\u{3400}', '\u{4dbf}'),
1120         ('\u{4e00}', '\u{a48c}'),
1121         ('\u{a4d0}', '\u{a4fd}'),
1122         ('\u{a500}', '\u{a60c}'),
1123         ('\u{a610}', '\u{a61f}'),
1124         ('\u{a62a}', '\u{a62b}'),
1125         ('\u{a640}', '\u{a66e}'),
1126         ('\u{a67f}', '\u{a69d}'),
1127         ('\u{a6a0}', '\u{a6ef}'),
1128         ('\u{a717}', '\u{a71f}'),
1129         ('\u{a722}', '\u{a788}'),
1130         ('\u{a78b}', '\u{a7ca}'),
1131         ('\u{a7d0}', '\u{a7d1}'),
1132         ('\u{a7d3}', '\u{a7d3}'),
1133         ('\u{a7d5}', '\u{a7d9}'),
1134         ('\u{a7f2}', '\u{a801}'),
1135         ('\u{a803}', '\u{a805}'),
1136         ('\u{a807}', '\u{a80a}'),
1137         ('\u{a80c}', '\u{a822}'),
1138         ('\u{a840}', '\u{a873}'),
1139         ('\u{a882}', '\u{a8b3}'),
1140         ('\u{a8f2}', '\u{a8f7}'),
1141         ('\u{a8fb}', '\u{a8fb}'),
1142         ('\u{a8fd}', '\u{a8fe}'),
1143         ('\u{a90a}', '\u{a925}'),
1144         ('\u{a930}', '\u{a946}'),
1145         ('\u{a960}', '\u{a97c}'),
1146         ('\u{a984}', '\u{a9b2}'),
1147         ('\u{a9cf}', '\u{a9cf}'),
1148         ('\u{a9e0}', '\u{a9e4}'),
1149         ('\u{a9e6}', '\u{a9ef}'),
1150         ('\u{a9fa}', '\u{a9fe}'),
1151         ('\u{aa00}', '\u{aa28}'),
1152         ('\u{aa40}', '\u{aa42}'),
1153         ('\u{aa44}', '\u{aa4b}'),
1154         ('\u{aa60}', '\u{aa76}'),
1155         ('\u{aa7a}', '\u{aa7a}'),
1156         ('\u{aa7e}', '\u{aaaf}'),
1157         ('\u{aab1}', '\u{aab1}'),
1158         ('\u{aab5}', '\u{aab6}'),
1159         ('\u{aab9}', '\u{aabd}'),
1160         ('\u{aac0}', '\u{aac0}'),
1161         ('\u{aac2}', '\u{aac2}'),
1162         ('\u{aadb}', '\u{aadd}'),
1163         ('\u{aae0}', '\u{aaea}'),
1164         ('\u{aaf2}', '\u{aaf4}'),
1165         ('\u{ab01}', '\u{ab06}'),
1166         ('\u{ab09}', '\u{ab0e}'),
1167         ('\u{ab11}', '\u{ab16}'),
1168         ('\u{ab20}', '\u{ab26}'),
1169         ('\u{ab28}', '\u{ab2e}'),
1170         ('\u{ab30}', '\u{ab5a}'),
1171         ('\u{ab5c}', '\u{ab69}'),
1172         ('\u{ab70}', '\u{abe2}'),
1173         ('\u{ac00}', '\u{d7a3}'),
1174         ('\u{d7b0}', '\u{d7c6}'),
1175         ('\u{d7cb}', '\u{d7fb}'),
1176         ('\u{f900}', '\u{fa6d}'),
1177         ('\u{fa70}', '\u{fad9}'),
1178         ('\u{fb00}', '\u{fb06}'),
1179         ('\u{fb13}', '\u{fb17}'),
1180         ('\u{fb1d}', '\u{fb1d}'),
1181         ('\u{fb1f}', '\u{fb28}'),
1182         ('\u{fb2a}', '\u{fb36}'),
1183         ('\u{fb38}', '\u{fb3c}'),
1184         ('\u{fb3e}', '\u{fb3e}'),
1185         ('\u{fb40}', '\u{fb41}'),
1186         ('\u{fb43}', '\u{fb44}'),
1187         ('\u{fb46}', '\u{fbb1}'),
1188         ('\u{fbd3}', '\u{fc5d}'),
1189         ('\u{fc64}', '\u{fd3d}'),
1190         ('\u{fd50}', '\u{fd8f}'),
1191         ('\u{fd92}', '\u{fdc7}'),
1192         ('\u{fdf0}', '\u{fdf9}'),
1193         ('\u{fe71}', '\u{fe71}'),
1194         ('\u{fe73}', '\u{fe73}'),
1195         ('\u{fe77}', '\u{fe77}'),
1196         ('\u{fe79}', '\u{fe79}'),
1197         ('\u{fe7b}', '\u{fe7b}'),
1198         ('\u{fe7d}', '\u{fe7d}'),
1199         ('\u{fe7f}', '\u{fefc}'),
1200         ('\u{ff21}', '\u{ff3a}'),
1201         ('\u{ff41}', '\u{ff5a}'),
1202         ('\u{ff66}', '\u{ff9d}'),
1203         ('\u{ffa0}', '\u{ffbe}'),
1204         ('\u{ffc2}', '\u{ffc7}'),
1205         ('\u{ffca}', '\u{ffcf}'),
1206         ('\u{ffd2}', '\u{ffd7}'),
1207         ('\u{ffda}', '\u{ffdc}'),
1208         ('\u{10000}', '\u{1000b}'),
1209         ('\u{1000d}', '\u{10026}'),
1210         ('\u{10028}', '\u{1003a}'),
1211         ('\u{1003c}', '\u{1003d}'),
1212         ('\u{1003f}', '\u{1004d}'),
1213         ('\u{10050}', '\u{1005d}'),
1214         ('\u{10080}', '\u{100fa}'),
1215         ('\u{10140}', '\u{10174}'),
1216         ('\u{10280}', '\u{1029c}'),
1217         ('\u{102a0}', '\u{102d0}'),
1218         ('\u{10300}', '\u{1031f}'),
1219         ('\u{1032d}', '\u{1034a}'),
1220         ('\u{10350}', '\u{10375}'),
1221         ('\u{10380}', '\u{1039d}'),
1222         ('\u{103a0}', '\u{103c3}'),
1223         ('\u{103c8}', '\u{103cf}'),
1224         ('\u{103d1}', '\u{103d5}'),
1225         ('\u{10400}', '\u{1049d}'),
1226         ('\u{104b0}', '\u{104d3}'),
1227         ('\u{104d8}', '\u{104fb}'),
1228         ('\u{10500}', '\u{10527}'),
1229         ('\u{10530}', '\u{10563}'),
1230         ('\u{10570}', '\u{1057a}'),
1231         ('\u{1057c}', '\u{1058a}'),
1232         ('\u{1058c}', '\u{10592}'),
1233         ('\u{10594}', '\u{10595}'),
1234         ('\u{10597}', '\u{105a1}'),
1235         ('\u{105a3}', '\u{105b1}'),
1236         ('\u{105b3}', '\u{105b9}'),
1237         ('\u{105bb}', '\u{105bc}'),
1238         ('\u{10600}', '\u{10736}'),
1239         ('\u{10740}', '\u{10755}'),
1240         ('\u{10760}', '\u{10767}'),
1241         ('\u{10780}', '\u{10785}'),
1242         ('\u{10787}', '\u{107b0}'),
1243         ('\u{107b2}', '\u{107ba}'),
1244         ('\u{10800}', '\u{10805}'),
1245         ('\u{10808}', '\u{10808}'),
1246         ('\u{1080a}', '\u{10835}'),
1247         ('\u{10837}', '\u{10838}'),
1248         ('\u{1083c}', '\u{1083c}'),
1249         ('\u{1083f}', '\u{10855}'),
1250         ('\u{10860}', '\u{10876}'),
1251         ('\u{10880}', '\u{1089e}'),
1252         ('\u{108e0}', '\u{108f2}'),
1253         ('\u{108f4}', '\u{108f5}'),
1254         ('\u{10900}', '\u{10915}'),
1255         ('\u{10920}', '\u{10939}'),
1256         ('\u{10980}', '\u{109b7}'),
1257         ('\u{109be}', '\u{109bf}'),
1258         ('\u{10a00}', '\u{10a00}'),
1259         ('\u{10a10}', '\u{10a13}'),
1260         ('\u{10a15}', '\u{10a17}'),
1261         ('\u{10a19}', '\u{10a35}'),
1262         ('\u{10a60}', '\u{10a7c}'),
1263         ('\u{10a80}', '\u{10a9c}'),
1264         ('\u{10ac0}', '\u{10ac7}'),
1265         ('\u{10ac9}', '\u{10ae4}'),
1266         ('\u{10b00}', '\u{10b35}'),
1267         ('\u{10b40}', '\u{10b55}'),
1268         ('\u{10b60}', '\u{10b72}'),
1269         ('\u{10b80}', '\u{10b91}'),
1270         ('\u{10c00}', '\u{10c48}'),
1271         ('\u{10c80}', '\u{10cb2}'),
1272         ('\u{10cc0}', '\u{10cf2}'),
1273         ('\u{10d00}', '\u{10d23}'),
1274         ('\u{10e80}', '\u{10ea9}'),
1275         ('\u{10eb0}', '\u{10eb1}'),
1276         ('\u{10f00}', '\u{10f1c}'),
1277         ('\u{10f27}', '\u{10f27}'),
1278         ('\u{10f30}', '\u{10f45}'),
1279         ('\u{10f70}', '\u{10f81}'),
1280         ('\u{10fb0}', '\u{10fc4}'),
1281         ('\u{10fe0}', '\u{10ff6}'),
1282         ('\u{11003}', '\u{11037}'),
1283         ('\u{11071}', '\u{11072}'),
1284         ('\u{11075}', '\u{11075}'),
1285         ('\u{11083}', '\u{110af}'),
1286         ('\u{110d0}', '\u{110e8}'),
1287         ('\u{11103}', '\u{11126}'),
1288         ('\u{11144}', '\u{11144}'),
1289         ('\u{11147}', '\u{11147}'),
1290         ('\u{11150}', '\u{11172}'),
1291         ('\u{11176}', '\u{11176}'),
1292         ('\u{11183}', '\u{111b2}'),
1293         ('\u{111c1}', '\u{111c4}'),
1294         ('\u{111da}', '\u{111da}'),
1295         ('\u{111dc}', '\u{111dc}'),
1296         ('\u{11200}', '\u{11211}'),
1297         ('\u{11213}', '\u{1122b}'),
1298         ('\u{1123f}', '\u{11240}'),
1299         ('\u{11280}', '\u{11286}'),
1300         ('\u{11288}', '\u{11288}'),
1301         ('\u{1128a}', '\u{1128d}'),
1302         ('\u{1128f}', '\u{1129d}'),
1303         ('\u{1129f}', '\u{112a8}'),
1304         ('\u{112b0}', '\u{112de}'),
1305         ('\u{11305}', '\u{1130c}'),
1306         ('\u{1130f}', '\u{11310}'),
1307         ('\u{11313}', '\u{11328}'),
1308         ('\u{1132a}', '\u{11330}'),
1309         ('\u{11332}', '\u{11333}'),
1310         ('\u{11335}', '\u{11339}'),
1311         ('\u{1133d}', '\u{1133d}'),
1312         ('\u{11350}', '\u{11350}'),
1313         ('\u{1135d}', '\u{11361}'),
1314         ('\u{11400}', '\u{11434}'),
1315         ('\u{11447}', '\u{1144a}'),
1316         ('\u{1145f}', '\u{11461}'),
1317         ('\u{11480}', '\u{114af}'),
1318         ('\u{114c4}', '\u{114c5}'),
1319         ('\u{114c7}', '\u{114c7}'),
1320         ('\u{11580}', '\u{115ae}'),
1321         ('\u{115d8}', '\u{115db}'),
1322         ('\u{11600}', '\u{1162f}'),
1323         ('\u{11644}', '\u{11644}'),
1324         ('\u{11680}', '\u{116aa}'),
1325         ('\u{116b8}', '\u{116b8}'),
1326         ('\u{11700}', '\u{1171a}'),
1327         ('\u{11740}', '\u{11746}'),
1328         ('\u{11800}', '\u{1182b}'),
1329         ('\u{118a0}', '\u{118df}'),
1330         ('\u{118ff}', '\u{11906}'),
1331         ('\u{11909}', '\u{11909}'),
1332         ('\u{1190c}', '\u{11913}'),
1333         ('\u{11915}', '\u{11916}'),
1334         ('\u{11918}', '\u{1192f}'),
1335         ('\u{1193f}', '\u{1193f}'),
1336         ('\u{11941}', '\u{11941}'),
1337         ('\u{119a0}', '\u{119a7}'),
1338         ('\u{119aa}', '\u{119d0}'),
1339         ('\u{119e1}', '\u{119e1}'),
1340         ('\u{119e3}', '\u{119e3}'),
1341         ('\u{11a00}', '\u{11a00}'),
1342         ('\u{11a0b}', '\u{11a32}'),
1343         ('\u{11a3a}', '\u{11a3a}'),
1344         ('\u{11a50}', '\u{11a50}'),
1345         ('\u{11a5c}', '\u{11a89}'),
1346         ('\u{11a9d}', '\u{11a9d}'),
1347         ('\u{11ab0}', '\u{11af8}'),
1348         ('\u{11c00}', '\u{11c08}'),
1349         ('\u{11c0a}', '\u{11c2e}'),
1350         ('\u{11c40}', '\u{11c40}'),
1351         ('\u{11c72}', '\u{11c8f}'),
1352         ('\u{11d00}', '\u{11d06}'),
1353         ('\u{11d08}', '\u{11d09}'),
1354         ('\u{11d0b}', '\u{11d30}'),
1355         ('\u{11d46}', '\u{11d46}'),
1356         ('\u{11d60}', '\u{11d65}'),
1357         ('\u{11d67}', '\u{11d68}'),
1358         ('\u{11d6a}', '\u{11d89}'),
1359         ('\u{11d98}', '\u{11d98}'),
1360         ('\u{11ee0}', '\u{11ef2}'),
1361         ('\u{11f02}', '\u{11f02}'),
1362         ('\u{11f04}', '\u{11f10}'),
1363         ('\u{11f12}', '\u{11f33}'),
1364         ('\u{11fb0}', '\u{11fb0}'),
1365         ('\u{12000}', '\u{12399}'),
1366         ('\u{12400}', '\u{1246e}'),
1367         ('\u{12480}', '\u{12543}'),
1368         ('\u{12f90}', '\u{12ff0}'),
1369         ('\u{13000}', '\u{1342f}'),
1370         ('\u{13441}', '\u{13446}'),
1371         ('\u{14400}', '\u{14646}'),
1372         ('\u{16800}', '\u{16a38}'),
1373         ('\u{16a40}', '\u{16a5e}'),
1374         ('\u{16a70}', '\u{16abe}'),
1375         ('\u{16ad0}', '\u{16aed}'),
1376         ('\u{16b00}', '\u{16b2f}'),
1377         ('\u{16b40}', '\u{16b43}'),
1378         ('\u{16b63}', '\u{16b77}'),
1379         ('\u{16b7d}', '\u{16b8f}'),
1380         ('\u{16e40}', '\u{16e7f}'),
1381         ('\u{16f00}', '\u{16f4a}'),
1382         ('\u{16f50}', '\u{16f50}'),
1383         ('\u{16f93}', '\u{16f9f}'),
1384         ('\u{16fe0}', '\u{16fe1}'),
1385         ('\u{16fe3}', '\u{16fe3}'),
1386         ('\u{17000}', '\u{187f7}'),
1387         ('\u{18800}', '\u{18cd5}'),
1388         ('\u{18d00}', '\u{18d08}'),
1389         ('\u{1aff0}', '\u{1aff3}'),
1390         ('\u{1aff5}', '\u{1affb}'),
1391         ('\u{1affd}', '\u{1affe}'),
1392         ('\u{1b000}', '\u{1b122}'),
1393         ('\u{1b132}', '\u{1b132}'),
1394         ('\u{1b150}', '\u{1b152}'),
1395         ('\u{1b155}', '\u{1b155}'),
1396         ('\u{1b164}', '\u{1b167}'),
1397         ('\u{1b170}', '\u{1b2fb}'),
1398         ('\u{1bc00}', '\u{1bc6a}'),
1399         ('\u{1bc70}', '\u{1bc7c}'),
1400         ('\u{1bc80}', '\u{1bc88}'),
1401         ('\u{1bc90}', '\u{1bc99}'),
1402         ('\u{1d400}', '\u{1d454}'),
1403         ('\u{1d456}', '\u{1d49c}'),
1404         ('\u{1d49e}', '\u{1d49f}'),
1405         ('\u{1d4a2}', '\u{1d4a2}'),
1406         ('\u{1d4a5}', '\u{1d4a6}'),
1407         ('\u{1d4a9}', '\u{1d4ac}'),
1408         ('\u{1d4ae}', '\u{1d4b9}'),
1409         ('\u{1d4bb}', '\u{1d4bb}'),
1410         ('\u{1d4bd}', '\u{1d4c3}'),
1411         ('\u{1d4c5}', '\u{1d505}'),
1412         ('\u{1d507}', '\u{1d50a}'),
1413         ('\u{1d50d}', '\u{1d514}'),
1414         ('\u{1d516}', '\u{1d51c}'),
1415         ('\u{1d51e}', '\u{1d539}'),
1416         ('\u{1d53b}', '\u{1d53e}'),
1417         ('\u{1d540}', '\u{1d544}'),
1418         ('\u{1d546}', '\u{1d546}'),
1419         ('\u{1d54a}', '\u{1d550}'),
1420         ('\u{1d552}', '\u{1d6a5}'),
1421         ('\u{1d6a8}', '\u{1d6c0}'),
1422         ('\u{1d6c2}', '\u{1d6da}'),
1423         ('\u{1d6dc}', '\u{1d6fa}'),
1424         ('\u{1d6fc}', '\u{1d714}'),
1425         ('\u{1d716}', '\u{1d734}'),
1426         ('\u{1d736}', '\u{1d74e}'),
1427         ('\u{1d750}', '\u{1d76e}'),
1428         ('\u{1d770}', '\u{1d788}'),
1429         ('\u{1d78a}', '\u{1d7a8}'),
1430         ('\u{1d7aa}', '\u{1d7c2}'),
1431         ('\u{1d7c4}', '\u{1d7cb}'),
1432         ('\u{1df00}', '\u{1df1e}'),
1433         ('\u{1df25}', '\u{1df2a}'),
1434         ('\u{1e030}', '\u{1e06d}'),
1435         ('\u{1e100}', '\u{1e12c}'),
1436         ('\u{1e137}', '\u{1e13d}'),
1437         ('\u{1e14e}', '\u{1e14e}'),
1438         ('\u{1e290}', '\u{1e2ad}'),
1439         ('\u{1e2c0}', '\u{1e2eb}'),
1440         ('\u{1e4d0}', '\u{1e4eb}'),
1441         ('\u{1e7e0}', '\u{1e7e6}'),
1442         ('\u{1e7e8}', '\u{1e7eb}'),
1443         ('\u{1e7ed}', '\u{1e7ee}'),
1444         ('\u{1e7f0}', '\u{1e7fe}'),
1445         ('\u{1e800}', '\u{1e8c4}'),
1446         ('\u{1e900}', '\u{1e943}'),
1447         ('\u{1e94b}', '\u{1e94b}'),
1448         ('\u{1ee00}', '\u{1ee03}'),
1449         ('\u{1ee05}', '\u{1ee1f}'),
1450         ('\u{1ee21}', '\u{1ee22}'),
1451         ('\u{1ee24}', '\u{1ee24}'),
1452         ('\u{1ee27}', '\u{1ee27}'),
1453         ('\u{1ee29}', '\u{1ee32}'),
1454         ('\u{1ee34}', '\u{1ee37}'),
1455         ('\u{1ee39}', '\u{1ee39}'),
1456         ('\u{1ee3b}', '\u{1ee3b}'),
1457         ('\u{1ee42}', '\u{1ee42}'),
1458         ('\u{1ee47}', '\u{1ee47}'),
1459         ('\u{1ee49}', '\u{1ee49}'),
1460         ('\u{1ee4b}', '\u{1ee4b}'),
1461         ('\u{1ee4d}', '\u{1ee4f}'),
1462         ('\u{1ee51}', '\u{1ee52}'),
1463         ('\u{1ee54}', '\u{1ee54}'),
1464         ('\u{1ee57}', '\u{1ee57}'),
1465         ('\u{1ee59}', '\u{1ee59}'),
1466         ('\u{1ee5b}', '\u{1ee5b}'),
1467         ('\u{1ee5d}', '\u{1ee5d}'),
1468         ('\u{1ee5f}', '\u{1ee5f}'),
1469         ('\u{1ee61}', '\u{1ee62}'),
1470         ('\u{1ee64}', '\u{1ee64}'),
1471         ('\u{1ee67}', '\u{1ee6a}'),
1472         ('\u{1ee6c}', '\u{1ee72}'),
1473         ('\u{1ee74}', '\u{1ee77}'),
1474         ('\u{1ee79}', '\u{1ee7c}'),
1475         ('\u{1ee7e}', '\u{1ee7e}'),
1476         ('\u{1ee80}', '\u{1ee89}'),
1477         ('\u{1ee8b}', '\u{1ee9b}'),
1478         ('\u{1eea1}', '\u{1eea3}'),
1479         ('\u{1eea5}', '\u{1eea9}'),
1480         ('\u{1eeab}', '\u{1eebb}'),
1481         ('\u{20000}', '\u{2a6df}'),
1482         ('\u{2a700}', '\u{2b739}'),
1483         ('\u{2b740}', '\u{2b81d}'),
1484         ('\u{2b820}', '\u{2cea1}'),
1485         ('\u{2ceb0}', '\u{2ebe0}'),
1486         ('\u{2f800}', '\u{2fa1d}'),
1487         ('\u{30000}', '\u{3134a}'),
1488         ('\u{31350}', '\u{323af}'),
1489     ];
1490 
XID_Start(c: char) -> bool1491     pub fn XID_Start(c: char) -> bool {
1492         super::bsearch_range_table(c, XID_Start_table)
1493     }
1494 }
1495