forked from DebugST/STGraphemeSplitter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
STGraphemeSplitter.cs
3438 lines (3389 loc) · 279 KB
/
STGraphemeSplitter.cs
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
/*
MIT License
Copyright (c) 2021 DebugST@crystal_lz
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Author: DebugST
GitHub: https://github.com/DebugST/
Thanks: [netero](https://github.com/0x54164)
Date: 2021-11-21
*/
namespace ST.Library.Text
{
class STGraphemeSplitter
{
public delegate void EachVoidCallBack(string strText, int nIndex, int nLen);
public delegate bool EachBoolCallBack(string strText, int nIndex, int nLen);
private struct RangeInfo
{
public int Start;
public int End;
public int Type;
}
// The following variable values do not have a fixed value. Just a FLAG. Just like enumeration.
private const int Other = 0;
private const int CR = 1;
private const int LF = 2;
private const int Control = 3;
private const int Extend = 4;
private const int Regional_Indicator = 5;
private const int SpacingMark = 6;
private const int L = 7;
private const int V = 8;
private const int T = 9;
private const int LV = 10;
private const int LVT = 11;
private const int Prepend = 12;
private const int E_Base = 13;
private const int E_Modifier = 14;
private const int ZWJ = 15;
private const int Glue_After_Zwj = 16;
private const int E_Base_GAZ = 17;
private const int Extended_Pictographic = 18;
private static int[] m_arr_cache_break_type;
private static Dictionary<int, int> m_dic_cache_break_type;
private static List<RangeInfo> m_lst_code_range = new List<RangeInfo>();
static STGraphemeSplitter() {
// Cc [10] <control-0000>..<control-0009>
m_lst_code_range.Add(new RangeInfo() { Start = 0x00000, End = 0x00009, Type = Control });
// Cc [2] <control-000B>..<control-000C>
m_lst_code_range.Add(new RangeInfo() { Start = 0x0000B, End = 0x0000C, Type = Control });
// Cc [18] <control-000E>..<control-001F>
m_lst_code_range.Add(new RangeInfo() { Start = 0x0000E, End = 0x0001F, Type = Control });
// Cc [33] <control-007F>..<control-009F>
m_lst_code_range.Add(new RangeInfo() { Start = 0x0007F, End = 0x0009F, Type = Control });
// Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
m_lst_code_range.Add(new RangeInfo() { Start = 0x00300, End = 0x0036F, Type = Extend });
// Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00483, End = 0x00487, Type = Extend });
// Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x00488, End = 0x00489, Type = Extend });
// Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
m_lst_code_range.Add(new RangeInfo() { Start = 0x00591, End = 0x005BD, Type = Extend });
// Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
m_lst_code_range.Add(new RangeInfo() { Start = 0x005C1, End = 0x005C2, Type = Extend });
// Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
m_lst_code_range.Add(new RangeInfo() { Start = 0x005C4, End = 0x005C5, Type = Extend });
// Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00600, End = 0x00605, Type = Prepend });
// Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00610, End = 0x0061A, Type = Extend });
// Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x0064B, End = 0x0065F, Type = Extend });
// Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
m_lst_code_range.Add(new RangeInfo() { Start = 0x006D6, End = 0x006DC, Type = Extend });
// Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
m_lst_code_range.Add(new RangeInfo() { Start = 0x006DF, End = 0x006E4, Type = Extend });
// Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
m_lst_code_range.Add(new RangeInfo() { Start = 0x006E7, End = 0x006E8, Type = Extend });
// Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
m_lst_code_range.Add(new RangeInfo() { Start = 0x006EA, End = 0x006ED, Type = Extend });
// Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
m_lst_code_range.Add(new RangeInfo() { Start = 0x00730, End = 0x0074A, Type = Extend });
// Mn [11] THAANA ABAFILI..THAANA SUKUN
m_lst_code_range.Add(new RangeInfo() { Start = 0x007A6, End = 0x007B0, Type = Extend });
// Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x007EB, End = 0x007F3, Type = Extend });
// Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
m_lst_code_range.Add(new RangeInfo() { Start = 0x00816, End = 0x00819, Type = Extend });
// Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
m_lst_code_range.Add(new RangeInfo() { Start = 0x0081B, End = 0x00823, Type = Extend });
// Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x00825, End = 0x00827, Type = Extend });
// Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00829, End = 0x0082D, Type = Extend });
// Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00859, End = 0x0085B, Type = Extend });
// Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00890, End = 0x00891, Type = Prepend });
// Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00898, End = 0x0089F, Type = Extend });
// Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
m_lst_code_range.Add(new RangeInfo() { Start = 0x008CA, End = 0x008E1, Type = Extend });
// Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
m_lst_code_range.Add(new RangeInfo() { Start = 0x008E3, End = 0x00902, Type = Extend });
// Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x0093E, End = 0x00940, Type = SpacingMark });
// Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00941, End = 0x00948, Type = Extend });
// Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00949, End = 0x0094C, Type = SpacingMark });
// Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
m_lst_code_range.Add(new RangeInfo() { Start = 0x0094E, End = 0x0094F, Type = SpacingMark });
// Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00951, End = 0x00957, Type = Extend });
// Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00962, End = 0x00963, Type = Extend });
// Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00982, End = 0x00983, Type = SpacingMark });
// Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x009BF, End = 0x009C0, Type = SpacingMark });
// Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x009C1, End = 0x009C4, Type = Extend });
// Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x009C7, End = 0x009C8, Type = SpacingMark });
// Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x009CB, End = 0x009CC, Type = SpacingMark });
// Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x009E2, End = 0x009E3, Type = Extend });
// Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A01, End = 0x00A02, Type = Extend });
// Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A3E, End = 0x00A40, Type = SpacingMark });
// Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A41, End = 0x00A42, Type = Extend });
// Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A47, End = 0x00A48, Type = Extend });
// Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A4B, End = 0x00A4D, Type = Extend });
// Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A70, End = 0x00A71, Type = Extend });
// Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00A81, End = 0x00A82, Type = Extend });
// Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x00ABE, End = 0x00AC0, Type = SpacingMark });
// Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AC1, End = 0x00AC5, Type = Extend });
// Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AC7, End = 0x00AC8, Type = Extend });
// Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00ACB, End = 0x00ACC, Type = SpacingMark });
// Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AE2, End = 0x00AE3, Type = Extend });
// Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x00AFA, End = 0x00AFF, Type = Extend });
// Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B02, End = 0x00B03, Type = SpacingMark });
// Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B41, End = 0x00B44, Type = Extend });
// Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B47, End = 0x00B48, Type = SpacingMark });
// Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B4B, End = 0x00B4C, Type = SpacingMark });
// Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B55, End = 0x00B56, Type = Extend });
// Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00B62, End = 0x00B63, Type = Extend });
// Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BC1, End = 0x00BC2, Type = SpacingMark });
// Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BC6, End = 0x00BC8, Type = SpacingMark });
// Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00BCA, End = 0x00BCC, Type = SpacingMark });
// Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C01, End = 0x00C03, Type = SpacingMark });
// Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C3E, End = 0x00C40, Type = Extend });
// Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C41, End = 0x00C44, Type = SpacingMark });
// Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C46, End = 0x00C48, Type = Extend });
// Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C4A, End = 0x00C4D, Type = Extend });
// Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C55, End = 0x00C56, Type = Extend });
// Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C62, End = 0x00C63, Type = Extend });
// Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00C82, End = 0x00C83, Type = SpacingMark });
// Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CC0, End = 0x00CC1, Type = SpacingMark });
// Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CC3, End = 0x00CC4, Type = SpacingMark });
// Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CC7, End = 0x00CC8, Type = SpacingMark });
// Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CCA, End = 0x00CCB, Type = SpacingMark });
// Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CCC, End = 0x00CCD, Type = Extend });
// Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CD5, End = 0x00CD6, Type = Extend });
// Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00CE2, End = 0x00CE3, Type = Extend });
// Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D00, End = 0x00D01, Type = Extend });
// Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D02, End = 0x00D03, Type = SpacingMark });
// Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D3B, End = 0x00D3C, Type = Extend });
// Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D3F, End = 0x00D40, Type = SpacingMark });
// Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D41, End = 0x00D44, Type = Extend });
// Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D46, End = 0x00D48, Type = SpacingMark });
// Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D4A, End = 0x00D4C, Type = SpacingMark });
// Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D62, End = 0x00D63, Type = Extend });
// Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00D82, End = 0x00D83, Type = SpacingMark });
// Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DD0, End = 0x00DD1, Type = SpacingMark });
// Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DD2, End = 0x00DD4, Type = Extend });
// Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DD8, End = 0x00DDE, Type = SpacingMark });
// Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00DF2, End = 0x00DF3, Type = SpacingMark });
// Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
m_lst_code_range.Add(new RangeInfo() { Start = 0x00E34, End = 0x00E3A, Type = Extend });
// Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
m_lst_code_range.Add(new RangeInfo() { Start = 0x00E47, End = 0x00E4E, Type = Extend });
// Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
m_lst_code_range.Add(new RangeInfo() { Start = 0x00EB4, End = 0x00EBC, Type = Extend });
// Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00EC8, End = 0x00ECD, Type = Extend });
// Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F18, End = 0x00F19, Type = Extend });
// Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F3E, End = 0x00F3F, Type = SpacingMark });
// Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F71, End = 0x00F7E, Type = Extend });
// Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F80, End = 0x00F84, Type = Extend });
// Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F86, End = 0x00F87, Type = Extend });
// Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F8D, End = 0x00F97, Type = Extend });
// Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x00F99, End = 0x00FBC, Type = Extend });
// Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x0102D, End = 0x01030, Type = Extend });
// Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x01032, End = 0x01037, Type = Extend });
// Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
m_lst_code_range.Add(new RangeInfo() { Start = 0x01039, End = 0x0103A, Type = Extend });
// Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0103B, End = 0x0103C, Type = SpacingMark });
// Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0103D, End = 0x0103E, Type = Extend });
// Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
m_lst_code_range.Add(new RangeInfo() { Start = 0x01056, End = 0x01057, Type = SpacingMark });
// Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
m_lst_code_range.Add(new RangeInfo() { Start = 0x01058, End = 0x01059, Type = Extend });
// Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0105E, End = 0x01060, Type = Extend });
// Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01071, End = 0x01074, Type = Extend });
// Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
m_lst_code_range.Add(new RangeInfo() { Start = 0x01085, End = 0x01086, Type = Extend });
// Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
m_lst_code_range.Add(new RangeInfo() { Start = 0x01100, End = 0x0115F, Type = L });
// Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01160, End = 0x011A7, Type = V });
// Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
m_lst_code_range.Add(new RangeInfo() { Start = 0x011A8, End = 0x011FF, Type = T });
// Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x0135D, End = 0x0135F, Type = Extend });
// Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01712, End = 0x01714, Type = Extend });
// Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01732, End = 0x01733, Type = Extend });
// Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01752, End = 0x01753, Type = Extend });
// Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01772, End = 0x01773, Type = Extend });
// Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
m_lst_code_range.Add(new RangeInfo() { Start = 0x017B4, End = 0x017B5, Type = Extend });
// Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
m_lst_code_range.Add(new RangeInfo() { Start = 0x017B7, End = 0x017BD, Type = Extend });
// Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x017BE, End = 0x017C5, Type = SpacingMark });
// Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
m_lst_code_range.Add(new RangeInfo() { Start = 0x017C7, End = 0x017C8, Type = SpacingMark });
// Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
m_lst_code_range.Add(new RangeInfo() { Start = 0x017C9, End = 0x017D3, Type = Extend });
// Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0180B, End = 0x0180D, Type = Extend });
// Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01885, End = 0x01886, Type = Extend });
// Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01920, End = 0x01922, Type = Extend });
// Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x01923, End = 0x01926, Type = SpacingMark });
// Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
m_lst_code_range.Add(new RangeInfo() { Start = 0x01927, End = 0x01928, Type = Extend });
// Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01929, End = 0x0192B, Type = SpacingMark });
// Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01930, End = 0x01931, Type = SpacingMark });
// Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01933, End = 0x01938, Type = SpacingMark });
// Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
m_lst_code_range.Add(new RangeInfo() { Start = 0x01939, End = 0x0193B, Type = Extend });
// Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A17, End = 0x01A18, Type = Extend });
// Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A19, End = 0x01A1A, Type = SpacingMark });
// Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A58, End = 0x01A5E, Type = Extend });
// Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A65, End = 0x01A6C, Type = Extend });
// Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A6D, End = 0x01A72, Type = SpacingMark });
// Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
m_lst_code_range.Add(new RangeInfo() { Start = 0x01A73, End = 0x01A7C, Type = Extend });
// Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x01AB0, End = 0x01ABD, Type = Extend });
// Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
m_lst_code_range.Add(new RangeInfo() { Start = 0x01ABF, End = 0x01ACE, Type = Extend });
// Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B00, End = 0x01B03, Type = Extend });
// Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B36, End = 0x01B3A, Type = Extend });
// Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B3D, End = 0x01B41, Type = SpacingMark });
// Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B43, End = 0x01B44, Type = SpacingMark });
// Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B6B, End = 0x01B73, Type = Extend });
// Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
m_lst_code_range.Add(new RangeInfo() { Start = 0x01B80, End = 0x01B81, Type = Extend });
// Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BA2, End = 0x01BA5, Type = Extend });
// Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BA6, End = 0x01BA7, Type = SpacingMark });
// Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BA8, End = 0x01BA9, Type = Extend });
// Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BAB, End = 0x01BAD, Type = Extend });
// Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BE8, End = 0x01BE9, Type = Extend });
// Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BEA, End = 0x01BEC, Type = SpacingMark });
// Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BEF, End = 0x01BF1, Type = Extend });
// Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
m_lst_code_range.Add(new RangeInfo() { Start = 0x01BF2, End = 0x01BF3, Type = SpacingMark });
// Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C24, End = 0x01C2B, Type = SpacingMark });
// Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C2C, End = 0x01C33, Type = Extend });
// Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C34, End = 0x01C35, Type = SpacingMark });
// Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01C36, End = 0x01C37, Type = Extend });
// Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CD0, End = 0x01CD2, Type = Extend });
// Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CD4, End = 0x01CE0, Type = Extend });
// Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CE2, End = 0x01CE8, Type = Extend });
// Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x01CF8, End = 0x01CF9, Type = Extend });
// Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
m_lst_code_range.Add(new RangeInfo() { Start = 0x01DC0, End = 0x01DFF, Type = Extend });
// Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x0200E, End = 0x0200F, Type = Control });
// Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0202A, End = 0x0202E, Type = Control });
// Cf [5] WORD JOINER..INVISIBLE PLUS
m_lst_code_range.Add(new RangeInfo() { Start = 0x02060, End = 0x02064, Type = Control });
// Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
m_lst_code_range.Add(new RangeInfo() { Start = 0x02066, End = 0x0206F, Type = Control });
// Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x020D0, End = 0x020DC, Type = Extend });
// Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
m_lst_code_range.Add(new RangeInfo() { Start = 0x020DD, End = 0x020E0, Type = Extend });
// Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
m_lst_code_range.Add(new RangeInfo() { Start = 0x020E2, End = 0x020E4, Type = Extend });
// Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
m_lst_code_range.Add(new RangeInfo() { Start = 0x020E5, End = 0x020F0, Type = Extend });
// E0.6 [6] (↔️..↙️) left-right arrow..down-left arrow
m_lst_code_range.Add(new RangeInfo() { Start = 0x02194, End = 0x02199, Type = Extended_Pictographic });
// E0.6 [2] (↩️..↪️) right arrow curving left..left arrow curving right
m_lst_code_range.Add(new RangeInfo() { Start = 0x021A9, End = 0x021AA, Type = Extended_Pictographic });
// E0.6 [2] (⌚..⌛) watch..hourglass done
m_lst_code_range.Add(new RangeInfo() { Start = 0x0231A, End = 0x0231B, Type = Extended_Pictographic });
// E0.6 [4] (⏩..⏬) fast-forward button..fast down button
m_lst_code_range.Add(new RangeInfo() { Start = 0x023E9, End = 0x023EC, Type = Extended_Pictographic });
// E0.7 [2] (⏭️..⏮️) next track button..last track button
m_lst_code_range.Add(new RangeInfo() { Start = 0x023ED, End = 0x023EE, Type = Extended_Pictographic });
// E1.0 [2] (⏱️..⏲️) stopwatch..timer clock
m_lst_code_range.Add(new RangeInfo() { Start = 0x023F1, End = 0x023F2, Type = Extended_Pictographic });
// E0.7 [3] (⏸️..⏺️) pause button..record button
m_lst_code_range.Add(new RangeInfo() { Start = 0x023F8, End = 0x023FA, Type = Extended_Pictographic });
// E0.6 [2] (▪️..▫️) black small square..white small square
m_lst_code_range.Add(new RangeInfo() { Start = 0x025AA, End = 0x025AB, Type = Extended_Pictographic });
// E0.6 [4] (◻️..◾) white medium square..black medium-small square
m_lst_code_range.Add(new RangeInfo() { Start = 0x025FB, End = 0x025FE, Type = Extended_Pictographic });
// E0.6 [2] (☀️..☁️) sun..cloud
m_lst_code_range.Add(new RangeInfo() { Start = 0x02600, End = 0x02601, Type = Extended_Pictographic });
// E0.7 [2] (☂️..☃️) umbrella..snowman
m_lst_code_range.Add(new RangeInfo() { Start = 0x02602, End = 0x02603, Type = Extended_Pictographic });
// E0.0 [7] (☇..☍) LIGHTNING..OPPOSITION
m_lst_code_range.Add(new RangeInfo() { Start = 0x02607, End = 0x0260D, Type = Extended_Pictographic });
// E0.0 [2] (☏..☐) WHITE TELEPHONE..BALLOT BOX
m_lst_code_range.Add(new RangeInfo() { Start = 0x0260F, End = 0x02610, Type = Extended_Pictographic });
// E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage
m_lst_code_range.Add(new RangeInfo() { Start = 0x02614, End = 0x02615, Type = Extended_Pictographic });
// E0.0 [2] (☖..☗) WHITE SHOGI PIECE..BLACK SHOGI PIECE
m_lst_code_range.Add(new RangeInfo() { Start = 0x02616, End = 0x02617, Type = Extended_Pictographic });
// E0.0 [4] (☙..☜) REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX
m_lst_code_range.Add(new RangeInfo() { Start = 0x02619, End = 0x0261C, Type = Extended_Pictographic });
// E0.0 [2] (☞..☟) WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX
m_lst_code_range.Add(new RangeInfo() { Start = 0x0261E, End = 0x0261F, Type = Extended_Pictographic });
// E1.0 [2] (☢️..☣️) radioactive..biohazard
m_lst_code_range.Add(new RangeInfo() { Start = 0x02622, End = 0x02623, Type = Extended_Pictographic });
// E0.0 [2] (☤..☥) CADUCEUS..ANKH
m_lst_code_range.Add(new RangeInfo() { Start = 0x02624, End = 0x02625, Type = Extended_Pictographic });
// E0.0 [3] (☧..☩) CHI RHO..CROSS OF JERUSALEM
m_lst_code_range.Add(new RangeInfo() { Start = 0x02627, End = 0x02629, Type = Extended_Pictographic });
// E0.0 [3] (☫..☭) FARSI SYMBOL..HAMMER AND SICKLE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0262B, End = 0x0262D, Type = Extended_Pictographic });
// E0.0 [8] (☰..☷) TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH
m_lst_code_range.Add(new RangeInfo() { Start = 0x02630, End = 0x02637, Type = Extended_Pictographic });
// E0.7 [2] (☸️..☹️) wheel of dharma..frowning face
m_lst_code_range.Add(new RangeInfo() { Start = 0x02638, End = 0x02639, Type = Extended_Pictographic });
// E0.0 [5] (☻..☿) BLACK SMILING FACE..MERCURY
m_lst_code_range.Add(new RangeInfo() { Start = 0x0263B, End = 0x0263F, Type = Extended_Pictographic });
// E0.0 [5] (♃..♇) JUPITER..PLUTO
m_lst_code_range.Add(new RangeInfo() { Start = 0x02643, End = 0x02647, Type = Extended_Pictographic });
// E0.6 [12] (♈..♓) Aries..Pisces
m_lst_code_range.Add(new RangeInfo() { Start = 0x02648, End = 0x02653, Type = Extended_Pictographic });
// E0.0 [11] (♔..♞) WHITE CHESS KING..BLACK CHESS KNIGHT
m_lst_code_range.Add(new RangeInfo() { Start = 0x02654, End = 0x0265E, Type = Extended_Pictographic });
// E0.0 [2] (♡..♢) WHITE HEART SUIT..WHITE DIAMOND SUIT
m_lst_code_range.Add(new RangeInfo() { Start = 0x02661, End = 0x02662, Type = Extended_Pictographic });
// E0.6 [2] (♥️..♦️) heart suit..diamond suit
m_lst_code_range.Add(new RangeInfo() { Start = 0x02665, End = 0x02666, Type = Extended_Pictographic });
// E0.0 [18] (♩..♺) QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS
m_lst_code_range.Add(new RangeInfo() { Start = 0x02669, End = 0x0267A, Type = Extended_Pictographic });
// E0.0 [2] (♼..♽) RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x0267C, End = 0x0267D, Type = Extended_Pictographic });
// E0.0 [6] (⚀..⚅) DIE FACE-1..DIE FACE-6
m_lst_code_range.Add(new RangeInfo() { Start = 0x02680, End = 0x02685, Type = Extended_Pictographic });
// E0.0 [2] (⚐..⚑) WHITE FLAG..BLACK FLAG
m_lst_code_range.Add(new RangeInfo() { Start = 0x02690, End = 0x02691, Type = Extended_Pictographic });
// E1.0 [2] (⚖️..⚗️) balance scale..alembic
m_lst_code_range.Add(new RangeInfo() { Start = 0x02696, End = 0x02697, Type = Extended_Pictographic });
// E1.0 [2] (⚛️..⚜️) atom symbol..fleur-de-lis
m_lst_code_range.Add(new RangeInfo() { Start = 0x0269B, End = 0x0269C, Type = Extended_Pictographic });
// E0.0 [3] (⚝..⚟) OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT
m_lst_code_range.Add(new RangeInfo() { Start = 0x0269D, End = 0x0269F, Type = Extended_Pictographic });
// E0.6 [2] (⚠️..⚡) warning..high voltage
m_lst_code_range.Add(new RangeInfo() { Start = 0x026A0, End = 0x026A1, Type = Extended_Pictographic });
// E0.0 [5] (⚢..⚦) DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x026A2, End = 0x026A6, Type = Extended_Pictographic });
// E0.0 [2] (⚨..⚩) VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x026A8, End = 0x026A9, Type = Extended_Pictographic });
// E0.6 [2] (⚪..⚫) white circle..black circle
m_lst_code_range.Add(new RangeInfo() { Start = 0x026AA, End = 0x026AB, Type = Extended_Pictographic });
// E0.0 [4] (⚬..⚯) MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x026AC, End = 0x026AF, Type = Extended_Pictographic });
// E1.0 [2] (⚰️..⚱️) coffin..funeral urn
m_lst_code_range.Add(new RangeInfo() { Start = 0x026B0, End = 0x026B1, Type = Extended_Pictographic });
// E0.0 [11] (⚲..⚼) NEUTER..SESQUIQUADRATE
m_lst_code_range.Add(new RangeInfo() { Start = 0x026B2, End = 0x026BC, Type = Extended_Pictographic });
// E0.6 [2] (⚽..⚾) soccer ball..baseball
m_lst_code_range.Add(new RangeInfo() { Start = 0x026BD, End = 0x026BE, Type = Extended_Pictographic });
// E0.0 [5] (⚿..⛃) SQUARED KEY..BLACK DRAUGHTS KING
m_lst_code_range.Add(new RangeInfo() { Start = 0x026BF, End = 0x026C3, Type = Extended_Pictographic });
// E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud
m_lst_code_range.Add(new RangeInfo() { Start = 0x026C4, End = 0x026C5, Type = Extended_Pictographic });
// E0.0 [2] (⛆..⛇) RAIN..BLACK SNOWMAN
m_lst_code_range.Add(new RangeInfo() { Start = 0x026C6, End = 0x026C7, Type = Extended_Pictographic });
// E0.0 [5] (⛉..⛍) TURNED WHITE SHOGI PIECE..DISABLED CAR
m_lst_code_range.Add(new RangeInfo() { Start = 0x026C9, End = 0x026CD, Type = Extended_Pictographic });
// E0.0 [20] (⛕..⛨) ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD
m_lst_code_range.Add(new RangeInfo() { Start = 0x026D5, End = 0x026E8, Type = Extended_Pictographic });
// E0.0 [5] (⛫..⛯) CASTLE..MAP SYMBOL FOR LIGHTHOUSE
m_lst_code_range.Add(new RangeInfo() { Start = 0x026EB, End = 0x026EF, Type = Extended_Pictographic });
// E0.7 [2] (⛰️..⛱️) mountain..umbrella on ground
m_lst_code_range.Add(new RangeInfo() { Start = 0x026F0, End = 0x026F1, Type = Extended_Pictographic });
// E0.6 [2] (⛲..⛳) fountain..flag in hole
m_lst_code_range.Add(new RangeInfo() { Start = 0x026F2, End = 0x026F3, Type = Extended_Pictographic });
// E0.7 [3] (⛷️..⛹️) skier..person bouncing ball
m_lst_code_range.Add(new RangeInfo() { Start = 0x026F7, End = 0x026F9, Type = Extended_Pictographic });
// E0.0 [2] (⛻..⛼) JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
m_lst_code_range.Add(new RangeInfo() { Start = 0x026FB, End = 0x026FC, Type = Extended_Pictographic });
// E0.0 [4] (⛾..✁) CUP ON BLACK SQUARE..UPPER BLADE SCISSORS
m_lst_code_range.Add(new RangeInfo() { Start = 0x026FE, End = 0x02701, Type = Extended_Pictographic });
// E0.0 [2] (✃..✄) LOWER BLADE SCISSORS..WHITE SCISSORS
m_lst_code_range.Add(new RangeInfo() { Start = 0x02703, End = 0x02704, Type = Extended_Pictographic });
// E0.6 [5] (✈️..✌️) airplane..victory hand
m_lst_code_range.Add(new RangeInfo() { Start = 0x02708, End = 0x0270C, Type = Extended_Pictographic });
// E0.0 [2] (✐..✑) UPPER RIGHT PENCIL..WHITE NIB
m_lst_code_range.Add(new RangeInfo() { Start = 0x02710, End = 0x02711, Type = Extended_Pictographic });
// E0.6 [2] (✳️..✴️) eight-spoked asterisk..eight-pointed star
m_lst_code_range.Add(new RangeInfo() { Start = 0x02733, End = 0x02734, Type = Extended_Pictographic });
// E0.6 [3] (❓..❕) red question mark..white exclamation mark
m_lst_code_range.Add(new RangeInfo() { Start = 0x02753, End = 0x02755, Type = Extended_Pictographic });
// E0.0 [3] (❥..❧) ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET
m_lst_code_range.Add(new RangeInfo() { Start = 0x02765, End = 0x02767, Type = Extended_Pictographic });
// E0.6 [3] (➕..➗) plus..divide
m_lst_code_range.Add(new RangeInfo() { Start = 0x02795, End = 0x02797, Type = Extended_Pictographic });
// E0.6 [2] (⤴️..⤵️) right arrow curving up..right arrow curving down
m_lst_code_range.Add(new RangeInfo() { Start = 0x02934, End = 0x02935, Type = Extended_Pictographic });
// E0.6 [3] (⬅️..⬇️) left arrow..down arrow
m_lst_code_range.Add(new RangeInfo() { Start = 0x02B05, End = 0x02B07, Type = Extended_Pictographic });
// E0.6 [2] (⬛..⬜) black large square..white large square
m_lst_code_range.Add(new RangeInfo() { Start = 0x02B1B, End = 0x02B1C, Type = Extended_Pictographic });
// Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
m_lst_code_range.Add(new RangeInfo() { Start = 0x02CEF, End = 0x02CF1, Type = Extend });
// Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
m_lst_code_range.Add(new RangeInfo() { Start = 0x02DE0, End = 0x02DFF, Type = Extend });
// Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x0302A, End = 0x0302D, Type = Extend });
// Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x0302E, End = 0x0302F, Type = Extend });
// Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
m_lst_code_range.Add(new RangeInfo() { Start = 0x03099, End = 0x0309A, Type = Extend });
// Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A670, End = 0x0A672, Type = Extend });
// Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A674, End = 0x0A67D, Type = Extend });
// Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A69E, End = 0x0A69F, Type = Extend });
// Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A6F0, End = 0x0A6F1, Type = Extend });
// Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A823, End = 0x0A824, Type = SpacingMark });
// Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A825, End = 0x0A826, Type = Extend });
// Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A880, End = 0x0A881, Type = SpacingMark });
// Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A8B4, End = 0x0A8C3, Type = SpacingMark });
// Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A8C4, End = 0x0A8C5, Type = Extend });
// Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A8E0, End = 0x0A8F1, Type = Extend });
// Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A926, End = 0x0A92D, Type = Extend });
// Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A947, End = 0x0A951, Type = Extend });
// Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A952, End = 0x0A953, Type = SpacingMark });
// Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A960, End = 0x0A97C, Type = L });
// Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A980, End = 0x0A982, Type = Extend });
// Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A9B4, End = 0x0A9B5, Type = SpacingMark });
// Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A9B6, End = 0x0A9B9, Type = Extend });
// Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A9BA, End = 0x0A9BB, Type = SpacingMark });
// Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A9BC, End = 0x0A9BD, Type = Extend });
// Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
m_lst_code_range.Add(new RangeInfo() { Start = 0x0A9BE, End = 0x0A9C0, Type = SpacingMark });
// Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AA29, End = 0x0AA2E, Type = Extend });
// Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AA2F, End = 0x0AA30, Type = SpacingMark });
// Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AA31, End = 0x0AA32, Type = Extend });
// Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AA33, End = 0x0AA34, Type = SpacingMark });
// Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AA35, End = 0x0AA36, Type = Extend });
// Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AAB2, End = 0x0AAB4, Type = Extend });
// Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AAB7, End = 0x0AAB8, Type = Extend });
// Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AABE, End = 0x0AABF, Type = Extend });
// Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AAEC, End = 0x0AAED, Type = Extend });
// Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AAEE, End = 0x0AAEF, Type = SpacingMark });
// Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ABE3, End = 0x0ABE4, Type = SpacingMark });
// Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ABE6, End = 0x0ABE7, Type = SpacingMark });
// Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ABE9, End = 0x0ABEA, Type = SpacingMark });
// Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AC01, End = 0x0AC1B, Type = LVT });
// Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AC1D, End = 0x0AC37, Type = LVT });
// Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AC39, End = 0x0AC53, Type = LVT });
// Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AC55, End = 0x0AC6F, Type = LVT });
// Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AC71, End = 0x0AC8B, Type = LVT });
// Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AC8D, End = 0x0ACA7, Type = LVT });
// Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ACA9, End = 0x0ACC3, Type = LVT });
// Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ACC5, End = 0x0ACDF, Type = LVT });
// Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ACE1, End = 0x0ACFB, Type = LVT });
// Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ACFD, End = 0x0AD17, Type = LVT });
// Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AD19, End = 0x0AD33, Type = LVT });
// Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AD35, End = 0x0AD4F, Type = LVT });
// Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AD51, End = 0x0AD6B, Type = LVT });
// Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AD6D, End = 0x0AD87, Type = LVT });
// Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AD89, End = 0x0ADA3, Type = LVT });
// Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ADA5, End = 0x0ADBF, Type = LVT });
// Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ADC1, End = 0x0ADDB, Type = LVT });
// Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ADDD, End = 0x0ADF7, Type = LVT });
// Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0ADF9, End = 0x0AE13, Type = LVT });
// Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AE15, End = 0x0AE2F, Type = LVT });
// Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AE31, End = 0x0AE4B, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AE4D, End = 0x0AE67, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AE69, End = 0x0AE83, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AE85, End = 0x0AE9F, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AEA1, End = 0x0AEBB, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AEBD, End = 0x0AED7, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AED9, End = 0x0AEF3, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AEF5, End = 0x0AF0F, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AF11, End = 0x0AF2B, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AF2D, End = 0x0AF47, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AF49, End = 0x0AF63, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AF65, End = 0x0AF7F, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AF81, End = 0x0AF9B, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AF9D, End = 0x0AFB7, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AFB9, End = 0x0AFD3, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AFD5, End = 0x0AFEF, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0AFF1, End = 0x0B00B, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B00D, End = 0x0B027, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B029, End = 0x0B043, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B045, End = 0x0B05F, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B061, End = 0x0B07B, Type = LVT });
// Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B07D, End = 0x0B097, Type = LVT });
// Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B099, End = 0x0B0B3, Type = LVT });
// Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B0B5, End = 0x0B0CF, Type = LVT });
// Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B0D1, End = 0x0B0EB, Type = LVT });
// Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B0ED, End = 0x0B107, Type = LVT });
// Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B109, End = 0x0B123, Type = LVT });
// Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B125, End = 0x0B13F, Type = LVT });
// Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B141, End = 0x0B15B, Type = LVT });
// Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B15D, End = 0x0B177, Type = LVT });
// Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B179, End = 0x0B193, Type = LVT });
// Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B195, End = 0x0B1AF, Type = LVT });
// Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B1B1, End = 0x0B1CB, Type = LVT });
// Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B1CD, End = 0x0B1E7, Type = LVT });
// Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B1E9, End = 0x0B203, Type = LVT });
// Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B205, End = 0x0B21F, Type = LVT });
// Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B221, End = 0x0B23B, Type = LVT });
// Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B23D, End = 0x0B257, Type = LVT });
// Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B259, End = 0x0B273, Type = LVT });
// Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B275, End = 0x0B28F, Type = LVT });
// Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B291, End = 0x0B2AB, Type = LVT });
// Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B2AD, End = 0x0B2C7, Type = LVT });
// Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B2C9, End = 0x0B2E3, Type = LVT });
// Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B2E5, End = 0x0B2FF, Type = LVT });
// Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B301, End = 0x0B31B, Type = LVT });
// Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B31D, End = 0x0B337, Type = LVT });
// Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B339, End = 0x0B353, Type = LVT });
// Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B355, End = 0x0B36F, Type = LVT });
// Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B371, End = 0x0B38B, Type = LVT });
// Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B38D, End = 0x0B3A7, Type = LVT });
// Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B3A9, End = 0x0B3C3, Type = LVT });
// Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B3C5, End = 0x0B3DF, Type = LVT });
// Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B3E1, End = 0x0B3FB, Type = LVT });
// Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B3FD, End = 0x0B417, Type = LVT });
// Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B419, End = 0x0B433, Type = LVT });
// Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B435, End = 0x0B44F, Type = LVT });
// Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B451, End = 0x0B46B, Type = LVT });
// Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B46D, End = 0x0B487, Type = LVT });
// Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B489, End = 0x0B4A3, Type = LVT });
// Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B4A5, End = 0x0B4BF, Type = LVT });
// Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B4C1, End = 0x0B4DB, Type = LVT });
// Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B4DD, End = 0x0B4F7, Type = LVT });
// Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B4F9, End = 0x0B513, Type = LVT });
// Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B515, End = 0x0B52F, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B531, End = 0x0B54B, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B54D, End = 0x0B567, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B569, End = 0x0B583, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B585, End = 0x0B59F, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B5A1, End = 0x0B5BB, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B5BD, End = 0x0B5D7, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B5D9, End = 0x0B5F3, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B5F5, End = 0x0B60F, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B611, End = 0x0B62B, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B62D, End = 0x0B647, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B649, End = 0x0B663, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B665, End = 0x0B67F, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B681, End = 0x0B69B, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B69D, End = 0x0B6B7, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B6B9, End = 0x0B6D3, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B6D5, End = 0x0B6EF, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B6F1, End = 0x0B70B, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B70D, End = 0x0B727, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B729, End = 0x0B743, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B745, End = 0x0B75F, Type = LVT });
// Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B761, End = 0x0B77B, Type = LVT });
// Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B77D, End = 0x0B797, Type = LVT });
// Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B799, End = 0x0B7B3, Type = LVT });
// Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B7B5, End = 0x0B7CF, Type = LVT });
// Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B7D1, End = 0x0B7EB, Type = LVT });
// Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B7ED, End = 0x0B807, Type = LVT });
// Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B809, End = 0x0B823, Type = LVT });
// Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B825, End = 0x0B83F, Type = LVT });
// Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B841, End = 0x0B85B, Type = LVT });
// Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B85D, End = 0x0B877, Type = LVT });
// Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B879, End = 0x0B893, Type = LVT });
// Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B895, End = 0x0B8AF, Type = LVT });
// Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B8B1, End = 0x0B8CB, Type = LVT });
// Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B8CD, End = 0x0B8E7, Type = LVT });
// Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B8E9, End = 0x0B903, Type = LVT });
// Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B905, End = 0x0B91F, Type = LVT });
// Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B921, End = 0x0B93B, Type = LVT });
// Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B93D, End = 0x0B957, Type = LVT });
// Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B959, End = 0x0B973, Type = LVT });
// Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B975, End = 0x0B98F, Type = LVT });
// Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B991, End = 0x0B9AB, Type = LVT });
// Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B9AD, End = 0x0B9C7, Type = LVT });
// Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B9C9, End = 0x0B9E3, Type = LVT });
// Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0B9E5, End = 0x0B9FF, Type = LVT });
// Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BA01, End = 0x0BA1B, Type = LVT });
// Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BA1D, End = 0x0BA37, Type = LVT });
// Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BA39, End = 0x0BA53, Type = LVT });
// Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BA55, End = 0x0BA6F, Type = LVT });
// Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BA71, End = 0x0BA8B, Type = LVT });
// Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BA8D, End = 0x0BAA7, Type = LVT });
// Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BAA9, End = 0x0BAC3, Type = LVT });
// Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BAC5, End = 0x0BADF, Type = LVT });
// Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BAE1, End = 0x0BAFB, Type = LVT });
// Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BAFD, End = 0x0BB17, Type = LVT });
// Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BB19, End = 0x0BB33, Type = LVT });
// Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BB35, End = 0x0BB4F, Type = LVT });
// Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BB51, End = 0x0BB6B, Type = LVT });
// Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BB6D, End = 0x0BB87, Type = LVT });
// Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BB89, End = 0x0BBA3, Type = LVT });
// Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BBA5, End = 0x0BBBF, Type = LVT });
// Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BBC1, End = 0x0BBDB, Type = LVT });
// Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BBDD, End = 0x0BBF7, Type = LVT });
// Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BBF9, End = 0x0BC13, Type = LVT });
// Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BC15, End = 0x0BC2F, Type = LVT });
// Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BC31, End = 0x0BC4B, Type = LVT });
// Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BC4D, End = 0x0BC67, Type = LVT });
// Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BC69, End = 0x0BC83, Type = LVT });
// Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BC85, End = 0x0BC9F, Type = LVT });
// Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BCA1, End = 0x0BCBB, Type = LVT });
// Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BCBD, End = 0x0BCD7, Type = LVT });
// Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BCD9, End = 0x0BCF3, Type = LVT });
// Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BCF5, End = 0x0BD0F, Type = LVT });
// Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BD11, End = 0x0BD2B, Type = LVT });
// Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BD2D, End = 0x0BD47, Type = LVT });
// Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BD49, End = 0x0BD63, Type = LVT });
// Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BD65, End = 0x0BD7F, Type = LVT });
// Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BD81, End = 0x0BD9B, Type = LVT });
// Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BD9D, End = 0x0BDB7, Type = LVT });
// Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BDB9, End = 0x0BDD3, Type = LVT });
// Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BDD5, End = 0x0BDEF, Type = LVT });
// Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BDF1, End = 0x0BE0B, Type = LVT });
// Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BE0D, End = 0x0BE27, Type = LVT });
// Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BE29, End = 0x0BE43, Type = LVT });
// Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BE45, End = 0x0BE5F, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BE61, End = 0x0BE7B, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BE7D, End = 0x0BE97, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BE99, End = 0x0BEB3, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BEB5, End = 0x0BECF, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BED1, End = 0x0BEEB, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BEED, End = 0x0BF07, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BF09, End = 0x0BF23, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BF25, End = 0x0BF3F, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BF41, End = 0x0BF5B, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BF5D, End = 0x0BF77, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BF79, End = 0x0BF93, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BF95, End = 0x0BFAF, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BFB1, End = 0x0BFCB, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BFCD, End = 0x0BFE7, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0BFE9, End = 0x0C003, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0C005, End = 0x0C01F, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0C021, End = 0x0C03B, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0C03D, End = 0x0C057, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
m_lst_code_range.Add(new RangeInfo() { Start = 0x0C059, End = 0x0C073, Type = LVT });
// Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH