forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathunicode.rs
More file actions
4853 lines (4767 loc) · 326 KB
/
unicode.rs
File metadata and controls
4853 lines (4767 loc) · 326 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// The following code was generated by "src/etc/unicode.py"
#[allow(missing_doc)];
#[allow(non_uppercase_statics)];
pub mod general_category {
fn bsearch_range_table(c: char, r: &'static [(char,char)]) -> bool {
use cmp::{Equal, Less, Greater};
use vec::ImmutableVector;
use option::None;
(r.bsearch(|&(lo,hi)| {
if lo <= c && c <= hi { Equal }
else if hi < c { Less }
else { Greater }
})) != None
}
static Cc_table : &'static [(char,char)] = &[
('\x00', '\x1f'), ('\x7f', '\x9f')
];
pub fn Cc(c: char) -> bool {
bsearch_range_table(c, Cc_table)
}
static Cf_table : &'static [(char,char)] = &[
('\xad', '\xad'), ('\u0600', '\u0604'),
('\u06dd', '\u06dd'), ('\u070f', '\u070f'),
('\u200b', '\u200f'), ('\u202a', '\u202e'),
('\u2060', '\u206f'), ('\ufeff', '\ufeff'),
('\ufff9', '\ufffb'), ('\U000110bd', '\U000110bd'),
('\U0001d173', '\U0001d17a'), ('\U000e0001', '\U000e007f')
];
pub fn Cf(c: char) -> bool {
bsearch_range_table(c, Cf_table)
}
static Co_table : &'static [(char,char)] = &[
('\ue000', '\uf8ff')
];
pub fn Co(c: char) -> bool {
bsearch_range_table(c, Co_table)
}
static Ll_table : &'static [(char,char)] = &[
('\x61', '\x7a'), ('\xb5', '\xb5'),
('\xdf', '\xf6'), ('\xf8', '\xff'),
('\u0101', '\u0101'), ('\u0103', '\u0103'),
('\u0105', '\u0105'), ('\u0107', '\u0107'),
('\u0109', '\u0109'), ('\u010b', '\u010b'),
('\u010d', '\u010d'), ('\u010f', '\u010f'),
('\u0111', '\u0111'), ('\u0113', '\u0113'),
('\u0115', '\u0115'), ('\u0117', '\u0117'),
('\u0119', '\u0119'), ('\u011b', '\u011b'),
('\u011d', '\u011d'), ('\u011f', '\u011f'),
('\u0121', '\u0121'), ('\u0123', '\u0123'),
('\u0125', '\u0125'), ('\u0127', '\u0127'),
('\u0129', '\u0129'), ('\u012b', '\u012b'),
('\u012d', '\u012d'), ('\u012f', '\u012f'),
('\u0131', '\u0131'), ('\u0133', '\u0133'),
('\u0135', '\u0135'), ('\u0137', '\u0138'),
('\u013a', '\u013a'), ('\u013c', '\u013c'),
('\u013e', '\u013e'), ('\u0140', '\u0140'),
('\u0142', '\u0142'), ('\u0144', '\u0144'),
('\u0146', '\u0146'), ('\u0148', '\u0149'),
('\u014b', '\u014b'), ('\u014d', '\u014d'),
('\u014f', '\u014f'), ('\u0151', '\u0151'),
('\u0153', '\u0153'), ('\u0155', '\u0155'),
('\u0157', '\u0157'), ('\u0159', '\u0159'),
('\u015b', '\u015b'), ('\u015d', '\u015d'),
('\u015f', '\u015f'), ('\u0161', '\u0161'),
('\u0163', '\u0163'), ('\u0165', '\u0165'),
('\u0167', '\u0167'), ('\u0169', '\u0169'),
('\u016b', '\u016b'), ('\u016d', '\u016d'),
('\u016f', '\u016f'), ('\u0171', '\u0171'),
('\u0173', '\u0173'), ('\u0175', '\u0175'),
('\u0177', '\u0177'), ('\u017a', '\u017a'),
('\u017c', '\u017c'), ('\u017e', '\u0180'),
('\u0183', '\u0183'), ('\u0185', '\u0185'),
('\u0188', '\u0188'), ('\u018c', '\u018d'),
('\u0192', '\u0192'), ('\u0195', '\u0195'),
('\u0199', '\u019b'), ('\u019e', '\u019e'),
('\u01a1', '\u01a1'), ('\u01a3', '\u01a3'),
('\u01a5', '\u01a5'), ('\u01a8', '\u01a8'),
('\u01aa', '\u01ab'), ('\u01ad', '\u01ad'),
('\u01b0', '\u01b0'), ('\u01b4', '\u01b4'),
('\u01b6', '\u01b6'), ('\u01b9', '\u01ba'),
('\u01bd', '\u01bf'), ('\u01c6', '\u01c6'),
('\u01c9', '\u01c9'), ('\u01cc', '\u01cc'),
('\u01ce', '\u01ce'), ('\u01d0', '\u01d0'),
('\u01d2', '\u01d2'), ('\u01d4', '\u01d4'),
('\u01d6', '\u01d6'), ('\u01d8', '\u01d8'),
('\u01da', '\u01da'), ('\u01dc', '\u01dd'),
('\u01df', '\u01df'), ('\u01e1', '\u01e1'),
('\u01e3', '\u01e3'), ('\u01e5', '\u01e5'),
('\u01e7', '\u01e7'), ('\u01e9', '\u01e9'),
('\u01eb', '\u01eb'), ('\u01ed', '\u01ed'),
('\u01ef', '\u01f0'), ('\u01f3', '\u01f3'),
('\u01f5', '\u01f5'), ('\u01f9', '\u01f9'),
('\u01fb', '\u01fb'), ('\u01fd', '\u01fd'),
('\u01ff', '\u01ff'), ('\u0201', '\u0201'),
('\u0203', '\u0203'), ('\u0205', '\u0205'),
('\u0207', '\u0207'), ('\u0209', '\u0209'),
('\u020b', '\u020b'), ('\u020d', '\u020d'),
('\u020f', '\u020f'), ('\u0211', '\u0211'),
('\u0213', '\u0213'), ('\u0215', '\u0215'),
('\u0217', '\u0217'), ('\u0219', '\u0219'),
('\u021b', '\u021b'), ('\u021d', '\u021d'),
('\u021f', '\u021f'), ('\u0221', '\u0221'),
('\u0223', '\u0223'), ('\u0225', '\u0225'),
('\u0227', '\u0227'), ('\u0229', '\u0229'),
('\u022b', '\u022b'), ('\u022d', '\u022d'),
('\u022f', '\u022f'), ('\u0231', '\u0231'),
('\u0233', '\u0239'), ('\u023c', '\u023c'),
('\u023f', '\u0240'), ('\u0242', '\u0242'),
('\u0247', '\u0247'), ('\u0249', '\u0249'),
('\u024b', '\u024b'), ('\u024d', '\u024d'),
('\u024f', '\u0293'), ('\u0295', '\u02af'),
('\u0371', '\u0371'), ('\u0373', '\u0373'),
('\u0377', '\u0377'), ('\u037b', '\u037d'),
('\u0390', '\u0390'), ('\u03ac', '\u03ce'),
('\u03d0', '\u03d1'), ('\u03d5', '\u03d7'),
('\u03d9', '\u03d9'), ('\u03db', '\u03db'),
('\u03dd', '\u03dd'), ('\u03df', '\u03df'),
('\u03e1', '\u03e1'), ('\u03e3', '\u03e3'),
('\u03e5', '\u03e5'), ('\u03e7', '\u03e7'),
('\u03e9', '\u03e9'), ('\u03eb', '\u03eb'),
('\u03ed', '\u03ed'), ('\u03ef', '\u03f3'),
('\u03f5', '\u03f5'), ('\u03f8', '\u03f8'),
('\u03fb', '\u03fc'), ('\u0430', '\u045f'),
('\u0461', '\u0461'), ('\u0463', '\u0463'),
('\u0465', '\u0465'), ('\u0467', '\u0467'),
('\u0469', '\u0469'), ('\u046b', '\u046b'),
('\u046d', '\u046d'), ('\u046f', '\u046f'),
('\u0471', '\u0471'), ('\u0473', '\u0473'),
('\u0475', '\u0475'), ('\u0477', '\u0477'),
('\u0479', '\u0479'), ('\u047b', '\u047b'),
('\u047d', '\u047d'), ('\u047f', '\u047f'),
('\u0481', '\u0481'), ('\u048b', '\u048b'),
('\u048d', '\u048d'), ('\u048f', '\u048f'),
('\u0491', '\u0491'), ('\u0493', '\u0493'),
('\u0495', '\u0495'), ('\u0497', '\u0497'),
('\u0499', '\u0499'), ('\u049b', '\u049b'),
('\u049d', '\u049d'), ('\u049f', '\u049f'),
('\u04a1', '\u04a1'), ('\u04a3', '\u04a3'),
('\u04a5', '\u04a5'), ('\u04a7', '\u04a7'),
('\u04a9', '\u04a9'), ('\u04ab', '\u04ab'),
('\u04ad', '\u04ad'), ('\u04af', '\u04af'),
('\u04b1', '\u04b1'), ('\u04b3', '\u04b3'),
('\u04b5', '\u04b5'), ('\u04b7', '\u04b7'),
('\u04b9', '\u04b9'), ('\u04bb', '\u04bb'),
('\u04bd', '\u04bd'), ('\u04bf', '\u04bf'),
('\u04c2', '\u04c2'), ('\u04c4', '\u04c4'),
('\u04c6', '\u04c6'), ('\u04c8', '\u04c8'),
('\u04ca', '\u04ca'), ('\u04cc', '\u04cc'),
('\u04ce', '\u04cf'), ('\u04d1', '\u04d1'),
('\u04d3', '\u04d3'), ('\u04d5', '\u04d5'),
('\u04d7', '\u04d7'), ('\u04d9', '\u04d9'),
('\u04db', '\u04db'), ('\u04dd', '\u04dd'),
('\u04df', '\u04df'), ('\u04e1', '\u04e1'),
('\u04e3', '\u04e3'), ('\u04e5', '\u04e5'),
('\u04e7', '\u04e7'), ('\u04e9', '\u04e9'),
('\u04eb', '\u04eb'), ('\u04ed', '\u04ed'),
('\u04ef', '\u04ef'), ('\u04f1', '\u04f1'),
('\u04f3', '\u04f3'), ('\u04f5', '\u04f5'),
('\u04f7', '\u04f7'), ('\u04f9', '\u04f9'),
('\u04fb', '\u04fb'), ('\u04fd', '\u04fd'),
('\u04ff', '\u04ff'), ('\u0501', '\u0501'),
('\u0503', '\u0503'), ('\u0505', '\u0505'),
('\u0507', '\u0507'), ('\u0509', '\u0509'),
('\u050b', '\u050b'), ('\u050d', '\u050d'),
('\u050f', '\u050f'), ('\u0511', '\u0511'),
('\u0513', '\u0513'), ('\u0515', '\u0515'),
('\u0517', '\u0517'), ('\u0519', '\u0519'),
('\u051b', '\u051b'), ('\u051d', '\u051d'),
('\u051f', '\u051f'), ('\u0521', '\u0521'),
('\u0523', '\u0523'), ('\u0525', '\u0525'),
('\u0527', '\u0527'), ('\u0561', '\u0587'),
('\u1d00', '\u1d2b'), ('\u1d6b', '\u1d77'),
('\u1d79', '\u1d9a'), ('\u1e01', '\u1e01'),
('\u1e03', '\u1e03'), ('\u1e05', '\u1e05'),
('\u1e07', '\u1e07'), ('\u1e09', '\u1e09'),
('\u1e0b', '\u1e0b'), ('\u1e0d', '\u1e0d'),
('\u1e0f', '\u1e0f'), ('\u1e11', '\u1e11'),
('\u1e13', '\u1e13'), ('\u1e15', '\u1e15'),
('\u1e17', '\u1e17'), ('\u1e19', '\u1e19'),
('\u1e1b', '\u1e1b'), ('\u1e1d', '\u1e1d'),
('\u1e1f', '\u1e1f'), ('\u1e21', '\u1e21'),
('\u1e23', '\u1e23'), ('\u1e25', '\u1e25'),
('\u1e27', '\u1e27'), ('\u1e29', '\u1e29'),
('\u1e2b', '\u1e2b'), ('\u1e2d', '\u1e2d'),
('\u1e2f', '\u1e2f'), ('\u1e31', '\u1e31'),
('\u1e33', '\u1e33'), ('\u1e35', '\u1e35'),
('\u1e37', '\u1e37'), ('\u1e39', '\u1e39'),
('\u1e3b', '\u1e3b'), ('\u1e3d', '\u1e3d'),
('\u1e3f', '\u1e3f'), ('\u1e41', '\u1e41'),
('\u1e43', '\u1e43'), ('\u1e45', '\u1e45'),
('\u1e47', '\u1e47'), ('\u1e49', '\u1e49'),
('\u1e4b', '\u1e4b'), ('\u1e4d', '\u1e4d'),
('\u1e4f', '\u1e4f'), ('\u1e51', '\u1e51'),
('\u1e53', '\u1e53'), ('\u1e55', '\u1e55'),
('\u1e57', '\u1e57'), ('\u1e59', '\u1e59'),
('\u1e5b', '\u1e5b'), ('\u1e5d', '\u1e5d'),
('\u1e5f', '\u1e5f'), ('\u1e61', '\u1e61'),
('\u1e63', '\u1e63'), ('\u1e65', '\u1e65'),
('\u1e67', '\u1e67'), ('\u1e69', '\u1e69'),
('\u1e6b', '\u1e6b'), ('\u1e6d', '\u1e6d'),
('\u1e6f', '\u1e6f'), ('\u1e71', '\u1e71'),
('\u1e73', '\u1e73'), ('\u1e75', '\u1e75'),
('\u1e77', '\u1e77'), ('\u1e79', '\u1e79'),
('\u1e7b', '\u1e7b'), ('\u1e7d', '\u1e7d'),
('\u1e7f', '\u1e7f'), ('\u1e81', '\u1e81'),
('\u1e83', '\u1e83'), ('\u1e85', '\u1e85'),
('\u1e87', '\u1e87'), ('\u1e89', '\u1e89'),
('\u1e8b', '\u1e8b'), ('\u1e8d', '\u1e8d'),
('\u1e8f', '\u1e8f'), ('\u1e91', '\u1e91'),
('\u1e93', '\u1e93'), ('\u1e95', '\u1e9d'),
('\u1e9f', '\u1e9f'), ('\u1ea1', '\u1ea1'),
('\u1ea3', '\u1ea3'), ('\u1ea5', '\u1ea5'),
('\u1ea7', '\u1ea7'), ('\u1ea9', '\u1ea9'),
('\u1eab', '\u1eab'), ('\u1ead', '\u1ead'),
('\u1eaf', '\u1eaf'), ('\u1eb1', '\u1eb1'),
('\u1eb3', '\u1eb3'), ('\u1eb5', '\u1eb5'),
('\u1eb7', '\u1eb7'), ('\u1eb9', '\u1eb9'),
('\u1ebb', '\u1ebb'), ('\u1ebd', '\u1ebd'),
('\u1ebf', '\u1ebf'), ('\u1ec1', '\u1ec1'),
('\u1ec3', '\u1ec3'), ('\u1ec5', '\u1ec5'),
('\u1ec7', '\u1ec7'), ('\u1ec9', '\u1ec9'),
('\u1ecb', '\u1ecb'), ('\u1ecd', '\u1ecd'),
('\u1ecf', '\u1ecf'), ('\u1ed1', '\u1ed1'),
('\u1ed3', '\u1ed3'), ('\u1ed5', '\u1ed5'),
('\u1ed7', '\u1ed7'), ('\u1ed9', '\u1ed9'),
('\u1edb', '\u1edb'), ('\u1edd', '\u1edd'),
('\u1edf', '\u1edf'), ('\u1ee1', '\u1ee1'),
('\u1ee3', '\u1ee3'), ('\u1ee5', '\u1ee5'),
('\u1ee7', '\u1ee7'), ('\u1ee9', '\u1ee9'),
('\u1eeb', '\u1eeb'), ('\u1eed', '\u1eed'),
('\u1eef', '\u1eef'), ('\u1ef1', '\u1ef1'),
('\u1ef3', '\u1ef3'), ('\u1ef5', '\u1ef5'),
('\u1ef7', '\u1ef7'), ('\u1ef9', '\u1ef9'),
('\u1efb', '\u1efb'), ('\u1efd', '\u1efd'),
('\u1eff', '\u1f07'), ('\u1f10', '\u1f15'),
('\u1f20', '\u1f27'), ('\u1f30', '\u1f37'),
('\u1f40', '\u1f45'), ('\u1f50', '\u1f57'),
('\u1f60', '\u1f67'), ('\u1f70', '\u1f87'),
('\u1f90', '\u1f97'), ('\u1fa0', '\u1fa7'),
('\u1fb0', '\u1fb7'), ('\u1fbe', '\u1fbe'),
('\u1fc2', '\u1fc7'), ('\u1fd0', '\u1fd7'),
('\u1fe0', '\u1fe7'), ('\u1ff2', '\u1ff7'),
('\u210a', '\u210a'), ('\u210e', '\u210f'),
('\u2113', '\u2113'), ('\u212f', '\u212f'),
('\u2134', '\u2134'), ('\u2139', '\u2139'),
('\u213c', '\u213d'), ('\u2146', '\u2149'),
('\u214e', '\u214e'), ('\u2184', '\u2184'),
('\u2c30', '\u2c5e'), ('\u2c61', '\u2c61'),
('\u2c65', '\u2c66'), ('\u2c68', '\u2c68'),
('\u2c6a', '\u2c6a'), ('\u2c6c', '\u2c6c'),
('\u2c71', '\u2c71'), ('\u2c73', '\u2c74'),
('\u2c76', '\u2c7b'), ('\u2c81', '\u2c81'),
('\u2c83', '\u2c83'), ('\u2c85', '\u2c85'),
('\u2c87', '\u2c87'), ('\u2c89', '\u2c89'),
('\u2c8b', '\u2c8b'), ('\u2c8d', '\u2c8d'),
('\u2c8f', '\u2c8f'), ('\u2c91', '\u2c91'),
('\u2c93', '\u2c93'), ('\u2c95', '\u2c95'),
('\u2c97', '\u2c97'), ('\u2c99', '\u2c99'),
('\u2c9b', '\u2c9b'), ('\u2c9d', '\u2c9d'),
('\u2c9f', '\u2c9f'), ('\u2ca1', '\u2ca1'),
('\u2ca3', '\u2ca3'), ('\u2ca5', '\u2ca5'),
('\u2ca7', '\u2ca7'), ('\u2ca9', '\u2ca9'),
('\u2cab', '\u2cab'), ('\u2cad', '\u2cad'),
('\u2caf', '\u2caf'), ('\u2cb1', '\u2cb1'),
('\u2cb3', '\u2cb3'), ('\u2cb5', '\u2cb5'),
('\u2cb7', '\u2cb7'), ('\u2cb9', '\u2cb9'),
('\u2cbb', '\u2cbb'), ('\u2cbd', '\u2cbd'),
('\u2cbf', '\u2cbf'), ('\u2cc1', '\u2cc1'),
('\u2cc3', '\u2cc3'), ('\u2cc5', '\u2cc5'),
('\u2cc7', '\u2cc7'), ('\u2cc9', '\u2cc9'),
('\u2ccb', '\u2ccb'), ('\u2ccd', '\u2ccd'),
('\u2ccf', '\u2ccf'), ('\u2cd1', '\u2cd1'),
('\u2cd3', '\u2cd3'), ('\u2cd5', '\u2cd5'),
('\u2cd7', '\u2cd7'), ('\u2cd9', '\u2cd9'),
('\u2cdb', '\u2cdb'), ('\u2cdd', '\u2cdd'),
('\u2cdf', '\u2cdf'), ('\u2ce1', '\u2ce1'),
('\u2ce3', '\u2ce4'), ('\u2cec', '\u2cec'),
('\u2cee', '\u2cee'), ('\u2cf3', '\u2cf3'),
('\u2d00', '\u2d2d'), ('\ua641', '\ua641'),
('\ua643', '\ua643'), ('\ua645', '\ua645'),
('\ua647', '\ua647'), ('\ua649', '\ua649'),
('\ua64b', '\ua64b'), ('\ua64d', '\ua64d'),
('\ua64f', '\ua64f'), ('\ua651', '\ua651'),
('\ua653', '\ua653'), ('\ua655', '\ua655'),
('\ua657', '\ua657'), ('\ua659', '\ua659'),
('\ua65b', '\ua65b'), ('\ua65d', '\ua65d'),
('\ua65f', '\ua65f'), ('\ua661', '\ua661'),
('\ua663', '\ua663'), ('\ua665', '\ua665'),
('\ua667', '\ua667'), ('\ua669', '\ua669'),
('\ua66b', '\ua66b'), ('\ua66d', '\ua66d'),
('\ua681', '\ua681'), ('\ua683', '\ua683'),
('\ua685', '\ua685'), ('\ua687', '\ua687'),
('\ua689', '\ua689'), ('\ua68b', '\ua68b'),
('\ua68d', '\ua68d'), ('\ua68f', '\ua68f'),
('\ua691', '\ua691'), ('\ua693', '\ua693'),
('\ua695', '\ua695'), ('\ua697', '\ua697'),
('\ua723', '\ua723'), ('\ua725', '\ua725'),
('\ua727', '\ua727'), ('\ua729', '\ua729'),
('\ua72b', '\ua72b'), ('\ua72d', '\ua72d'),
('\ua72f', '\ua731'), ('\ua733', '\ua733'),
('\ua735', '\ua735'), ('\ua737', '\ua737'),
('\ua739', '\ua739'), ('\ua73b', '\ua73b'),
('\ua73d', '\ua73d'), ('\ua73f', '\ua73f'),
('\ua741', '\ua741'), ('\ua743', '\ua743'),
('\ua745', '\ua745'), ('\ua747', '\ua747'),
('\ua749', '\ua749'), ('\ua74b', '\ua74b'),
('\ua74d', '\ua74d'), ('\ua74f', '\ua74f'),
('\ua751', '\ua751'), ('\ua753', '\ua753'),
('\ua755', '\ua755'), ('\ua757', '\ua757'),
('\ua759', '\ua759'), ('\ua75b', '\ua75b'),
('\ua75d', '\ua75d'), ('\ua75f', '\ua75f'),
('\ua761', '\ua761'), ('\ua763', '\ua763'),
('\ua765', '\ua765'), ('\ua767', '\ua767'),
('\ua769', '\ua769'), ('\ua76b', '\ua76b'),
('\ua76d', '\ua76d'), ('\ua76f', '\ua76f'),
('\ua771', '\ua778'), ('\ua77a', '\ua77a'),
('\ua77c', '\ua77c'), ('\ua77f', '\ua77f'),
('\ua781', '\ua781'), ('\ua783', '\ua783'),
('\ua785', '\ua785'), ('\ua787', '\ua787'),
('\ua78c', '\ua78c'), ('\ua78e', '\ua78e'),
('\ua791', '\ua791'), ('\ua793', '\ua793'),
('\ua7a1', '\ua7a1'), ('\ua7a3', '\ua7a3'),
('\ua7a5', '\ua7a5'), ('\ua7a7', '\ua7a7'),
('\ua7a9', '\ua7a9'), ('\ua7fa', '\ua7fa'),
('\ufb00', '\ufb17'), ('\uff41', '\uff5a'),
('\U00010428', '\U0001044f'), ('\U0001d41a', '\U0001d433'),
('\U0001d44e', '\U0001d467'), ('\U0001d482', '\U0001d49b'),
('\U0001d4b6', '\U0001d4cf'), ('\U0001d4ea', '\U0001d503'),
('\U0001d51e', '\U0001d537'), ('\U0001d552', '\U0001d56b'),
('\U0001d586', '\U0001d59f'), ('\U0001d5ba', '\U0001d5d3'),
('\U0001d5ee', '\U0001d607'), ('\U0001d622', '\U0001d63b'),
('\U0001d656', '\U0001d66f'), ('\U0001d68a', '\U0001d6a5'),
('\U0001d6c2', '\U0001d6da'), ('\U0001d6dc', '\U0001d6e1'),
('\U0001d6fc', '\U0001d714'), ('\U0001d716', '\U0001d71b'),
('\U0001d736', '\U0001d74e'), ('\U0001d750', '\U0001d755'),
('\U0001d770', '\U0001d788'), ('\U0001d78a', '\U0001d78f'),
('\U0001d7aa', '\U0001d7c2'), ('\U0001d7c4', '\U0001d7c9'),
('\U0001d7cb', '\U0001d7cb')
];
pub fn Ll(c: char) -> bool {
bsearch_range_table(c, Ll_table)
}
static Lm_table : &'static [(char,char)] = &[
('\u02b0', '\u02c1'), ('\u02c6', '\u02d1'),
('\u02e0', '\u02e4'), ('\u02ec', '\u02ec'),
('\u02ee', '\u02ee'), ('\u0374', '\u0374'),
('\u037a', '\u037a'), ('\u0559', '\u0559'),
('\u0640', '\u0640'), ('\u06e5', '\u06e6'),
('\u07f4', '\u07f5'), ('\u07fa', '\u07fa'),
('\u081a', '\u081a'), ('\u0824', '\u0824'),
('\u0828', '\u0828'), ('\u0971', '\u0971'),
('\u0e46', '\u0e46'), ('\u0ec6', '\u0ec6'),
('\u10fc', '\u10fc'), ('\u17d7', '\u17d7'),
('\u1843', '\u1843'), ('\u1aa7', '\u1aa7'),
('\u1c78', '\u1c7d'), ('\u1d2c', '\u1d6a'),
('\u1d78', '\u1d78'), ('\u1d9b', '\u1dbf'),
('\u2071', '\u2071'), ('\u207f', '\u207f'),
('\u2090', '\u209c'), ('\u2c7c', '\u2c7d'),
('\u2d6f', '\u2d6f'), ('\u2e2f', '\u2e2f'),
('\u3005', '\u3005'), ('\u3031', '\u3035'),
('\u303b', '\u303b'), ('\u309d', '\u309e'),
('\u30fc', '\u30fe'), ('\ua015', '\ua015'),
('\ua4f8', '\ua4fd'), ('\ua60c', '\ua60c'),
('\ua67f', '\ua67f'), ('\ua717', '\ua71f'),
('\ua770', '\ua770'), ('\ua788', '\ua788'),
('\ua7f8', '\ua7f9'), ('\ua9cf', '\ua9cf'),
('\uaa70', '\uaa70'), ('\uaadd', '\uaadd'),
('\uaaf3', '\uaaf4'), ('\uff70', '\uff70'),
('\uff9e', '\uff9f'), ('\U00016f93', '\U00016f9f')
];
pub fn Lm(c: char) -> bool {
bsearch_range_table(c, Lm_table)
}
static Lo_table : &'static [(char,char)] = &[
('\xaa', '\xaa'), ('\xba', '\xba'),
('\u01bb', '\u01bb'), ('\u01c0', '\u01c3'),
('\u0294', '\u0294'), ('\u05d0', '\u05f2'),
('\u0620', '\u063f'), ('\u0641', '\u064a'),
('\u066e', '\u066f'), ('\u0671', '\u06d3'),
('\u06d5', '\u06d5'), ('\u06ee', '\u06ef'),
('\u06fa', '\u06fc'), ('\u06ff', '\u06ff'),
('\u0710', '\u0710'), ('\u0712', '\u072f'),
('\u074d', '\u07a5'), ('\u07b1', '\u07b1'),
('\u07ca', '\u07ea'), ('\u0800', '\u0815'),
('\u0840', '\u0858'), ('\u08a0', '\u08ac'),
('\u0904', '\u0939'), ('\u093d', '\u093d'),
('\u0950', '\u0950'), ('\u0958', '\u0961'),
('\u0972', '\u097f'), ('\u0985', '\u09b9'),
('\u09bd', '\u09bd'), ('\u09ce', '\u09ce'),
('\u09dc', '\u09e1'), ('\u09f0', '\u09f1'),
('\u0a05', '\u0a39'), ('\u0a59', '\u0a5e'),
('\u0a72', '\u0a74'), ('\u0a85', '\u0ab9'),
('\u0abd', '\u0abd'), ('\u0ad0', '\u0ae1'),
('\u0b05', '\u0b39'), ('\u0b3d', '\u0b3d'),
('\u0b5c', '\u0b61'), ('\u0b71', '\u0b71'),
('\u0b83', '\u0bb9'), ('\u0bd0', '\u0bd0'),
('\u0c05', '\u0c3d'), ('\u0c58', '\u0c61'),
('\u0c85', '\u0cb9'), ('\u0cbd', '\u0cbd'),
('\u0cde', '\u0ce1'), ('\u0cf1', '\u0cf2'),
('\u0d05', '\u0d3d'), ('\u0d4e', '\u0d4e'),
('\u0d60', '\u0d61'), ('\u0d7a', '\u0d7f'),
('\u0d85', '\u0dc6'), ('\u0e01', '\u0e30'),
('\u0e32', '\u0e33'), ('\u0e40', '\u0e45'),
('\u0e81', '\u0eb0'), ('\u0eb2', '\u0eb3'),
('\u0ebd', '\u0ec4'), ('\u0edc', '\u0f00'),
('\u0f40', '\u0f6c'), ('\u0f88', '\u0f8c'),
('\u1000', '\u102a'), ('\u103f', '\u103f'),
('\u1050', '\u1055'), ('\u105a', '\u105d'),
('\u1061', '\u1061'), ('\u1065', '\u1066'),
('\u106e', '\u1070'), ('\u1075', '\u1081'),
('\u108e', '\u108e'), ('\u10d0', '\u10fa'),
('\u10fd', '\u135a'), ('\u1380', '\u138f'),
('\u13a0', '\u13f4'), ('\u1401', '\u166c'),
('\u166f', '\u167f'), ('\u1681', '\u169a'),
('\u16a0', '\u16ea'), ('\u1700', '\u1711'),
('\u1720', '\u1731'), ('\u1740', '\u1751'),
('\u1760', '\u1770'), ('\u1780', '\u17b3'),
('\u17dc', '\u17dc'), ('\u1820', '\u1842'),
('\u1844', '\u18a8'), ('\u18aa', '\u191c'),
('\u1950', '\u19ab'), ('\u19c1', '\u19c7'),
('\u1a00', '\u1a16'), ('\u1a20', '\u1a54'),
('\u1b05', '\u1b33'), ('\u1b45', '\u1b4b'),
('\u1b83', '\u1ba0'), ('\u1bae', '\u1baf'),
('\u1bba', '\u1be5'), ('\u1c00', '\u1c23'),
('\u1c4d', '\u1c4f'), ('\u1c5a', '\u1c77'),
('\u1ce9', '\u1cec'), ('\u1cee', '\u1cf1'),
('\u1cf5', '\u1cf6'), ('\u2135', '\u2138'),
('\u2d30', '\u2d67'), ('\u2d80', '\u2dde'),
('\u3006', '\u3006'), ('\u303c', '\u303c'),
('\u3041', '\u3096'), ('\u309f', '\u309f'),
('\u30a1', '\u30fa'), ('\u30ff', '\u318e'),
('\u31a0', '\u31ba'), ('\u31f0', '\u31ff'),
('\u3400', '\u4db5'), ('\u4e00', '\ua014'),
('\ua016', '\ua48c'), ('\ua4d0', '\ua4f7'),
('\ua500', '\ua60b'), ('\ua610', '\ua61f'),
('\ua62a', '\ua62b'), ('\ua66e', '\ua66e'),
('\ua6a0', '\ua6e5'), ('\ua7fb', '\ua801'),
('\ua803', '\ua805'), ('\ua807', '\ua80a'),
('\ua80c', '\ua822'), ('\ua840', '\ua873'),
('\ua882', '\ua8b3'), ('\ua8f2', '\ua8f7'),
('\ua8fb', '\ua8fb'), ('\ua90a', '\ua925'),
('\ua930', '\ua946'), ('\ua960', '\ua97c'),
('\ua984', '\ua9b2'), ('\uaa00', '\uaa28'),
('\uaa40', '\uaa42'), ('\uaa44', '\uaa4b'),
('\uaa60', '\uaa6f'), ('\uaa71', '\uaa76'),
('\uaa7a', '\uaa7a'), ('\uaa80', '\uaaaf'),
('\uaab1', '\uaab1'), ('\uaab5', '\uaab6'),
('\uaab9', '\uaabd'), ('\uaac0', '\uaac0'),
('\uaac2', '\uaadc'), ('\uaae0', '\uaaea'),
('\uaaf2', '\uaaf2'), ('\uab01', '\uabe2'),
('\uac00', '\ud7fb'), ('\uf900', '\ufad9'),
('\ufb1d', '\ufb1d'), ('\ufb1f', '\ufb28'),
('\ufb2a', '\ufbb1'), ('\ufbd3', '\ufd3d'),
('\ufd50', '\ufdfb'), ('\ufe70', '\ufefc'),
('\uff66', '\uff6f'), ('\uff71', '\uff9d'),
('\uffa0', '\uffdc'), ('\U00010000', '\U000100fa'),
('\U00010280', '\U0001031e'), ('\U00010330', '\U00010340'),
('\U00010342', '\U00010349'), ('\U00010380', '\U0001039d'),
('\U000103a0', '\U000103cf'), ('\U00010450', '\U0001049d'),
('\U00010800', '\U00010855'), ('\U00010900', '\U00010915'),
('\U00010920', '\U00010939'), ('\U00010980', '\U00010a00'),
('\U00010a10', '\U00010a33'), ('\U00010a60', '\U00010a7c'),
('\U00010b00', '\U00010b35'), ('\U00010b40', '\U00010b55'),
('\U00010b60', '\U00010b72'), ('\U00010c00', '\U00010c48'),
('\U00011003', '\U00011037'), ('\U00011083', '\U000110af'),
('\U000110d0', '\U000110e8'), ('\U00011103', '\U00011126'),
('\U00011183', '\U000111b2'), ('\U000111c1', '\U000111c4'),
('\U00011680', '\U000116aa'), ('\U00012000', '\U0001236e'),
('\U00013000', '\U00016f50'), ('\U0001b000', '\U0001b001'),
('\U0001ee00', '\U0001eebb'), ('\U00020000', '\U0002fa1d')
];
pub fn Lo(c: char) -> bool {
bsearch_range_table(c, Lo_table)
}
static Lt_table : &'static [(char,char)] = &[
('\u01c5', '\u01c5'), ('\u01c8', '\u01c8'),
('\u01cb', '\u01cb'), ('\u01f2', '\u01f2'),
('\u1f88', '\u1f8f'), ('\u1f98', '\u1f9f'),
('\u1fa8', '\u1faf'), ('\u1fbc', '\u1fbc'),
('\u1fcc', '\u1fcc'), ('\u1ffc', '\u1ffc')
];
pub fn Lt(c: char) -> bool {
bsearch_range_table(c, Lt_table)
}
static Lu_table : &'static [(char,char)] = &[
('\x41', '\x5a'), ('\xc0', '\xd6'),
('\xd8', '\xde'), ('\u0100', '\u0100'),
('\u0102', '\u0102'), ('\u0104', '\u0104'),
('\u0106', '\u0106'), ('\u0108', '\u0108'),
('\u010a', '\u010a'), ('\u010c', '\u010c'),
('\u010e', '\u010e'), ('\u0110', '\u0110'),
('\u0112', '\u0112'), ('\u0114', '\u0114'),
('\u0116', '\u0116'), ('\u0118', '\u0118'),
('\u011a', '\u011a'), ('\u011c', '\u011c'),
('\u011e', '\u011e'), ('\u0120', '\u0120'),
('\u0122', '\u0122'), ('\u0124', '\u0124'),
('\u0126', '\u0126'), ('\u0128', '\u0128'),
('\u012a', '\u012a'), ('\u012c', '\u012c'),
('\u012e', '\u012e'), ('\u0130', '\u0130'),
('\u0132', '\u0132'), ('\u0134', '\u0134'),
('\u0136', '\u0136'), ('\u0139', '\u0139'),
('\u013b', '\u013b'), ('\u013d', '\u013d'),
('\u013f', '\u013f'), ('\u0141', '\u0141'),
('\u0143', '\u0143'), ('\u0145', '\u0145'),
('\u0147', '\u0147'), ('\u014a', '\u014a'),
('\u014c', '\u014c'), ('\u014e', '\u014e'),
('\u0150', '\u0150'), ('\u0152', '\u0152'),
('\u0154', '\u0154'), ('\u0156', '\u0156'),
('\u0158', '\u0158'), ('\u015a', '\u015a'),
('\u015c', '\u015c'), ('\u015e', '\u015e'),
('\u0160', '\u0160'), ('\u0162', '\u0162'),
('\u0164', '\u0164'), ('\u0166', '\u0166'),
('\u0168', '\u0168'), ('\u016a', '\u016a'),
('\u016c', '\u016c'), ('\u016e', '\u016e'),
('\u0170', '\u0170'), ('\u0172', '\u0172'),
('\u0174', '\u0174'), ('\u0176', '\u0176'),
('\u0178', '\u0179'), ('\u017b', '\u017b'),
('\u017d', '\u017d'), ('\u0181', '\u0182'),
('\u0184', '\u0184'), ('\u0186', '\u0187'),
('\u0189', '\u018b'), ('\u018e', '\u0191'),
('\u0193', '\u0194'), ('\u0196', '\u0198'),
('\u019c', '\u019d'), ('\u019f', '\u01a0'),
('\u01a2', '\u01a2'), ('\u01a4', '\u01a4'),
('\u01a6', '\u01a7'), ('\u01a9', '\u01a9'),
('\u01ac', '\u01ac'), ('\u01ae', '\u01af'),
('\u01b1', '\u01b3'), ('\u01b5', '\u01b5'),
('\u01b7', '\u01b8'), ('\u01bc', '\u01bc'),
('\u01c4', '\u01c4'), ('\u01c7', '\u01c7'),
('\u01ca', '\u01ca'), ('\u01cd', '\u01cd'),
('\u01cf', '\u01cf'), ('\u01d1', '\u01d1'),
('\u01d3', '\u01d3'), ('\u01d5', '\u01d5'),
('\u01d7', '\u01d7'), ('\u01d9', '\u01d9'),
('\u01db', '\u01db'), ('\u01de', '\u01de'),
('\u01e0', '\u01e0'), ('\u01e2', '\u01e2'),
('\u01e4', '\u01e4'), ('\u01e6', '\u01e6'),
('\u01e8', '\u01e8'), ('\u01ea', '\u01ea'),
('\u01ec', '\u01ec'), ('\u01ee', '\u01ee'),
('\u01f1', '\u01f1'), ('\u01f4', '\u01f4'),
('\u01f6', '\u01f8'), ('\u01fa', '\u01fa'),
('\u01fc', '\u01fc'), ('\u01fe', '\u01fe'),
('\u0200', '\u0200'), ('\u0202', '\u0202'),
('\u0204', '\u0204'), ('\u0206', '\u0206'),
('\u0208', '\u0208'), ('\u020a', '\u020a'),
('\u020c', '\u020c'), ('\u020e', '\u020e'),
('\u0210', '\u0210'), ('\u0212', '\u0212'),
('\u0214', '\u0214'), ('\u0216', '\u0216'),
('\u0218', '\u0218'), ('\u021a', '\u021a'),
('\u021c', '\u021c'), ('\u021e', '\u021e'),
('\u0220', '\u0220'), ('\u0222', '\u0222'),
('\u0224', '\u0224'), ('\u0226', '\u0226'),
('\u0228', '\u0228'), ('\u022a', '\u022a'),
('\u022c', '\u022c'), ('\u022e', '\u022e'),
('\u0230', '\u0230'), ('\u0232', '\u0232'),
('\u023a', '\u023b'), ('\u023d', '\u023e'),
('\u0241', '\u0241'), ('\u0243', '\u0246'),
('\u0248', '\u0248'), ('\u024a', '\u024a'),
('\u024c', '\u024c'), ('\u024e', '\u024e'),
('\u0370', '\u0370'), ('\u0372', '\u0372'),
('\u0376', '\u0376'), ('\u0386', '\u0386'),
('\u0388', '\u038f'), ('\u0391', '\u03ab'),
('\u03cf', '\u03cf'), ('\u03d2', '\u03d4'),
('\u03d8', '\u03d8'), ('\u03da', '\u03da'),
('\u03dc', '\u03dc'), ('\u03de', '\u03de'),
('\u03e0', '\u03e0'), ('\u03e2', '\u03e2'),
('\u03e4', '\u03e4'), ('\u03e6', '\u03e6'),
('\u03e8', '\u03e8'), ('\u03ea', '\u03ea'),
('\u03ec', '\u03ec'), ('\u03ee', '\u03ee'),
('\u03f4', '\u03f4'), ('\u03f7', '\u03f7'),
('\u03f9', '\u03fa'), ('\u03fd', '\u042f'),
('\u0460', '\u0460'), ('\u0462', '\u0462'),
('\u0464', '\u0464'), ('\u0466', '\u0466'),
('\u0468', '\u0468'), ('\u046a', '\u046a'),
('\u046c', '\u046c'), ('\u046e', '\u046e'),
('\u0470', '\u0470'), ('\u0472', '\u0472'),
('\u0474', '\u0474'), ('\u0476', '\u0476'),
('\u0478', '\u0478'), ('\u047a', '\u047a'),
('\u047c', '\u047c'), ('\u047e', '\u047e'),
('\u0480', '\u0480'), ('\u048a', '\u048a'),
('\u048c', '\u048c'), ('\u048e', '\u048e'),
('\u0490', '\u0490'), ('\u0492', '\u0492'),
('\u0494', '\u0494'), ('\u0496', '\u0496'),
('\u0498', '\u0498'), ('\u049a', '\u049a'),
('\u049c', '\u049c'), ('\u049e', '\u049e'),
('\u04a0', '\u04a0'), ('\u04a2', '\u04a2'),
('\u04a4', '\u04a4'), ('\u04a6', '\u04a6'),
('\u04a8', '\u04a8'), ('\u04aa', '\u04aa'),
('\u04ac', '\u04ac'), ('\u04ae', '\u04ae'),
('\u04b0', '\u04b0'), ('\u04b2', '\u04b2'),
('\u04b4', '\u04b4'), ('\u04b6', '\u04b6'),
('\u04b8', '\u04b8'), ('\u04ba', '\u04ba'),
('\u04bc', '\u04bc'), ('\u04be', '\u04be'),
('\u04c0', '\u04c1'), ('\u04c3', '\u04c3'),
('\u04c5', '\u04c5'), ('\u04c7', '\u04c7'),
('\u04c9', '\u04c9'), ('\u04cb', '\u04cb'),
('\u04cd', '\u04cd'), ('\u04d0', '\u04d0'),
('\u04d2', '\u04d2'), ('\u04d4', '\u04d4'),
('\u04d6', '\u04d6'), ('\u04d8', '\u04d8'),
('\u04da', '\u04da'), ('\u04dc', '\u04dc'),
('\u04de', '\u04de'), ('\u04e0', '\u04e0'),
('\u04e2', '\u04e2'), ('\u04e4', '\u04e4'),
('\u04e6', '\u04e6'), ('\u04e8', '\u04e8'),
('\u04ea', '\u04ea'), ('\u04ec', '\u04ec'),
('\u04ee', '\u04ee'), ('\u04f0', '\u04f0'),
('\u04f2', '\u04f2'), ('\u04f4', '\u04f4'),
('\u04f6', '\u04f6'), ('\u04f8', '\u04f8'),
('\u04fa', '\u04fa'), ('\u04fc', '\u04fc'),
('\u04fe', '\u04fe'), ('\u0500', '\u0500'),
('\u0502', '\u0502'), ('\u0504', '\u0504'),
('\u0506', '\u0506'), ('\u0508', '\u0508'),
('\u050a', '\u050a'), ('\u050c', '\u050c'),
('\u050e', '\u050e'), ('\u0510', '\u0510'),
('\u0512', '\u0512'), ('\u0514', '\u0514'),
('\u0516', '\u0516'), ('\u0518', '\u0518'),
('\u051a', '\u051a'), ('\u051c', '\u051c'),
('\u051e', '\u051e'), ('\u0520', '\u0520'),
('\u0522', '\u0522'), ('\u0524', '\u0524'),
('\u0526', '\u0526'), ('\u0531', '\u0556'),
('\u10a0', '\u10cd'), ('\u1e00', '\u1e00'),
('\u1e02', '\u1e02'), ('\u1e04', '\u1e04'),
('\u1e06', '\u1e06'), ('\u1e08', '\u1e08'),
('\u1e0a', '\u1e0a'), ('\u1e0c', '\u1e0c'),
('\u1e0e', '\u1e0e'), ('\u1e10', '\u1e10'),
('\u1e12', '\u1e12'), ('\u1e14', '\u1e14'),
('\u1e16', '\u1e16'), ('\u1e18', '\u1e18'),
('\u1e1a', '\u1e1a'), ('\u1e1c', '\u1e1c'),
('\u1e1e', '\u1e1e'), ('\u1e20', '\u1e20'),
('\u1e22', '\u1e22'), ('\u1e24', '\u1e24'),
('\u1e26', '\u1e26'), ('\u1e28', '\u1e28'),
('\u1e2a', '\u1e2a'), ('\u1e2c', '\u1e2c'),
('\u1e2e', '\u1e2e'), ('\u1e30', '\u1e30'),
('\u1e32', '\u1e32'), ('\u1e34', '\u1e34'),
('\u1e36', '\u1e36'), ('\u1e38', '\u1e38'),
('\u1e3a', '\u1e3a'), ('\u1e3c', '\u1e3c'),
('\u1e3e', '\u1e3e'), ('\u1e40', '\u1e40'),
('\u1e42', '\u1e42'), ('\u1e44', '\u1e44'),
('\u1e46', '\u1e46'), ('\u1e48', '\u1e48'),
('\u1e4a', '\u1e4a'), ('\u1e4c', '\u1e4c'),
('\u1e4e', '\u1e4e'), ('\u1e50', '\u1e50'),
('\u1e52', '\u1e52'), ('\u1e54', '\u1e54'),
('\u1e56', '\u1e56'), ('\u1e58', '\u1e58'),
('\u1e5a', '\u1e5a'), ('\u1e5c', '\u1e5c'),
('\u1e5e', '\u1e5e'), ('\u1e60', '\u1e60'),
('\u1e62', '\u1e62'), ('\u1e64', '\u1e64'),
('\u1e66', '\u1e66'), ('\u1e68', '\u1e68'),
('\u1e6a', '\u1e6a'), ('\u1e6c', '\u1e6c'),
('\u1e6e', '\u1e6e'), ('\u1e70', '\u1e70'),
('\u1e72', '\u1e72'), ('\u1e74', '\u1e74'),
('\u1e76', '\u1e76'), ('\u1e78', '\u1e78'),
('\u1e7a', '\u1e7a'), ('\u1e7c', '\u1e7c'),
('\u1e7e', '\u1e7e'), ('\u1e80', '\u1e80'),
('\u1e82', '\u1e82'), ('\u1e84', '\u1e84'),
('\u1e86', '\u1e86'), ('\u1e88', '\u1e88'),
('\u1e8a', '\u1e8a'), ('\u1e8c', '\u1e8c'),
('\u1e8e', '\u1e8e'), ('\u1e90', '\u1e90'),
('\u1e92', '\u1e92'), ('\u1e94', '\u1e94'),
('\u1e9e', '\u1e9e'), ('\u1ea0', '\u1ea0'),
('\u1ea2', '\u1ea2'), ('\u1ea4', '\u1ea4'),
('\u1ea6', '\u1ea6'), ('\u1ea8', '\u1ea8'),
('\u1eaa', '\u1eaa'), ('\u1eac', '\u1eac'),
('\u1eae', '\u1eae'), ('\u1eb0', '\u1eb0'),
('\u1eb2', '\u1eb2'), ('\u1eb4', '\u1eb4'),
('\u1eb6', '\u1eb6'), ('\u1eb8', '\u1eb8'),
('\u1eba', '\u1eba'), ('\u1ebc', '\u1ebc'),
('\u1ebe', '\u1ebe'), ('\u1ec0', '\u1ec0'),
('\u1ec2', '\u1ec2'), ('\u1ec4', '\u1ec4'),
('\u1ec6', '\u1ec6'), ('\u1ec8', '\u1ec8'),
('\u1eca', '\u1eca'), ('\u1ecc', '\u1ecc'),
('\u1ece', '\u1ece'), ('\u1ed0', '\u1ed0'),
('\u1ed2', '\u1ed2'), ('\u1ed4', '\u1ed4'),
('\u1ed6', '\u1ed6'), ('\u1ed8', '\u1ed8'),
('\u1eda', '\u1eda'), ('\u1edc', '\u1edc'),
('\u1ede', '\u1ede'), ('\u1ee0', '\u1ee0'),
('\u1ee2', '\u1ee2'), ('\u1ee4', '\u1ee4'),
('\u1ee6', '\u1ee6'), ('\u1ee8', '\u1ee8'),
('\u1eea', '\u1eea'), ('\u1eec', '\u1eec'),
('\u1eee', '\u1eee'), ('\u1ef0', '\u1ef0'),
('\u1ef2', '\u1ef2'), ('\u1ef4', '\u1ef4'),
('\u1ef6', '\u1ef6'), ('\u1ef8', '\u1ef8'),
('\u1efa', '\u1efa'), ('\u1efc', '\u1efc'),
('\u1efe', '\u1efe'), ('\u1f08', '\u1f0f'),
('\u1f18', '\u1f1d'), ('\u1f28', '\u1f2f'),
('\u1f38', '\u1f3f'), ('\u1f48', '\u1f4d'),
('\u1f59', '\u1f5f'), ('\u1f68', '\u1f6f'),
('\u1fb8', '\u1fbb'), ('\u1fc8', '\u1fcb'),
('\u1fd8', '\u1fdb'), ('\u1fe8', '\u1fec'),
('\u1ff8', '\u1ffb'), ('\u2102', '\u2102'),
('\u2107', '\u2107'), ('\u210b', '\u210d'),
('\u2110', '\u2112'), ('\u2115', '\u2115'),
('\u2119', '\u211d'), ('\u2124', '\u2124'),
('\u2126', '\u2126'), ('\u2128', '\u2128'),
('\u212a', '\u212d'), ('\u2130', '\u2133'),
('\u213e', '\u213f'), ('\u2145', '\u2145'),
('\u2183', '\u2183'), ('\u2c00', '\u2c2e'),
('\u2c60', '\u2c60'), ('\u2c62', '\u2c64'),
('\u2c67', '\u2c67'), ('\u2c69', '\u2c69'),
('\u2c6b', '\u2c6b'), ('\u2c6d', '\u2c70'),
('\u2c72', '\u2c72'), ('\u2c75', '\u2c75'),
('\u2c7e', '\u2c80'), ('\u2c82', '\u2c82'),
('\u2c84', '\u2c84'), ('\u2c86', '\u2c86'),
('\u2c88', '\u2c88'), ('\u2c8a', '\u2c8a'),
('\u2c8c', '\u2c8c'), ('\u2c8e', '\u2c8e'),
('\u2c90', '\u2c90'), ('\u2c92', '\u2c92'),
('\u2c94', '\u2c94'), ('\u2c96', '\u2c96'),
('\u2c98', '\u2c98'), ('\u2c9a', '\u2c9a'),
('\u2c9c', '\u2c9c'), ('\u2c9e', '\u2c9e'),
('\u2ca0', '\u2ca0'), ('\u2ca2', '\u2ca2'),
('\u2ca4', '\u2ca4'), ('\u2ca6', '\u2ca6'),
('\u2ca8', '\u2ca8'), ('\u2caa', '\u2caa'),
('\u2cac', '\u2cac'), ('\u2cae', '\u2cae'),
('\u2cb0', '\u2cb0'), ('\u2cb2', '\u2cb2'),
('\u2cb4', '\u2cb4'), ('\u2cb6', '\u2cb6'),
('\u2cb8', '\u2cb8'), ('\u2cba', '\u2cba'),
('\u2cbc', '\u2cbc'), ('\u2cbe', '\u2cbe'),
('\u2cc0', '\u2cc0'), ('\u2cc2', '\u2cc2'),
('\u2cc4', '\u2cc4'), ('\u2cc6', '\u2cc6'),
('\u2cc8', '\u2cc8'), ('\u2cca', '\u2cca'),
('\u2ccc', '\u2ccc'), ('\u2cce', '\u2cce'),
('\u2cd0', '\u2cd0'), ('\u2cd2', '\u2cd2'),
('\u2cd4', '\u2cd4'), ('\u2cd6', '\u2cd6'),
('\u2cd8', '\u2cd8'), ('\u2cda', '\u2cda'),
('\u2cdc', '\u2cdc'), ('\u2cde', '\u2cde'),
('\u2ce0', '\u2ce0'), ('\u2ce2', '\u2ce2'),
('\u2ceb', '\u2ceb'), ('\u2ced', '\u2ced'),
('\u2cf2', '\u2cf2'), ('\ua640', '\ua640'),
('\ua642', '\ua642'), ('\ua644', '\ua644'),
('\ua646', '\ua646'), ('\ua648', '\ua648'),
('\ua64a', '\ua64a'), ('\ua64c', '\ua64c'),
('\ua64e', '\ua64e'), ('\ua650', '\ua650'),
('\ua652', '\ua652'), ('\ua654', '\ua654'),
('\ua656', '\ua656'), ('\ua658', '\ua658'),
('\ua65a', '\ua65a'), ('\ua65c', '\ua65c'),
('\ua65e', '\ua65e'), ('\ua660', '\ua660'),
('\ua662', '\ua662'), ('\ua664', '\ua664'),
('\ua666', '\ua666'), ('\ua668', '\ua668'),
('\ua66a', '\ua66a'), ('\ua66c', '\ua66c'),
('\ua680', '\ua680'), ('\ua682', '\ua682'),
('\ua684', '\ua684'), ('\ua686', '\ua686'),
('\ua688', '\ua688'), ('\ua68a', '\ua68a'),
('\ua68c', '\ua68c'), ('\ua68e', '\ua68e'),
('\ua690', '\ua690'), ('\ua692', '\ua692'),
('\ua694', '\ua694'), ('\ua696', '\ua696'),
('\ua722', '\ua722'), ('\ua724', '\ua724'),
('\ua726', '\ua726'), ('\ua728', '\ua728'),
('\ua72a', '\ua72a'), ('\ua72c', '\ua72c'),
('\ua72e', '\ua72e'), ('\ua732', '\ua732'),
('\ua734', '\ua734'), ('\ua736', '\ua736'),
('\ua738', '\ua738'), ('\ua73a', '\ua73a'),
('\ua73c', '\ua73c'), ('\ua73e', '\ua73e'),
('\ua740', '\ua740'), ('\ua742', '\ua742'),
('\ua744', '\ua744'), ('\ua746', '\ua746'),
('\ua748', '\ua748'), ('\ua74a', '\ua74a'),
('\ua74c', '\ua74c'), ('\ua74e', '\ua74e'),
('\ua750', '\ua750'), ('\ua752', '\ua752'),
('\ua754', '\ua754'), ('\ua756', '\ua756'),
('\ua758', '\ua758'), ('\ua75a', '\ua75a'),
('\ua75c', '\ua75c'), ('\ua75e', '\ua75e'),
('\ua760', '\ua760'), ('\ua762', '\ua762'),
('\ua764', '\ua764'), ('\ua766', '\ua766'),
('\ua768', '\ua768'), ('\ua76a', '\ua76a'),
('\ua76c', '\ua76c'), ('\ua76e', '\ua76e'),
('\ua779', '\ua779'), ('\ua77b', '\ua77b'),
('\ua77d', '\ua77e'), ('\ua780', '\ua780'),
('\ua782', '\ua782'), ('\ua784', '\ua784'),
('\ua786', '\ua786'), ('\ua78b', '\ua78b'),
('\ua78d', '\ua78d'), ('\ua790', '\ua790'),
('\ua792', '\ua792'), ('\ua7a0', '\ua7a0'),
('\ua7a2', '\ua7a2'), ('\ua7a4', '\ua7a4'),
('\ua7a6', '\ua7a6'), ('\ua7a8', '\ua7a8'),
('\ua7aa', '\ua7aa'), ('\uff21', '\uff3a'),
('\U00010400', '\U00010427'), ('\U0001d400', '\U0001d419'),
('\U0001d434', '\U0001d44d'), ('\U0001d468', '\U0001d481'),
('\U0001d49c', '\U0001d4b5'), ('\U0001d4d0', '\U0001d4e9'),
('\U0001d504', '\U0001d51c'), ('\U0001d538', '\U0001d550'),
('\U0001d56c', '\U0001d585'), ('\U0001d5a0', '\U0001d5b9'),
('\U0001d5d4', '\U0001d5ed'), ('\U0001d608', '\U0001d621'),
('\U0001d63c', '\U0001d655'), ('\U0001d670', '\U0001d689'),
('\U0001d6a8', '\U0001d6c0'), ('\U0001d6e2', '\U0001d6fa'),
('\U0001d71c', '\U0001d734'), ('\U0001d756', '\U0001d76e'),
('\U0001d790', '\U0001d7a8'), ('\U0001d7ca', '\U0001d7ca')
];
pub fn Lu(c: char) -> bool {
bsearch_range_table(c, Lu_table)
}
static Mc_table : &'static [(char,char)] = &[
('\u0903', '\u0903'), ('\u093b', '\u093b'),
('\u093e', '\u0940'), ('\u0949', '\u094c'),
('\u094e', '\u094f'), ('\u0982', '\u0983'),
('\u09be', '\u09c0'), ('\u09c7', '\u09cc'),
('\u09d7', '\u09d7'), ('\u0a03', '\u0a03'),
('\u0a3e', '\u0a40'), ('\u0a83', '\u0a83'),
('\u0abe', '\u0ac0'), ('\u0ac9', '\u0acc'),
('\u0b02', '\u0b03'), ('\u0b3e', '\u0b3e'),
('\u0b40', '\u0b40'), ('\u0b47', '\u0b4c'),
('\u0b57', '\u0b57'), ('\u0bbe', '\u0bbf'),
('\u0bc1', '\u0bcc'), ('\u0bd7', '\u0bd7'),
('\u0c01', '\u0c03'), ('\u0c41', '\u0c44'),
('\u0c82', '\u0c83'), ('\u0cbe', '\u0cbe'),
('\u0cc0', '\u0cc4'), ('\u0cc7', '\u0ccb'),
('\u0cd5', '\u0cd6'), ('\u0d02', '\u0d03'),
('\u0d3e', '\u0d40'), ('\u0d46', '\u0d4c'),
('\u0d57', '\u0d57'), ('\u0d82', '\u0d83'),
('\u0dcf', '\u0dd1'), ('\u0dd8', '\u0df3'),
('\u0f3e', '\u0f3f'), ('\u0f7f', '\u0f7f'),
('\u102b', '\u102c'), ('\u1031', '\u1031'),
('\u1038', '\u1038'), ('\u103b', '\u103c'),
('\u1056', '\u1057'), ('\u1062', '\u1064'),
('\u1067', '\u106d'), ('\u1083', '\u1084'),
('\u1087', '\u108c'), ('\u108f', '\u108f'),
('\u109a', '\u109c'), ('\u17b6', '\u17b6'),
('\u17be', '\u17c5'), ('\u17c7', '\u17c8'),
('\u1923', '\u1926'), ('\u1929', '\u1931'),
('\u1933', '\u1938'), ('\u19b0', '\u19c0'),
('\u19c8', '\u19c9'), ('\u1a19', '\u1a1b'),
('\u1a55', '\u1a55'), ('\u1a57', '\u1a57'),
('\u1a61', '\u1a61'), ('\u1a63', '\u1a64'),
('\u1a6d', '\u1a72'), ('\u1b04', '\u1b04'),
('\u1b35', '\u1b35'), ('\u1b3b', '\u1b3b'),
('\u1b3d', '\u1b41'), ('\u1b43', '\u1b44'),
('\u1b82', '\u1b82'), ('\u1ba1', '\u1ba1'),
('\u1ba6', '\u1ba7'), ('\u1baa', '\u1baa'),
('\u1bac', '\u1bad'), ('\u1be7', '\u1be7'),
('\u1bea', '\u1bec'), ('\u1bee', '\u1bee'),
('\u1bf2', '\u1bf3'), ('\u1c24', '\u1c2b'),
('\u1c34', '\u1c35'), ('\u1ce1', '\u1ce1'),
('\u1cf2', '\u1cf3'), ('\u302e', '\u302f'),
('\ua823', '\ua824'), ('\ua827', '\ua827'),
('\ua880', '\ua881'), ('\ua8b4', '\ua8c3'),
('\ua952', '\ua953'), ('\ua983', '\ua983'),
('\ua9b4', '\ua9b5'), ('\ua9ba', '\ua9bb'),
('\ua9bd', '\ua9c0'), ('\uaa2f', '\uaa30'),
('\uaa33', '\uaa34'), ('\uaa4d', '\uaa4d'),
('\uaa7b', '\uaa7b'), ('\uaaeb', '\uaaeb'),
('\uaaee', '\uaaef'), ('\uaaf5', '\uaaf5'),
('\uabe3', '\uabe4'), ('\uabe6', '\uabe7'),
('\uabe9', '\uabea'), ('\uabec', '\uabec'),
('\U00011000', '\U00011000'), ('\U00011002', '\U00011002'),
('\U00011082', '\U00011082'), ('\U000110b0', '\U000110b2'),
('\U000110b7', '\U000110b8'), ('\U0001112c', '\U0001112c'),
('\U00011182', '\U00011182'), ('\U000111b3', '\U000111b5'),
('\U000111bf', '\U000111c0'), ('\U000116ac', '\U000116ac'),
('\U000116ae', '\U000116af'), ('\U000116b6', '\U000116b6'),
('\U00016f51', '\U00016f7e'), ('\U0001d165', '\U0001d166'),
('\U0001d16d', '\U0001d172')
];
pub fn Mc(c: char) -> bool {
bsearch_range_table(c, Mc_table)
}
static Me_table : &'static [(char,char)] = &[
('\u0488', '\u0489'), ('\u20dd', '\u20e0'),
('\u20e2', '\u20e4'), ('\ua670', '\ua672')
];
pub fn Me(c: char) -> bool {
bsearch_range_table(c, Me_table)
}
static Mn_table : &'static [(char,char)] = &[
('\u0300', '\u036f'), ('\u0483', '\u0487'),
('\u0591', '\u05bd'), ('\u05bf', '\u05bf'),
('\u05c1', '\u05c2'), ('\u05c4', '\u05c5'),
('\u05c7', '\u05c7'), ('\u0610', '\u061a'),
('\u064b', '\u065f'), ('\u0670', '\u0670'),
('\u06d6', '\u06dc'), ('\u06df', '\u06e4'),
('\u06e7', '\u06e8'), ('\u06ea', '\u06ed'),
('\u0711', '\u0711'), ('\u0730', '\u074a'),
('\u07a6', '\u07b0'), ('\u07eb', '\u07f3'),
('\u0816', '\u0819'), ('\u081b', '\u0823'),
('\u0825', '\u0827'), ('\u0829', '\u082d'),
('\u0859', '\u085b'), ('\u08e4', '\u0902'),
('\u093a', '\u093a'), ('\u093c', '\u093c'),
('\u0941', '\u0948'), ('\u094d', '\u094d'),
('\u0951', '\u0957'), ('\u0962', '\u0963'),
('\u0981', '\u0981'), ('\u09bc', '\u09bc'),
('\u09c1', '\u09c4'), ('\u09cd', '\u09cd'),
('\u09e2', '\u09e3'), ('\u0a01', '\u0a02'),
('\u0a3c', '\u0a3c'), ('\u0a41', '\u0a51'),
('\u0a70', '\u0a71'), ('\u0a75', '\u0a82'),
('\u0abc', '\u0abc'), ('\u0ac1', '\u0ac8'),
('\u0acd', '\u0acd'), ('\u0ae2', '\u0ae3'),
('\u0b01', '\u0b01'), ('\u0b3c', '\u0b3c'),
('\u0b3f', '\u0b3f'), ('\u0b41', '\u0b44'),
('\u0b4d', '\u0b56'), ('\u0b62', '\u0b63'),
('\u0b82', '\u0b82'), ('\u0bc0', '\u0bc0'),
('\u0bcd', '\u0bcd'), ('\u0c3e', '\u0c40'),
('\u0c46', '\u0c56'), ('\u0c62', '\u0c63'),
('\u0cbc', '\u0cbc'), ('\u0cbf', '\u0cbf'),
('\u0cc6', '\u0cc6'), ('\u0ccc', '\u0ccd'),
('\u0ce2', '\u0ce3'), ('\u0d41', '\u0d44'),
('\u0d4d', '\u0d4d'), ('\u0d62', '\u0d63'),
('\u0dca', '\u0dca'), ('\u0dd2', '\u0dd6'),
('\u0e31', '\u0e31'), ('\u0e34', '\u0e3a'),
('\u0e47', '\u0e4e'), ('\u0eb1', '\u0eb1'),
('\u0eb4', '\u0ebc'), ('\u0ec8', '\u0ecd'),
('\u0f18', '\u0f19'), ('\u0f35', '\u0f35'),
('\u0f37', '\u0f37'), ('\u0f39', '\u0f39'),
('\u0f71', '\u0f7e'), ('\u0f80', '\u0f84'),
('\u0f86', '\u0f87'), ('\u0f8d', '\u0fbc'),
('\u0fc6', '\u0fc6'), ('\u102d', '\u1030'),
('\u1032', '\u1037'), ('\u1039', '\u103a'),
('\u103d', '\u103e'), ('\u1058', '\u1059'),
('\u105e', '\u1060'), ('\u1071', '\u1074'),
('\u1082', '\u1082'), ('\u1085', '\u1086'),
('\u108d', '\u108d'), ('\u109d', '\u109d'),
('\u135d', '\u135f'), ('\u1712', '\u1714'),
('\u1732', '\u1734'), ('\u1752', '\u1753'),
('\u1772', '\u1773'), ('\u17b4', '\u17b5'),
('\u17b7', '\u17bd'), ('\u17c6', '\u17c6'),
('\u17c9', '\u17d3'), ('\u17dd', '\u17dd'),
('\u180b', '\u180d'), ('\u18a9', '\u18a9'),
('\u1920', '\u1922'), ('\u1927', '\u1928'),
('\u1932', '\u1932'), ('\u1939', '\u193b'),
('\u1a17', '\u1a18'), ('\u1a56', '\u1a56'),
('\u1a58', '\u1a60'), ('\u1a62', '\u1a62'),
('\u1a65', '\u1a6c'), ('\u1a73', '\u1a7f'),
('\u1b00', '\u1b03'), ('\u1b34', '\u1b34'),
('\u1b36', '\u1b3a'), ('\u1b3c', '\u1b3c'),
('\u1b42', '\u1b42'), ('\u1b6b', '\u1b73'),
('\u1b80', '\u1b81'), ('\u1ba2', '\u1ba5'),
('\u1ba8', '\u1ba9'), ('\u1bab', '\u1bab'),
('\u1be6', '\u1be6'), ('\u1be8', '\u1be9'),
('\u1bed', '\u1bed'), ('\u1bef', '\u1bf1'),
('\u1c2c', '\u1c33'), ('\u1c36', '\u1c37'),
('\u1cd0', '\u1cd2'), ('\u1cd4', '\u1ce0'),
('\u1ce2', '\u1ce8'), ('\u1ced', '\u1ced'),
('\u1cf4', '\u1cf4'), ('\u1dc0', '\u1dff'),
('\u20d0', '\u20dc'), ('\u20e1', '\u20e1'),
('\u20e5', '\u20f0'), ('\u2cef', '\u2cf1'),
('\u2d7f', '\u2d7f'), ('\u2de0', '\u2dff'),
('\u302a', '\u302d'), ('\u3099', '\u309a'),
('\ua66f', '\ua66f'), ('\ua674', '\ua67d'),
('\ua69f', '\ua69f'), ('\ua6f0', '\ua6f1'),
('\ua802', '\ua802'), ('\ua806', '\ua806'),
('\ua80b', '\ua80b'), ('\ua825', '\ua826'),
('\ua8c4', '\ua8c4'), ('\ua8e0', '\ua8f1'),
('\ua926', '\ua92d'), ('\ua947', '\ua951'),
('\ua980', '\ua982'), ('\ua9b3', '\ua9b3'),
('\ua9b6', '\ua9b9'), ('\ua9bc', '\ua9bc'),
('\uaa29', '\uaa2e'), ('\uaa31', '\uaa32'),
('\uaa35', '\uaa36'), ('\uaa43', '\uaa43'),
('\uaa4c', '\uaa4c'), ('\uaab0', '\uaab0'),
('\uaab2', '\uaab4'), ('\uaab7', '\uaab8'),
('\uaabe', '\uaabf'), ('\uaac1', '\uaac1'),
('\uaaec', '\uaaed'), ('\uaaf6', '\uaaf6'),
('\uabe5', '\uabe5'), ('\uabe8', '\uabe8'),
('\uabed', '\uabed'), ('\ufb1e', '\ufb1e'),
('\ufe00', '\ufe0f'), ('\ufe20', '\ufe26'),
('\U000101fd', '\U000101fd'), ('\U00010a01', '\U00010a0f'),
('\U00010a38', '\U00010a3f'), ('\U00011001', '\U00011001'),
('\U00011038', '\U00011046'), ('\U00011080', '\U00011081'),
('\U000110b3', '\U000110b6'), ('\U000110b9', '\U000110ba'),
('\U00011100', '\U00011102'), ('\U00011127', '\U0001112b'),
('\U0001112d', '\U00011134'), ('\U00011180', '\U00011181'),
('\U000111b6', '\U000111be'), ('\U000116ab', '\U000116ab'),
('\U000116ad', '\U000116ad'), ('\U000116b0', '\U000116b5'),
('\U000116b7', '\U000116b7'), ('\U00016f8f', '\U00016f92'),
('\U0001d167', '\U0001d169'), ('\U0001d17b', '\U0001d182'),
('\U0001d185', '\U0001d18b'), ('\U0001d1aa', '\U0001d1ad'),
('\U0001d242', '\U0001d244'), ('\U000e0100', '\U000e01ef')
];
pub fn Mn(c: char) -> bool {
bsearch_range_table(c, Mn_table)
}
static Nd_table : &'static [(char,char)] = &[
('\x30', '\x39'), ('\u0660', '\u0669'),
('\u06f0', '\u06f9'), ('\u07c0', '\u07c9'),