Restore lost de-duplication

This commit is contained in:
Philip Hazel 2022-01-10 11:31:27 +00:00
parent 636569a957
commit ec091e2e44
2 changed files with 416 additions and 431 deletions

View File

@ -41,7 +41,8 @@
# #
# Note subsequent changes here: # Note subsequent changes here:
# #
# 27-December_2021: Added support for 4-letter script abbreviations. # 27-December-2021: Added support for 4-letter script abbreviations.
# xx-January-2022: Further updates for Boolean property support
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
@ -119,8 +120,6 @@ for name in bool_properties:
utt_table.append((stdname(abbrev), name, 'PT_BOOL')) utt_table.append((stdname(abbrev), name, 'PT_BOOL'))
#utt_table += list(zip(std_bool_properties, bool_properties, ['PT_BOOL'] * len(bool_properties)))
# Now add specials and synonyms. Note both the standardized and capitalized # Now add specials and synonyms. Note both the standardized and capitalized
# forms are needed. # forms are needed.
@ -133,8 +132,9 @@ utt_table.append(('xsp', 'Xsp', 'PT_SPACE'))
utt_table.append(('xuc', 'Xuc', 'PT_UCNC')) utt_table.append(('xuc', 'Xuc', 'PT_UCNC'))
utt_table.append(('xwd', 'Xwd', 'PT_WORD')) utt_table.append(('xwd', 'Xwd', 'PT_WORD'))
# Sort the table. # Remove duplicates from the table and then sort it.
utt_table = list(set(utt_table))
utt_table.sort() utt_table.sort()
# Output file-specific heading # Output file-specific heading

View File

@ -127,7 +127,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */
#define STRING_cari0 STR_c STR_a STR_r STR_i "\0" #define STRING_cari0 STR_c STR_a STR_r STR_i "\0"
#define STRING_carian0 STR_c STR_a STR_r STR_i STR_a STR_n "\0" #define STRING_carian0 STR_c STR_a STR_r STR_i STR_a STR_n "\0"
#define STRING_cased0 STR_c STR_a STR_s STR_e STR_d "\0" #define STRING_cased0 STR_c STR_a STR_s STR_e STR_d "\0"
#define STRING_cased0 STR_c STR_a STR_s STR_e STR_d "\0"
#define STRING_caseignorable0 STR_c STR_a STR_s STR_e STR_i STR_g STR_n STR_o STR_r STR_a STR_b STR_l STR_e "\0" #define STRING_caseignorable0 STR_c STR_a STR_s STR_e STR_i STR_g STR_n STR_o STR_r STR_a STR_b STR_l STR_e "\0"
#define STRING_caucasianalbanian0 STR_c STR_a STR_u STR_c STR_a STR_s STR_i STR_a STR_n STR_a STR_l STR_b STR_a STR_n STR_i STR_a STR_n "\0" #define STRING_caucasianalbanian0 STR_c STR_a STR_u STR_c STR_a STR_s STR_i STR_a STR_n STR_a STR_l STR_b STR_a STR_n STR_i STR_a STR_n "\0"
#define STRING_cc0 STR_c STR_c "\0" #define STRING_cc0 STR_c STR_c "\0"
@ -163,7 +162,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */
#define STRING_cyrillic0 STR_c STR_y STR_r STR_i STR_l STR_l STR_i STR_c "\0" #define STRING_cyrillic0 STR_c STR_y STR_r STR_i STR_l STR_l STR_i STR_c "\0"
#define STRING_cyrl0 STR_c STR_y STR_r STR_l "\0" #define STRING_cyrl0 STR_c STR_y STR_r STR_l "\0"
#define STRING_dash0 STR_d STR_a STR_s STR_h "\0" #define STRING_dash0 STR_d STR_a STR_s STR_h "\0"
#define STRING_dash0 STR_d STR_a STR_s STR_h "\0"
#define STRING_defaultignorablecodepoint0 STR_d STR_e STR_f STR_a STR_u STR_l STR_t STR_i STR_g STR_n STR_o STR_r STR_a STR_b STR_l STR_e STR_c STR_o STR_d STR_e STR_p STR_o STR_i STR_n STR_t "\0" #define STRING_defaultignorablecodepoint0 STR_d STR_e STR_f STR_a STR_u STR_l STR_t STR_i STR_g STR_n STR_o STR_r STR_a STR_b STR_l STR_e STR_c STR_o STR_d STR_e STR_p STR_o STR_i STR_n STR_t "\0"
#define STRING_dep0 STR_d STR_e STR_p "\0" #define STRING_dep0 STR_d STR_e STR_p "\0"
#define STRING_deprecated0 STR_d STR_e STR_p STR_r STR_e STR_c STR_a STR_t STR_e STR_d "\0" #define STRING_deprecated0 STR_d STR_e STR_p STR_r STR_e STR_c STR_a STR_t STR_e STR_d "\0"
@ -190,7 +188,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */
#define STRING_elymaic0 STR_e STR_l STR_y STR_m STR_a STR_i STR_c "\0" #define STRING_elymaic0 STR_e STR_l STR_y STR_m STR_a STR_i STR_c "\0"
#define STRING_emod0 STR_e STR_m STR_o STR_d "\0" #define STRING_emod0 STR_e STR_m STR_o STR_d "\0"
#define STRING_emoji0 STR_e STR_m STR_o STR_j STR_i "\0" #define STRING_emoji0 STR_e STR_m STR_o STR_j STR_i "\0"
#define STRING_emoji0 STR_e STR_m STR_o STR_j STR_i "\0"
#define STRING_emojicomponent0 STR_e STR_m STR_o STR_j STR_i STR_c STR_o STR_m STR_p STR_o STR_n STR_e STR_n STR_t "\0" #define STRING_emojicomponent0 STR_e STR_m STR_o STR_j STR_i STR_c STR_o STR_m STR_p STR_o STR_n STR_e STR_n STR_t "\0"
#define STRING_emojimodifier0 STR_e STR_m STR_o STR_j STR_i STR_m STR_o STR_d STR_i STR_f STR_i STR_e STR_r "\0" #define STRING_emojimodifier0 STR_e STR_m STR_o STR_j STR_i STR_m STR_o STR_d STR_i STR_f STR_i STR_e STR_r "\0"
#define STRING_emojimodifierbase0 STR_e STR_m STR_o STR_j STR_i STR_m STR_o STR_d STR_i STR_f STR_i STR_e STR_r STR_b STR_a STR_s STR_e "\0" #define STRING_emojimodifierbase0 STR_e STR_m STR_o STR_j STR_i STR_m STR_o STR_d STR_i STR_f STR_i STR_e STR_r STR_b STR_a STR_s STR_e "\0"
@ -324,7 +321,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */
#define STRING_marchen0 STR_m STR_a STR_r STR_c STR_h STR_e STR_n "\0" #define STRING_marchen0 STR_m STR_a STR_r STR_c STR_h STR_e STR_n "\0"
#define STRING_masaramgondi0 STR_m STR_a STR_s STR_a STR_r STR_a STR_m STR_g STR_o STR_n STR_d STR_i "\0" #define STRING_masaramgondi0 STR_m STR_a STR_s STR_a STR_r STR_a STR_m STR_g STR_o STR_n STR_d STR_i "\0"
#define STRING_math0 STR_m STR_a STR_t STR_h "\0" #define STRING_math0 STR_m STR_a STR_t STR_h "\0"
#define STRING_math0 STR_m STR_a STR_t STR_h "\0"
#define STRING_mc0 STR_m STR_c "\0" #define STRING_mc0 STR_m STR_c "\0"
#define STRING_me0 STR_m STR_e "\0" #define STRING_me0 STR_m STR_e "\0"
#define STRING_medefaidrin0 STR_m STR_e STR_d STR_e STR_f STR_a STR_i STR_d STR_r STR_i STR_n "\0" #define STRING_medefaidrin0 STR_m STR_e STR_d STR_e STR_f STR_a STR_i STR_d STR_r STR_i STR_n "\0"
@ -422,7 +418,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */
#define STRING_qmark0 STR_q STR_m STR_a STR_r STR_k "\0" #define STRING_qmark0 STR_q STR_m STR_a STR_r STR_k "\0"
#define STRING_quotationmark0 STR_q STR_u STR_o STR_t STR_a STR_t STR_i STR_o STR_n STR_m STR_a STR_r STR_k "\0" #define STRING_quotationmark0 STR_q STR_u STR_o STR_t STR_a STR_t STR_i STR_o STR_n STR_m STR_a STR_r STR_k "\0"
#define STRING_radical0 STR_r STR_a STR_d STR_i STR_c STR_a STR_l "\0" #define STRING_radical0 STR_r STR_a STR_d STR_i STR_c STR_a STR_l "\0"
#define STRING_radical0 STR_r STR_a STR_d STR_i STR_c STR_a STR_l "\0"
#define STRING_regionalindicator0 STR_r STR_e STR_g STR_i STR_o STR_n STR_a STR_l STR_i STR_n STR_d STR_i STR_c STR_a STR_t STR_o STR_r "\0" #define STRING_regionalindicator0 STR_r STR_e STR_g STR_i STR_o STR_n STR_a STR_l STR_i STR_n STR_d STR_i STR_c STR_a STR_t STR_o STR_r "\0"
#define STRING_rejang0 STR_r STR_e STR_j STR_a STR_n STR_g "\0" #define STRING_rejang0 STR_r STR_e STR_j STR_a STR_n STR_g "\0"
#define STRING_ri0 STR_r STR_i "\0" #define STRING_ri0 STR_r STR_i "\0"
@ -620,7 +615,6 @@ const char PRIV(utt_names)[] =
STRING_cari0 STRING_cari0
STRING_carian0 STRING_carian0
STRING_cased0 STRING_cased0
STRING_cased0
STRING_caseignorable0 STRING_caseignorable0
STRING_caucasianalbanian0 STRING_caucasianalbanian0
STRING_cc0 STRING_cc0
@ -656,7 +650,6 @@ const char PRIV(utt_names)[] =
STRING_cyrillic0 STRING_cyrillic0
STRING_cyrl0 STRING_cyrl0
STRING_dash0 STRING_dash0
STRING_dash0
STRING_defaultignorablecodepoint0 STRING_defaultignorablecodepoint0
STRING_dep0 STRING_dep0
STRING_deprecated0 STRING_deprecated0
@ -683,7 +676,6 @@ const char PRIV(utt_names)[] =
STRING_elymaic0 STRING_elymaic0
STRING_emod0 STRING_emod0
STRING_emoji0 STRING_emoji0
STRING_emoji0
STRING_emojicomponent0 STRING_emojicomponent0
STRING_emojimodifier0 STRING_emojimodifier0
STRING_emojimodifierbase0 STRING_emojimodifierbase0
@ -817,7 +809,6 @@ const char PRIV(utt_names)[] =
STRING_marchen0 STRING_marchen0
STRING_masaramgondi0 STRING_masaramgondi0
STRING_math0 STRING_math0
STRING_math0
STRING_mc0 STRING_mc0
STRING_me0 STRING_me0
STRING_medefaidrin0 STRING_medefaidrin0
@ -915,7 +906,6 @@ const char PRIV(utt_names)[] =
STRING_qmark0 STRING_qmark0
STRING_quotationmark0 STRING_quotationmark0
STRING_radical0 STRING_radical0
STRING_radical0
STRING_regionalindicator0 STRING_regionalindicator0
STRING_rejang0 STRING_rejang0
STRING_ri0 STRING_ri0
@ -1113,423 +1103,418 @@ const ucp_type_table PRIV(utt)[] = {
{ 509, PT_SC, ucp_Carian }, { 509, PT_SC, ucp_Carian },
{ 514, PT_SC, ucp_Carian }, { 514, PT_SC, ucp_Carian },
{ 521, PT_BOOL, ucp_Cased }, { 521, PT_BOOL, ucp_Cased },
{ 527, PT_BOOL, ucp_Cased }, { 527, PT_BOOL, ucp_Case_Ignorable },
{ 533, PT_BOOL, ucp_Case_Ignorable }, { 541, PT_SC, ucp_Caucasian_Albanian },
{ 547, PT_SC, ucp_Caucasian_Albanian }, { 559, PT_PC, ucp_Cc },
{ 565, PT_PC, ucp_Cc }, { 562, PT_PC, ucp_Cf },
{ 568, PT_PC, ucp_Cf }, { 565, PT_SCX, ucp_Chakma },
{ 571, PT_SCX, ucp_Chakma }, { 572, PT_SC, ucp_Cham },
{ 578, PT_SC, ucp_Cham }, { 577, PT_BOOL, ucp_Changes_When_Casefolded },
{ 583, PT_BOOL, ucp_Changes_When_Casefolded }, { 599, PT_BOOL, ucp_Changes_When_Casemapped },
{ 605, PT_BOOL, ucp_Changes_When_Casemapped }, { 621, PT_BOOL, ucp_Changes_When_Lowercased },
{ 627, PT_BOOL, ucp_Changes_When_Lowercased }, { 643, PT_BOOL, ucp_Changes_When_Titlecased },
{ 649, PT_BOOL, ucp_Changes_When_Titlecased }, { 665, PT_BOOL, ucp_Changes_When_Uppercased },
{ 671, PT_BOOL, ucp_Changes_When_Uppercased }, { 687, PT_SC, ucp_Cherokee },
{ 693, PT_SC, ucp_Cherokee }, { 692, PT_SC, ucp_Cherokee },
{ 698, PT_SC, ucp_Cherokee }, { 701, PT_SC, ucp_Chorasmian },
{ 707, PT_SC, ucp_Chorasmian }, { 712, PT_SC, ucp_Chorasmian },
{ 718, PT_SC, ucp_Chorasmian }, { 717, PT_BOOL, ucp_Case_Ignorable },
{ 723, PT_BOOL, ucp_Case_Ignorable }, { 720, PT_PC, ucp_Cn },
{ 726, PT_PC, ucp_Cn }, { 723, PT_PC, ucp_Co },
{ 729, PT_PC, ucp_Co }, { 726, PT_SC, ucp_Common },
{ 732, PT_SC, ucp_Common }, { 733, PT_SCX, ucp_Coptic },
{ 739, PT_SCX, ucp_Coptic }, { 738, PT_SCX, ucp_Coptic },
{ 744, PT_SCX, ucp_Coptic }, { 745, PT_SCX, ucp_Cypro_Minoan },
{ 751, PT_SCX, ucp_Cypro_Minoan }, { 750, PT_SCX, ucp_Cypriot },
{ 756, PT_SCX, ucp_Cypriot }, { 755, PT_PC, ucp_Cs },
{ 761, PT_PC, ucp_Cs }, { 758, PT_SC, ucp_Cuneiform },
{ 764, PT_SC, ucp_Cuneiform }, { 768, PT_BOOL, ucp_Changes_When_Casefolded },
{ 774, PT_BOOL, ucp_Changes_When_Casefolded }, { 773, PT_BOOL, ucp_Changes_When_Casemapped },
{ 779, PT_BOOL, ucp_Changes_When_Casemapped }, { 778, PT_BOOL, ucp_Changes_When_Lowercased },
{ 784, PT_BOOL, ucp_Changes_When_Lowercased }, { 782, PT_BOOL, ucp_Changes_When_Titlecased },
{ 788, PT_BOOL, ucp_Changes_When_Titlecased }, { 786, PT_BOOL, ucp_Changes_When_Uppercased },
{ 792, PT_BOOL, ucp_Changes_When_Uppercased }, { 790, PT_SCX, ucp_Cypriot },
{ 796, PT_SCX, ucp_Cypriot }, { 798, PT_SCX, ucp_Cypro_Minoan },
{ 804, PT_SCX, ucp_Cypro_Minoan }, { 810, PT_SCX, ucp_Cyrillic },
{ 816, PT_SCX, ucp_Cyrillic }, { 819, PT_SCX, ucp_Cyrillic },
{ 825, PT_SCX, ucp_Cyrillic }, { 824, PT_BOOL, ucp_Dash },
{ 830, PT_BOOL, ucp_Dash }, { 829, PT_BOOL, ucp_Default_Ignorable_Code_Point },
{ 835, PT_BOOL, ucp_Dash }, { 855, PT_BOOL, ucp_Deprecated },
{ 840, PT_BOOL, ucp_Default_Ignorable_Code_Point }, { 859, PT_BOOL, ucp_Deprecated },
{ 866, PT_BOOL, ucp_Deprecated }, { 870, PT_SC, ucp_Deseret },
{ 870, PT_BOOL, ucp_Deprecated }, { 878, PT_SCX, ucp_Devanagari },
{ 881, PT_SC, ucp_Deseret }, { 883, PT_SCX, ucp_Devanagari },
{ 889, PT_SCX, ucp_Devanagari }, { 894, PT_BOOL, ucp_Default_Ignorable_Code_Point },
{ 894, PT_SCX, ucp_Devanagari }, { 897, PT_BOOL, ucp_Diacritic },
{ 905, PT_BOOL, ucp_Default_Ignorable_Code_Point }, { 901, PT_BOOL, ucp_Diacritic },
{ 908, PT_BOOL, ucp_Diacritic }, { 911, PT_SC, ucp_Dives_Akuru },
{ 912, PT_BOOL, ucp_Diacritic }, { 916, PT_SC, ucp_Dives_Akuru },
{ 922, PT_SC, ucp_Dives_Akuru }, { 927, PT_SCX, ucp_Dogra },
{ 927, PT_SC, ucp_Dives_Akuru }, { 932, PT_SCX, ucp_Dogra },
{ 938, PT_SCX, ucp_Dogra }, { 938, PT_SC, ucp_Deseret },
{ 943, PT_SCX, ucp_Dogra }, { 943, PT_SCX, ucp_Duployan },
{ 949, PT_SC, ucp_Deseret }, { 948, PT_SCX, ucp_Duployan },
{ 954, PT_SCX, ucp_Duployan }, { 957, PT_BOOL, ucp_Emoji_Modifier_Base },
{ 959, PT_SCX, ucp_Duployan }, { 963, PT_BOOL, ucp_Emoji_Component },
{ 968, PT_BOOL, ucp_Emoji_Modifier_Base }, { 969, PT_SC, ucp_Egyptian_Hieroglyphs },
{ 974, PT_BOOL, ucp_Emoji_Component }, { 974, PT_SC, ucp_Egyptian_Hieroglyphs },
{ 980, PT_SC, ucp_Egyptian_Hieroglyphs }, { 994, PT_SC, ucp_Elbasan },
{ 985, PT_SC, ucp_Egyptian_Hieroglyphs }, { 999, PT_SC, ucp_Elbasan },
{ 1005, PT_SC, ucp_Elbasan }, { 1007, PT_SC, ucp_Elymaic },
{ 1010, PT_SC, ucp_Elbasan }, { 1012, PT_SC, ucp_Elymaic },
{ 1018, PT_SC, ucp_Elymaic }, { 1020, PT_BOOL, ucp_Emoji_Modifier },
{ 1023, PT_SC, ucp_Elymaic }, { 1025, PT_BOOL, ucp_Emoji },
{ 1031, PT_BOOL, ucp_Emoji_Modifier }, { 1031, PT_BOOL, ucp_Emoji_Component },
{ 1036, PT_BOOL, ucp_Emoji }, { 1046, PT_BOOL, ucp_Emoji_Modifier },
{ 1042, PT_BOOL, ucp_Emoji }, { 1060, PT_BOOL, ucp_Emoji_Modifier_Base },
{ 1048, PT_BOOL, ucp_Emoji_Component }, { 1078, PT_BOOL, ucp_Emoji_Presentation },
{ 1063, PT_BOOL, ucp_Emoji_Modifier }, { 1096, PT_BOOL, ucp_Emoji_Presentation },
{ 1077, PT_BOOL, ucp_Emoji_Modifier_Base }, { 1102, PT_SC, ucp_Ethiopic },
{ 1095, PT_BOOL, ucp_Emoji_Presentation }, { 1107, PT_SC, ucp_Ethiopic },
{ 1113, PT_BOOL, ucp_Emoji_Presentation }, { 1116, PT_BOOL, ucp_Extender },
{ 1119, PT_SC, ucp_Ethiopic }, { 1120, PT_BOOL, ucp_Extended_Pictographic },
{ 1124, PT_SC, ucp_Ethiopic }, { 1141, PT_BOOL, ucp_Extender },
{ 1133, PT_BOOL, ucp_Extender }, { 1150, PT_BOOL, ucp_Extended_Pictographic },
{ 1137, PT_BOOL, ucp_Extended_Pictographic }, { 1158, PT_SCX, ucp_Georgian },
{ 1158, PT_BOOL, ucp_Extender }, { 1163, PT_SCX, ucp_Georgian },
{ 1167, PT_BOOL, ucp_Extended_Pictographic }, { 1172, PT_SCX, ucp_Glagolitic },
{ 1175, PT_SCX, ucp_Georgian }, { 1177, PT_SCX, ucp_Glagolitic },
{ 1180, PT_SCX, ucp_Georgian }, { 1188, PT_SCX, ucp_Gunjala_Gondi },
{ 1189, PT_SCX, ucp_Glagolitic }, { 1193, PT_SCX, ucp_Masaram_Gondi },
{ 1194, PT_SCX, ucp_Glagolitic }, { 1198, PT_SC, ucp_Gothic },
{ 1205, PT_SCX, ucp_Gunjala_Gondi }, { 1203, PT_SC, ucp_Gothic },
{ 1210, PT_SCX, ucp_Masaram_Gondi }, { 1210, PT_SCX, ucp_Grantha },
{ 1215, PT_SC, ucp_Gothic }, { 1215, PT_SCX, ucp_Grantha },
{ 1220, PT_SC, ucp_Gothic }, { 1223, PT_BOOL, ucp_Grapheme_Base },
{ 1227, PT_SCX, ucp_Grantha }, { 1236, PT_BOOL, ucp_Grapheme_Extend },
{ 1232, PT_SCX, ucp_Grantha }, { 1251, PT_BOOL, ucp_Grapheme_Link },
{ 1240, PT_BOOL, ucp_Grapheme_Base }, { 1264, PT_BOOL, ucp_Grapheme_Base },
{ 1253, PT_BOOL, ucp_Grapheme_Extend }, { 1271, PT_SCX, ucp_Greek },
{ 1268, PT_BOOL, ucp_Grapheme_Link }, { 1277, PT_SCX, ucp_Greek },
{ 1281, PT_BOOL, ucp_Grapheme_Base }, { 1282, PT_BOOL, ucp_Grapheme_Extend },
{ 1288, PT_SCX, ucp_Greek }, { 1288, PT_BOOL, ucp_Grapheme_Link },
{ 1294, PT_SCX, ucp_Greek }, { 1295, PT_SCX, ucp_Gujarati },
{ 1299, PT_BOOL, ucp_Grapheme_Extend }, { 1304, PT_SCX, ucp_Gujarati },
{ 1305, PT_BOOL, ucp_Grapheme_Link }, { 1309, PT_SCX, ucp_Gunjala_Gondi },
{ 1312, PT_SCX, ucp_Gujarati }, { 1322, PT_SCX, ucp_Gurmukhi },
{ 1321, PT_SCX, ucp_Gujarati }, { 1331, PT_SCX, ucp_Gurmukhi },
{ 1326, PT_SCX, ucp_Gunjala_Gondi }, { 1336, PT_SCX, ucp_Han },
{ 1339, PT_SCX, ucp_Gurmukhi }, { 1340, PT_SCX, ucp_Hangul },
{ 1348, PT_SCX, ucp_Gurmukhi }, { 1345, PT_SCX, ucp_Hangul },
{ 1353, PT_SCX, ucp_Han }, { 1352, PT_SCX, ucp_Han },
{ 1357, PT_SCX, ucp_Hangul }, { 1357, PT_SCX, ucp_Hanifi_Rohingya },
{ 1362, PT_SCX, ucp_Hangul }, { 1372, PT_SCX, ucp_Hanunoo },
{ 1369, PT_SCX, ucp_Han }, { 1377, PT_SCX, ucp_Hanunoo },
{ 1374, PT_SCX, ucp_Hanifi_Rohingya }, { 1385, PT_SC, ucp_Hatran },
{ 1389, PT_SCX, ucp_Hanunoo }, { 1390, PT_SC, ucp_Hatran },
{ 1394, PT_SCX, ucp_Hanunoo }, { 1397, PT_SC, ucp_Hebrew },
{ 1402, PT_SC, ucp_Hatran }, { 1402, PT_SC, ucp_Hebrew },
{ 1407, PT_SC, ucp_Hatran }, { 1409, PT_BOOL, ucp_Hex_Digit },
{ 1414, PT_SC, ucp_Hebrew }, { 1413, PT_BOOL, ucp_Hex_Digit },
{ 1419, PT_SC, ucp_Hebrew }, { 1422, PT_SCX, ucp_Hiragana },
{ 1426, PT_BOOL, ucp_Hex_Digit }, { 1427, PT_SCX, ucp_Hiragana },
{ 1430, PT_BOOL, ucp_Hex_Digit }, { 1436, PT_SC, ucp_Anatolian_Hieroglyphs },
{ 1439, PT_SCX, ucp_Hiragana }, { 1441, PT_SC, ucp_Pahawh_Hmong },
{ 1444, PT_SCX, ucp_Hiragana }, { 1446, PT_SC, ucp_Nyiakeng_Puachue_Hmong },
{ 1453, PT_SC, ucp_Anatolian_Hieroglyphs }, { 1451, PT_SC, ucp_Old_Hungarian },
{ 1458, PT_SC, ucp_Pahawh_Hmong }, { 1456, PT_BOOL, ucp_ID_Continue },
{ 1463, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, { 1460, PT_BOOL, ucp_ID_Continue },
{ 1468, PT_SC, ucp_Old_Hungarian }, { 1471, PT_BOOL, ucp_Ideographic },
{ 1473, PT_BOOL, ucp_ID_Continue }, { 1476, PT_BOOL, ucp_Ideographic },
{ 1477, PT_BOOL, ucp_ID_Continue }, { 1488, PT_BOOL, ucp_ID_Start },
{ 1488, PT_BOOL, ucp_Ideographic }, { 1492, PT_BOOL, ucp_IDS_Binary_Operator },
{ 1493, PT_BOOL, ucp_Ideographic }, { 1497, PT_BOOL, ucp_IDS_Binary_Operator },
{ 1505, PT_BOOL, ucp_ID_Start }, { 1515, PT_BOOL, ucp_IDS_Trinary_Operator },
{ 1509, PT_BOOL, ucp_IDS_Binary_Operator }, { 1520, PT_BOOL, ucp_ID_Start },
{ 1514, PT_BOOL, ucp_IDS_Binary_Operator }, { 1528, PT_BOOL, ucp_IDS_Trinary_Operator },
{ 1532, PT_BOOL, ucp_IDS_Trinary_Operator }, { 1547, PT_SC, ucp_Imperial_Aramaic },
{ 1537, PT_BOOL, ucp_ID_Start }, { 1563, PT_SC, ucp_Inherited },
{ 1545, PT_BOOL, ucp_IDS_Trinary_Operator }, { 1573, PT_SC, ucp_Inscriptional_Pahlavi },
{ 1564, PT_SC, ucp_Imperial_Aramaic }, { 1594, PT_SC, ucp_Inscriptional_Parthian },
{ 1580, PT_SC, ucp_Inherited }, { 1616, PT_SC, ucp_Old_Italic },
{ 1590, PT_SC, ucp_Inscriptional_Pahlavi }, { 1621, PT_SCX, ucp_Javanese },
{ 1611, PT_SC, ucp_Inscriptional_Parthian }, { 1626, PT_SCX, ucp_Javanese },
{ 1633, PT_SC, ucp_Old_Italic }, { 1635, PT_BOOL, ucp_Join_Control },
{ 1638, PT_SCX, ucp_Javanese }, { 1641, PT_BOOL, ucp_Join_Control },
{ 1643, PT_SCX, ucp_Javanese }, { 1653, PT_SCX, ucp_Kaithi },
{ 1652, PT_BOOL, ucp_Join_Control }, { 1660, PT_SCX, ucp_Kayah_Li },
{ 1658, PT_BOOL, ucp_Join_Control }, { 1665, PT_SCX, ucp_Katakana },
{ 1670, PT_SCX, ucp_Kaithi }, { 1670, PT_SCX, ucp_Kannada },
{ 1677, PT_SCX, ucp_Kayah_Li }, { 1678, PT_SCX, ucp_Katakana },
{ 1682, PT_SCX, ucp_Katakana }, { 1687, PT_SCX, ucp_Kayah_Li },
{ 1687, PT_SCX, ucp_Kannada }, { 1695, PT_SC, ucp_Kharoshthi },
{ 1695, PT_SCX, ucp_Katakana }, { 1700, PT_SC, ucp_Kharoshthi },
{ 1704, PT_SCX, ucp_Kayah_Li }, { 1711, PT_SC, ucp_Khitan_Small_Script },
{ 1712, PT_SC, ucp_Kharoshthi }, { 1729, PT_SC, ucp_Khmer },
{ 1717, PT_SC, ucp_Kharoshthi }, { 1735, PT_SC, ucp_Khmer },
{ 1728, PT_SC, ucp_Khitan_Small_Script }, { 1740, PT_SCX, ucp_Khojki },
{ 1746, PT_SC, ucp_Khmer }, { 1745, PT_SCX, ucp_Khojki },
{ 1752, PT_SC, ucp_Khmer }, { 1752, PT_SCX, ucp_Khudawadi },
{ 1757, PT_SCX, ucp_Khojki }, { 1762, PT_SC, ucp_Khitan_Small_Script },
{ 1762, PT_SCX, ucp_Khojki }, { 1767, PT_SCX, ucp_Kannada },
{ 1769, PT_SCX, ucp_Khudawadi }, { 1772, PT_SCX, ucp_Kaithi },
{ 1779, PT_SC, ucp_Khitan_Small_Script }, { 1777, PT_GC, ucp_L },
{ 1784, PT_SCX, ucp_Kannada }, { 1779, PT_LAMP, 0 },
{ 1789, PT_SCX, ucp_Kaithi }, { 1782, PT_SC, ucp_Tai_Tham },
{ 1794, PT_GC, ucp_L }, { 1787, PT_SC, ucp_Lao },
{ 1796, PT_LAMP, 0 }, { 1791, PT_SC, ucp_Lao },
{ 1799, PT_SC, ucp_Tai_Tham }, { 1796, PT_SCX, ucp_Latin },
{ 1804, PT_SC, ucp_Lao }, { 1802, PT_SCX, ucp_Latin },
{ 1808, PT_SC, ucp_Lao }, { 1807, PT_LAMP, 0 },
{ 1813, PT_SCX, ucp_Latin }, { 1810, PT_SC, ucp_Lepcha },
{ 1819, PT_SCX, ucp_Latin }, { 1815, PT_SC, ucp_Lepcha },
{ 1824, PT_LAMP, 0 }, { 1822, PT_SCX, ucp_Limbu },
{ 1827, PT_SC, ucp_Lepcha }, { 1827, PT_SCX, ucp_Limbu },
{ 1832, PT_SC, ucp_Lepcha }, { 1833, PT_SCX, ucp_Linear_A },
{ 1839, PT_SCX, ucp_Limbu }, { 1838, PT_SCX, ucp_Linear_B },
{ 1844, PT_SCX, ucp_Limbu }, { 1843, PT_SCX, ucp_Linear_A },
{ 1850, PT_SCX, ucp_Linear_A }, { 1851, PT_SCX, ucp_Linear_B },
{ 1855, PT_SCX, ucp_Linear_B }, { 1859, PT_SC, ucp_Lisu },
{ 1860, PT_SCX, ucp_Linear_A }, { 1864, PT_PC, ucp_Ll },
{ 1868, PT_SCX, ucp_Linear_B }, { 1867, PT_PC, ucp_Lm },
{ 1876, PT_SC, ucp_Lisu }, { 1870, PT_PC, ucp_Lo },
{ 1881, PT_PC, ucp_Ll }, { 1873, PT_BOOL, ucp_Logical_Order_Exception },
{ 1884, PT_PC, ucp_Lm }, { 1877, PT_BOOL, ucp_Logical_Order_Exception },
{ 1887, PT_PC, ucp_Lo }, { 1899, PT_BOOL, ucp_Lowercase },
{ 1890, PT_BOOL, ucp_Logical_Order_Exception }, { 1905, PT_BOOL, ucp_Lowercase },
{ 1894, PT_BOOL, ucp_Logical_Order_Exception }, { 1915, PT_PC, ucp_Lt },
{ 1916, PT_BOOL, ucp_Lowercase }, { 1918, PT_PC, ucp_Lu },
{ 1922, PT_BOOL, ucp_Lowercase }, { 1921, PT_SC, ucp_Lycian },
{ 1932, PT_PC, ucp_Lt }, { 1926, PT_SC, ucp_Lycian },
{ 1935, PT_PC, ucp_Lu }, { 1933, PT_SC, ucp_Lydian },
{ 1938, PT_SC, ucp_Lycian }, { 1938, PT_SC, ucp_Lydian },
{ 1943, PT_SC, ucp_Lycian }, { 1945, PT_GC, ucp_M },
{ 1950, PT_SC, ucp_Lydian }, { 1947, PT_SCX, ucp_Mahajani },
{ 1955, PT_SC, ucp_Lydian }, { 1956, PT_SCX, ucp_Mahajani },
{ 1962, PT_GC, ucp_M }, { 1961, PT_SC, ucp_Makasar },
{ 1964, PT_SCX, ucp_Mahajani }, { 1966, PT_SC, ucp_Makasar },
{ 1973, PT_SCX, ucp_Mahajani }, { 1974, PT_SCX, ucp_Malayalam },
{ 1978, PT_SC, ucp_Makasar }, { 1984, PT_SCX, ucp_Mandaic },
{ 1983, PT_SC, ucp_Makasar }, { 1989, PT_SCX, ucp_Mandaic },
{ 1991, PT_SCX, ucp_Malayalam }, { 1997, PT_SCX, ucp_Manichaean },
{ 2001, PT_SCX, ucp_Mandaic }, { 2002, PT_SCX, ucp_Manichaean },
{ 2006, PT_SCX, ucp_Mandaic }, { 2013, PT_SC, ucp_Marchen },
{ 2014, PT_SCX, ucp_Manichaean }, { 2018, PT_SC, ucp_Marchen },
{ 2019, PT_SCX, ucp_Manichaean }, { 2026, PT_SCX, ucp_Masaram_Gondi },
{ 2030, PT_SC, ucp_Marchen }, { 2039, PT_BOOL, ucp_Math },
{ 2035, PT_SC, ucp_Marchen }, { 2044, PT_PC, ucp_Mc },
{ 2043, PT_SCX, ucp_Masaram_Gondi }, { 2047, PT_PC, ucp_Me },
{ 2056, PT_BOOL, ucp_Math }, { 2050, PT_SC, ucp_Medefaidrin },
{ 2061, PT_BOOL, ucp_Math }, { 2062, PT_SC, ucp_Medefaidrin },
{ 2066, PT_PC, ucp_Mc }, { 2067, PT_SC, ucp_Meetei_Mayek },
{ 2069, PT_PC, ucp_Me }, { 2079, PT_SC, ucp_Mende_Kikakui },
{ 2072, PT_SC, ucp_Medefaidrin }, { 2084, PT_SC, ucp_Mende_Kikakui },
{ 2084, PT_SC, ucp_Medefaidrin }, { 2097, PT_SC, ucp_Meroitic_Cursive },
{ 2089, PT_SC, ucp_Meetei_Mayek }, { 2102, PT_SC, ucp_Meroitic_Hieroglyphs },
{ 2101, PT_SC, ucp_Mende_Kikakui }, { 2107, PT_SC, ucp_Meroitic_Cursive },
{ 2106, PT_SC, ucp_Mende_Kikakui }, { 2123, PT_SC, ucp_Meroitic_Hieroglyphs },
{ 2119, PT_SC, ucp_Meroitic_Cursive }, { 2143, PT_SC, ucp_Miao },
{ 2124, PT_SC, ucp_Meroitic_Hieroglyphs }, { 2148, PT_SCX, ucp_Malayalam },
{ 2129, PT_SC, ucp_Meroitic_Cursive }, { 2153, PT_PC, ucp_Mn },
{ 2145, PT_SC, ucp_Meroitic_Hieroglyphs }, { 2156, PT_SCX, ucp_Modi },
{ 2165, PT_SC, ucp_Miao }, { 2161, PT_SCX, ucp_Mongolian },
{ 2170, PT_SCX, ucp_Malayalam }, { 2166, PT_SCX, ucp_Mongolian },
{ 2175, PT_PC, ucp_Mn }, { 2176, PT_SC, ucp_Mro },
{ 2178, PT_SCX, ucp_Modi }, { 2180, PT_SC, ucp_Mro },
{ 2183, PT_SCX, ucp_Mongolian }, { 2185, PT_SC, ucp_Meetei_Mayek },
{ 2188, PT_SCX, ucp_Mongolian }, { 2190, PT_SCX, ucp_Multani },
{ 2198, PT_SC, ucp_Mro }, { 2195, PT_SCX, ucp_Multani },
{ 2202, PT_SC, ucp_Mro }, { 2203, PT_SCX, ucp_Myanmar },
{ 2207, PT_SC, ucp_Meetei_Mayek }, { 2211, PT_SCX, ucp_Myanmar },
{ 2212, PT_SCX, ucp_Multani }, { 2216, PT_GC, ucp_N },
{ 2217, PT_SCX, ucp_Multani }, { 2218, PT_SC, ucp_Nabataean },
{ 2225, PT_SCX, ucp_Myanmar }, { 2228, PT_SCX, ucp_Nandinagari },
{ 2233, PT_SCX, ucp_Myanmar }, { 2233, PT_SCX, ucp_Nandinagari },
{ 2238, PT_GC, ucp_N }, { 2245, PT_SC, ucp_Old_North_Arabian },
{ 2240, PT_SC, ucp_Nabataean }, { 2250, PT_SC, ucp_Nabataean },
{ 2250, PT_SCX, ucp_Nandinagari }, { 2255, PT_BOOL, ucp_Noncharacter_Code_Point },
{ 2255, PT_SCX, ucp_Nandinagari }, { 2261, PT_PC, ucp_Nd },
{ 2267, PT_SC, ucp_Old_North_Arabian }, { 2264, PT_SC, ucp_Newa },
{ 2272, PT_SC, ucp_Nabataean }, { 2269, PT_SC, ucp_New_Tai_Lue },
{ 2277, PT_BOOL, ucp_Noncharacter_Code_Point }, { 2279, PT_SCX, ucp_Nko },
{ 2283, PT_PC, ucp_Nd }, { 2283, PT_SCX, ucp_Nko },
{ 2286, PT_SC, ucp_Newa }, { 2288, PT_PC, ucp_Nl },
{ 2291, PT_SC, ucp_New_Tai_Lue }, { 2291, PT_PC, ucp_No },
{ 2301, PT_SCX, ucp_Nko }, { 2294, PT_BOOL, ucp_Noncharacter_Code_Point },
{ 2305, PT_SCX, ucp_Nko }, { 2316, PT_SC, ucp_Nushu },
{ 2310, PT_PC, ucp_Nl }, { 2321, PT_SC, ucp_Nushu },
{ 2313, PT_PC, ucp_No }, { 2327, PT_SC, ucp_Nyiakeng_Puachue_Hmong },
{ 2316, PT_BOOL, ucp_Noncharacter_Code_Point }, { 2348, PT_SC, ucp_Ogham },
{ 2338, PT_SC, ucp_Nushu }, { 2353, PT_SC, ucp_Ogham },
{ 2343, PT_SC, ucp_Nushu }, { 2359, PT_SC, ucp_Ol_Chiki },
{ 2349, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, { 2367, PT_SC, ucp_Ol_Chiki },
{ 2370, PT_SC, ucp_Ogham }, { 2372, PT_SC, ucp_Old_Hungarian },
{ 2375, PT_SC, ucp_Ogham }, { 2385, PT_SC, ucp_Old_Italic },
{ 2381, PT_SC, ucp_Ol_Chiki }, { 2395, PT_SC, ucp_Old_North_Arabian },
{ 2389, PT_SC, ucp_Ol_Chiki }, { 2411, PT_SCX, ucp_Old_Permic },
{ 2394, PT_SC, ucp_Old_Hungarian }, { 2421, PT_SC, ucp_Old_Persian },
{ 2407, PT_SC, ucp_Old_Italic }, { 2432, PT_SC, ucp_Old_Sogdian },
{ 2417, PT_SC, ucp_Old_North_Arabian }, { 2443, PT_SC, ucp_Old_South_Arabian },
{ 2433, PT_SCX, ucp_Old_Permic }, { 2459, PT_SC, ucp_Old_Turkic },
{ 2443, PT_SC, ucp_Old_Persian }, { 2469, PT_SCX, ucp_Old_Uyghur },
{ 2454, PT_SC, ucp_Old_Sogdian }, { 2479, PT_SCX, ucp_Oriya },
{ 2465, PT_SC, ucp_Old_South_Arabian }, { 2485, PT_SC, ucp_Old_Turkic },
{ 2481, PT_SC, ucp_Old_Turkic }, { 2490, PT_SCX, ucp_Oriya },
{ 2491, PT_SCX, ucp_Old_Uyghur }, { 2495, PT_SC, ucp_Osage },
{ 2501, PT_SCX, ucp_Oriya }, { 2501, PT_SC, ucp_Osage },
{ 2507, PT_SC, ucp_Old_Turkic }, { 2506, PT_SC, ucp_Osmanya },
{ 2512, PT_SCX, ucp_Oriya }, { 2511, PT_SC, ucp_Osmanya },
{ 2517, PT_SC, ucp_Osage }, { 2519, PT_SCX, ucp_Old_Uyghur },
{ 2523, PT_SC, ucp_Osage }, { 2524, PT_GC, ucp_P },
{ 2528, PT_SC, ucp_Osmanya }, { 2526, PT_SC, ucp_Pahawh_Hmong },
{ 2533, PT_SC, ucp_Osmanya }, { 2538, PT_SC, ucp_Palmyrene },
{ 2541, PT_SCX, ucp_Old_Uyghur }, { 2543, PT_SC, ucp_Palmyrene },
{ 2546, PT_GC, ucp_P }, { 2553, PT_BOOL, ucp_Pattern_Syntax },
{ 2548, PT_SC, ucp_Pahawh_Hmong }, { 2560, PT_BOOL, ucp_Pattern_Syntax },
{ 2560, PT_SC, ucp_Palmyrene }, { 2574, PT_BOOL, ucp_Pattern_White_Space },
{ 2565, PT_SC, ucp_Palmyrene }, { 2592, PT_BOOL, ucp_Pattern_White_Space },
{ 2575, PT_BOOL, ucp_Pattern_Syntax }, { 2598, PT_SC, ucp_Pau_Cin_Hau },
{ 2582, PT_BOOL, ucp_Pattern_Syntax }, { 2603, PT_SC, ucp_Pau_Cin_Hau },
{ 2596, PT_BOOL, ucp_Pattern_White_Space }, { 2613, PT_PC, ucp_Pc },
{ 2614, PT_BOOL, ucp_Pattern_White_Space }, { 2616, PT_BOOL, ucp_Prepended_Concatenation_Mark },
{ 2620, PT_SC, ucp_Pau_Cin_Hau }, { 2620, PT_PC, ucp_Pd },
{ 2625, PT_SC, ucp_Pau_Cin_Hau }, { 2623, PT_PC, ucp_Pe },
{ 2635, PT_PC, ucp_Pc }, { 2626, PT_SCX, ucp_Old_Permic },
{ 2638, PT_BOOL, ucp_Prepended_Concatenation_Mark }, { 2631, PT_PC, ucp_Pf },
{ 2642, PT_PC, ucp_Pd }, { 2634, PT_SCX, ucp_Phags_Pa },
{ 2645, PT_PC, ucp_Pe }, { 2639, PT_SCX, ucp_Phags_Pa },
{ 2648, PT_SCX, ucp_Old_Permic }, { 2647, PT_SC, ucp_Inscriptional_Pahlavi },
{ 2653, PT_PC, ucp_Pf }, { 2652, PT_SCX, ucp_Psalter_Pahlavi },
{ 2656, PT_SCX, ucp_Phags_Pa }, { 2657, PT_SC, ucp_Phoenician },
{ 2661, PT_SCX, ucp_Phags_Pa }, { 2662, PT_SC, ucp_Phoenician },
{ 2669, PT_SC, ucp_Inscriptional_Pahlavi }, { 2673, PT_PC, ucp_Pi },
{ 2674, PT_SCX, ucp_Psalter_Pahlavi }, { 2676, PT_SC, ucp_Miao },
{ 2679, PT_SC, ucp_Phoenician }, { 2681, PT_PC, ucp_Po },
{ 2684, PT_SC, ucp_Phoenician }, { 2684, PT_BOOL, ucp_Prepended_Concatenation_Mark },
{ 2695, PT_PC, ucp_Pi }, { 2711, PT_SC, ucp_Inscriptional_Parthian },
{ 2698, PT_SC, ucp_Miao }, { 2716, PT_PC, ucp_Ps },
{ 2703, PT_PC, ucp_Po }, { 2719, PT_SCX, ucp_Psalter_Pahlavi },
{ 2706, PT_BOOL, ucp_Prepended_Concatenation_Mark }, { 2734, PT_SCX, ucp_Coptic },
{ 2733, PT_SC, ucp_Inscriptional_Parthian }, { 2739, PT_SC, ucp_Inherited },
{ 2738, PT_PC, ucp_Ps }, { 2744, PT_BOOL, ucp_Quotation_Mark },
{ 2741, PT_SCX, ucp_Psalter_Pahlavi }, { 2750, PT_BOOL, ucp_Quotation_Mark },
{ 2756, PT_SCX, ucp_Coptic }, { 2764, PT_BOOL, ucp_Radical },
{ 2761, PT_SC, ucp_Inherited }, { 2772, PT_BOOL, ucp_Regional_Indicator },
{ 2766, PT_BOOL, ucp_Quotation_Mark }, { 2790, PT_SC, ucp_Rejang },
{ 2772, PT_BOOL, ucp_Quotation_Mark }, { 2797, PT_BOOL, ucp_Regional_Indicator },
{ 2786, PT_BOOL, ucp_Radical }, { 2800, PT_SC, ucp_Rejang },
{ 2794, PT_BOOL, ucp_Radical }, { 2805, PT_SCX, ucp_Hanifi_Rohingya },
{ 2802, PT_BOOL, ucp_Regional_Indicator }, { 2810, PT_SC, ucp_Runic },
{ 2820, PT_SC, ucp_Rejang }, { 2816, PT_SC, ucp_Runic },
{ 2827, PT_BOOL, ucp_Regional_Indicator }, { 2821, PT_GC, ucp_S },
{ 2830, PT_SC, ucp_Rejang }, { 2823, PT_SC, ucp_Samaritan },
{ 2835, PT_SCX, ucp_Hanifi_Rohingya }, { 2833, PT_SC, ucp_Samaritan },
{ 2840, PT_SC, ucp_Runic }, { 2838, PT_SC, ucp_Old_South_Arabian },
{ 2846, PT_SC, ucp_Runic }, { 2843, PT_SC, ucp_Saurashtra },
{ 2851, PT_GC, ucp_S }, { 2848, PT_SC, ucp_Saurashtra },
{ 2853, PT_SC, ucp_Samaritan }, { 2859, PT_PC, ucp_Sc },
{ 2863, PT_SC, ucp_Samaritan }, { 2862, PT_BOOL, ucp_Soft_Dotted },
{ 2868, PT_SC, ucp_Old_South_Arabian }, { 2865, PT_BOOL, ucp_Sentence_Terminal },
{ 2873, PT_SC, ucp_Saurashtra }, { 2882, PT_SC, ucp_SignWriting },
{ 2878, PT_SC, ucp_Saurashtra }, { 2887, PT_SCX, ucp_Sharada },
{ 2889, PT_PC, ucp_Sc }, { 2895, PT_SC, ucp_Shavian },
{ 2892, PT_BOOL, ucp_Soft_Dotted }, { 2903, PT_SC, ucp_Shavian },
{ 2895, PT_BOOL, ucp_Sentence_Terminal }, { 2908, PT_SCX, ucp_Sharada },
{ 2912, PT_SC, ucp_SignWriting }, { 2913, PT_SC, ucp_Siddham },
{ 2917, PT_SCX, ucp_Sharada }, { 2918, PT_SC, ucp_Siddham },
{ 2925, PT_SC, ucp_Shavian }, { 2926, PT_SC, ucp_SignWriting },
{ 2933, PT_SC, ucp_Shavian }, { 2938, PT_SCX, ucp_Khudawadi },
{ 2938, PT_SCX, ucp_Sharada }, { 2943, PT_SCX, ucp_Sinhala },
{ 2943, PT_SC, ucp_Siddham }, { 2948, PT_SCX, ucp_Sinhala },
{ 2948, PT_SC, ucp_Siddham }, { 2956, PT_PC, ucp_Sk },
{ 2956, PT_SC, ucp_SignWriting }, { 2959, PT_PC, ucp_Sm },
{ 2968, PT_SCX, ucp_Khudawadi }, { 2962, PT_PC, ucp_So },
{ 2973, PT_SCX, ucp_Sinhala }, { 2965, PT_BOOL, ucp_Soft_Dotted },
{ 2978, PT_SCX, ucp_Sinhala }, { 2976, PT_SCX, ucp_Sogdian },
{ 2986, PT_PC, ucp_Sk }, { 2981, PT_SCX, ucp_Sogdian },
{ 2989, PT_PC, ucp_Sm }, { 2989, PT_SC, ucp_Old_Sogdian },
{ 2992, PT_PC, ucp_So }, { 2994, PT_SC, ucp_Sora_Sompeng },
{ 2995, PT_BOOL, ucp_Soft_Dotted }, { 2999, PT_SC, ucp_Sora_Sompeng },
{ 3006, PT_SCX, ucp_Sogdian }, { 3011, PT_SC, ucp_Soyombo },
{ 3011, PT_SCX, ucp_Sogdian }, { 3016, PT_SC, ucp_Soyombo },
{ 3019, PT_SC, ucp_Old_Sogdian }, { 3024, PT_BOOL, ucp_White_Space },
{ 3024, PT_SC, ucp_Sora_Sompeng }, { 3030, PT_BOOL, ucp_Sentence_Terminal },
{ 3029, PT_SC, ucp_Sora_Sompeng }, { 3036, PT_SC, ucp_Sundanese },
{ 3041, PT_SC, ucp_Soyombo }, { 3041, PT_SC, ucp_Sundanese },
{ 3046, PT_SC, ucp_Soyombo }, { 3051, PT_SCX, ucp_Syloti_Nagri },
{ 3054, PT_BOOL, ucp_White_Space }, { 3056, PT_SCX, ucp_Syloti_Nagri },
{ 3060, PT_BOOL, ucp_Sentence_Terminal }, { 3068, PT_SCX, ucp_Syriac },
{ 3066, PT_SC, ucp_Sundanese }, { 3073, PT_SCX, ucp_Syriac },
{ 3071, PT_SC, ucp_Sundanese }, { 3080, PT_SCX, ucp_Tagalog },
{ 3081, PT_SCX, ucp_Syloti_Nagri }, { 3088, PT_SCX, ucp_Tagbanwa },
{ 3086, PT_SCX, ucp_Syloti_Nagri }, { 3093, PT_SCX, ucp_Tagbanwa },
{ 3098, PT_SCX, ucp_Syriac }, { 3102, PT_SCX, ucp_Tai_Le },
{ 3103, PT_SCX, ucp_Syriac }, { 3108, PT_SC, ucp_Tai_Tham },
{ 3110, PT_SCX, ucp_Tagalog }, { 3116, PT_SC, ucp_Tai_Viet },
{ 3118, PT_SCX, ucp_Tagbanwa }, { 3124, PT_SCX, ucp_Takri },
{ 3123, PT_SCX, ucp_Tagbanwa }, { 3129, PT_SCX, ucp_Takri },
{ 3132, PT_SCX, ucp_Tai_Le }, { 3135, PT_SCX, ucp_Tai_Le },
{ 3138, PT_SC, ucp_Tai_Tham }, { 3140, PT_SC, ucp_New_Tai_Lue },
{ 3146, PT_SC, ucp_Tai_Viet }, { 3145, PT_SCX, ucp_Tamil },
{ 3154, PT_SCX, ucp_Takri }, { 3151, PT_SCX, ucp_Tamil },
{ 3159, PT_SCX, ucp_Takri }, { 3156, PT_SC, ucp_Tangut },
{ 3165, PT_SCX, ucp_Tai_Le }, { 3161, PT_SC, ucp_Tangsa },
{ 3170, PT_SC, ucp_New_Tai_Lue }, { 3168, PT_SC, ucp_Tangut },
{ 3175, PT_SCX, ucp_Tamil }, { 3175, PT_SC, ucp_Tai_Viet },
{ 3181, PT_SCX, ucp_Tamil }, { 3180, PT_SCX, ucp_Telugu },
{ 3186, PT_SC, ucp_Tangut }, { 3185, PT_SCX, ucp_Telugu },
{ 3191, PT_SC, ucp_Tangsa }, { 3192, PT_BOOL, ucp_Terminal_Punctuation },
{ 3198, PT_SC, ucp_Tangut }, { 3197, PT_BOOL, ucp_Terminal_Punctuation },
{ 3205, PT_SC, ucp_Tai_Viet }, { 3217, PT_SC, ucp_Tifinagh },
{ 3210, PT_SCX, ucp_Telugu }, { 3222, PT_SCX, ucp_Tagalog },
{ 3215, PT_SCX, ucp_Telugu }, { 3227, PT_SCX, ucp_Thaana },
{ 3222, PT_BOOL, ucp_Terminal_Punctuation }, { 3232, PT_SCX, ucp_Thaana },
{ 3227, PT_BOOL, ucp_Terminal_Punctuation }, { 3239, PT_SC, ucp_Thai },
{ 3247, PT_SC, ucp_Tifinagh }, { 3244, PT_SC, ucp_Tibetan },
{ 3252, PT_SCX, ucp_Tagalog }, { 3252, PT_SC, ucp_Tibetan },
{ 3257, PT_SCX, ucp_Thaana }, { 3257, PT_SC, ucp_Tifinagh },
{ 3262, PT_SCX, ucp_Thaana }, { 3266, PT_SCX, ucp_Tirhuta },
{ 3269, PT_SC, ucp_Thai }, { 3271, PT_SCX, ucp_Tirhuta },
{ 3274, PT_SC, ucp_Tibetan }, { 3279, PT_SC, ucp_Tangsa },
{ 3282, PT_SC, ucp_Tibetan }, { 3284, PT_SC, ucp_Toto },
{ 3287, PT_SC, ucp_Tifinagh }, { 3289, PT_SC, ucp_Ugaritic },
{ 3296, PT_SCX, ucp_Tirhuta }, { 3294, PT_SC, ucp_Ugaritic },
{ 3301, PT_SCX, ucp_Tirhuta }, { 3303, PT_BOOL, ucp_Unified_Ideograph },
{ 3309, PT_SC, ucp_Tangsa }, { 3309, PT_BOOL, ucp_Unified_Ideograph },
{ 3314, PT_SC, ucp_Toto }, { 3326, PT_SC, ucp_Unknown },
{ 3319, PT_SC, ucp_Ugaritic }, { 3334, PT_BOOL, ucp_Uppercase },
{ 3324, PT_SC, ucp_Ugaritic }, { 3340, PT_BOOL, ucp_Uppercase },
{ 3333, PT_BOOL, ucp_Unified_Ideograph }, { 3350, PT_SC, ucp_Vai },
{ 3339, PT_BOOL, ucp_Unified_Ideograph }, { 3354, PT_SC, ucp_Vai },
{ 3356, PT_SC, ucp_Unknown }, { 3359, PT_BOOL, ucp_Variation_Selector },
{ 3364, PT_BOOL, ucp_Uppercase }, { 3377, PT_SC, ucp_Vithkuqi },
{ 3370, PT_BOOL, ucp_Uppercase }, { 3382, PT_SC, ucp_Vithkuqi },
{ 3380, PT_SC, ucp_Vai }, { 3391, PT_BOOL, ucp_Variation_Selector },
{ 3384, PT_SC, ucp_Vai }, { 3394, PT_SC, ucp_Wancho },
{ 3389, PT_BOOL, ucp_Variation_Selector }, { 3401, PT_SC, ucp_Warang_Citi },
{ 3407, PT_SC, ucp_Vithkuqi }, { 3406, PT_SC, ucp_Warang_Citi },
{ 3412, PT_SC, ucp_Vithkuqi }, { 3417, PT_SC, ucp_Wancho },
{ 3421, PT_BOOL, ucp_Variation_Selector }, { 3422, PT_BOOL, ucp_White_Space },
{ 3424, PT_SC, ucp_Wancho }, { 3433, PT_BOOL, ucp_White_Space },
{ 3431, PT_SC, ucp_Warang_Citi }, { 3440, PT_ALNUM, 0 },
{ 3436, PT_SC, ucp_Warang_Citi }, { 3444, PT_BOOL, ucp_XID_Continue },
{ 3447, PT_SC, ucp_Wancho }, { 3449, PT_BOOL, ucp_XID_Continue },
{ 3452, PT_BOOL, ucp_White_Space }, { 3461, PT_BOOL, ucp_XID_Start },
{ 3463, PT_BOOL, ucp_White_Space }, { 3466, PT_BOOL, ucp_XID_Start },
{ 3470, PT_ALNUM, 0 }, { 3475, PT_SC, ucp_Old_Persian },
{ 3474, PT_BOOL, ucp_XID_Continue }, { 3480, PT_PXSPACE, 0 },
{ 3479, PT_BOOL, ucp_XID_Continue }, { 3484, PT_SPACE, 0 },
{ 3491, PT_BOOL, ucp_XID_Start }, { 3488, PT_SC, ucp_Cuneiform },
{ 3496, PT_BOOL, ucp_XID_Start }, { 3493, PT_UCNC, 0 },
{ 3505, PT_SC, ucp_Old_Persian }, { 3497, PT_WORD, 0 },
{ 3510, PT_PXSPACE, 0 }, { 3501, PT_SCX, ucp_Yezidi },
{ 3514, PT_SPACE, 0 }, { 3506, PT_SCX, ucp_Yezidi },
{ 3518, PT_SC, ucp_Cuneiform }, { 3513, PT_SCX, ucp_Yi },
{ 3523, PT_UCNC, 0 }, { 3516, PT_SCX, ucp_Yi },
{ 3527, PT_WORD, 0 }, { 3521, PT_GC, ucp_Z },
{ 3531, PT_SCX, ucp_Yezidi }, { 3523, PT_SC, ucp_Zanabazar_Square },
{ 3536, PT_SCX, ucp_Yezidi }, { 3539, PT_SC, ucp_Zanabazar_Square },
{ 3543, PT_SCX, ucp_Yi }, { 3544, PT_SC, ucp_Inherited },
{ 3546, PT_SCX, ucp_Yi }, { 3549, PT_PC, ucp_Zl },
{ 3551, PT_GC, ucp_Z }, { 3552, PT_PC, ucp_Zp },
{ 3553, PT_SC, ucp_Zanabazar_Square }, { 3555, PT_PC, ucp_Zs },
{ 3569, PT_SC, ucp_Zanabazar_Square }, { 3558, PT_SC, ucp_Common },
{ 3574, PT_SC, ucp_Inherited }, { 3563, PT_SC, ucp_Unknown }
{ 3579, PT_PC, ucp_Zl },
{ 3582, PT_PC, ucp_Zp },
{ 3585, PT_PC, ucp_Zs },
{ 3588, PT_SC, ucp_Common },
{ 3593, PT_SC, ucp_Unknown }
}; };
const size_t PRIV(utt_size) = sizeof(PRIV(utt)) / sizeof(ucp_type_table); const size_t PRIV(utt_size) = sizeof(PRIV(utt)) / sizeof(ucp_type_table);