blob: 43b5ef8b7b80ec5e9134a4968762e53302229450 [file] [log] [blame]
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -04001/* == Start of generated table == */
2/*
3 * The following table is generated by running:
4 *
Behdad Esfahbod01a30a62016-05-06 11:50:02 +01005 * ./gen-indic-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt Blocks.txt
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -04006 *
7 * on files with these headers:
8 *
Behdad Esfahbod060e6b42018-06-05 17:31:46 -07009 * # IndicSyllabicCategory-11.0.0.txt
10 * # Date: 2018-05-21, 18:33:00 GMT [KW, RP]
11 * # IndicPositionalCategory-11.0.0.txt
12 * # Date: 2018-02-05, 16:21:00 GMT [KW, RP]
13 * # Blocks-11.0.0.txt
14 * # Date: 2017-10-16, 24:39:00 GMT [KW]
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -040015 */
16
Behdad Esfahbodc77ae402018-08-25 22:36:36 -070017#include "hb-ot-shape-complex-indic.hh"
Behdad Esfahbod6d4016f2012-03-07 15:33:14 -050018
Behdad Esfahbod8874eef2019-01-17 15:04:44 -050019#pragma GCC diagnostic push
20#pragma GCC diagnostic ignored "-Wunused-macros"
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -040021
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070022#define ISC_A INDIC_SYLLABIC_CATEGORY_AVAGRAHA /* 16 chars; Avagraha */
23#define ISC_Bi INDIC_SYLLABIC_CATEGORY_BINDU /* 83 chars; Bindu */
Behdad Esfahbodd743ce72014-06-30 15:24:02 -040024#define ISC_BJN INDIC_SYLLABIC_CATEGORY_BRAHMI_JOINING_NUMBER /* 20 chars; Brahmi_Joining_Number */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070025#define ISC_Ca INDIC_SYLLABIC_CATEGORY_CANTILLATION_MARK /* 58 chars; Cantillation_Mark */
26#define ISC_C INDIC_SYLLABIC_CATEGORY_CONSONANT /* 2110 chars; Consonant */
Behdad Esfahbod7cd92692016-05-06 11:34:46 +010027#define ISC_CD INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD /* 10 chars; Consonant_Dead */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070028#define ISC_CF INDIC_SYLLABIC_CATEGORY_CONSONANT_FINAL /* 67 chars; Consonant_Final */
Behdad Esfahbod5fa21b32014-06-30 14:30:54 -040029#define ISC_CHL INDIC_SYLLABIC_CATEGORY_CONSONANT_HEAD_LETTER /* 5 chars; Consonant_Head_Letter */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070030#define ISC_CIP INDIC_SYLLABIC_CATEGORY_CONSONANT_INITIAL_POSTFIXED /* 1 chars; Consonant_Initial_Postfixed */
Behdad Esfahbod2813e302015-12-18 11:05:11 +000031#define ISC_CK INDIC_SYLLABIC_CATEGORY_CONSONANT_KILLER /* 2 chars; Consonant_Killer */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070032#define ISC_CM INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL /* 28 chars; Consonant_Medial */
33#define ISC_CP INDIC_SYLLABIC_CATEGORY_CONSONANT_PLACEHOLDER /* 21 chars; Consonant_Placeholder */
Behdad Esfahbodbdbe9742017-10-02 10:00:31 -040034#define ISC_CPR INDIC_SYLLABIC_CATEGORY_CONSONANT_PRECEDING_REPHA /* 2 chars; Consonant_Preceding_Repha */
35#define ISC_CPrf INDIC_SYLLABIC_CATEGORY_CONSONANT_PREFIXED /* 7 chars; Consonant_Prefixed */
36#define ISC_CS INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED /* 95 chars; Consonant_Subjoined */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070037#define ISC_CSR INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA /* 4 chars; Consonant_Succeeding_Repha */
38#define ISC_CWS INDIC_SYLLABIC_CATEGORY_CONSONANT_WITH_STACKER /* 6 chars; Consonant_With_Stacker */
Behdad Esfahbodbdbe9742017-10-02 10:00:31 -040039#define ISC_GM INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK /* 3 chars; Gemination_Mark */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070040#define ISC_IS INDIC_SYLLABIC_CATEGORY_INVISIBLE_STACKER /* 11 chars; Invisible_Stacker */
Behdad Esfahbodd743ce72014-06-30 15:24:02 -040041#define ISC_ZWJ INDIC_SYLLABIC_CATEGORY_JOINER /* 1 chars; Joiner */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -040042#define ISC_ML INDIC_SYLLABIC_CATEGORY_MODIFYING_LETTER /* 1 chars; Modifying_Letter */
Behdad Esfahbodd743ce72014-06-30 15:24:02 -040043#define ISC_ZWNJ INDIC_SYLLABIC_CATEGORY_NON_JOINER /* 1 chars; Non_Joiner */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070044#define ISC_N INDIC_SYLLABIC_CATEGORY_NUKTA /* 30 chars; Nukta */
45#define ISC_Nd INDIC_SYLLABIC_CATEGORY_NUMBER /* 480 chars; Number */
Behdad Esfahbodd743ce72014-06-30 15:24:02 -040046#define ISC_NJ INDIC_SYLLABIC_CATEGORY_NUMBER_JOINER /* 1 chars; Number_Joiner */
Behdad Esfahbod81426802011-06-13 16:02:18 -040047#define ISC_x INDIC_SYLLABIC_CATEGORY_OTHER /* 1 chars; Other */
Behdad Esfahbodbdbe9742017-10-02 10:00:31 -040048#define ISC_PK INDIC_SYLLABIC_CATEGORY_PURE_KILLER /* 21 chars; Pure_Killer */
Behdad Esfahbod2813e302015-12-18 11:05:11 +000049#define ISC_RS INDIC_SYLLABIC_CATEGORY_REGISTER_SHIFTER /* 2 chars; Register_Shifter */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070050#define ISC_SM INDIC_SYLLABIC_CATEGORY_SYLLABLE_MODIFIER /* 25 chars; Syllable_Modifier */
Behdad Esfahbod5fa21b32014-06-30 14:30:54 -040051#define ISC_TL INDIC_SYLLABIC_CATEGORY_TONE_LETTER /* 7 chars; Tone_Letter */
Behdad Esfahbod2813e302015-12-18 11:05:11 +000052#define ISC_TM INDIC_SYLLABIC_CATEGORY_TONE_MARK /* 42 chars; Tone_Mark */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070053#define ISC_V INDIC_SYLLABIC_CATEGORY_VIRAMA /* 25 chars; Virama */
54#define ISC_Vs INDIC_SYLLABIC_CATEGORY_VISARGA /* 36 chars; Visarga */
Behdad Esfahbodd743ce72014-06-30 15:24:02 -040055#define ISC_Vo INDIC_SYLLABIC_CATEGORY_VOWEL /* 30 chars; Vowel */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070056#define ISC_M INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT /* 660 chars; Vowel_Dependent */
57#define ISC_VI INDIC_SYLLABIC_CATEGORY_VOWEL_INDEPENDENT /* 464 chars; Vowel_Independent */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -040058
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070059#define IMC_B INDIC_MATRA_CATEGORY_BOTTOM /* 340 chars; Bottom */
Behdad Esfahbodbdbe9742017-10-02 10:00:31 -040060#define IMC_BL INDIC_MATRA_CATEGORY_BOTTOM_AND_LEFT /* 1 chars; Bottom_And_Left */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -040061#define IMC_BR INDIC_MATRA_CATEGORY_BOTTOM_AND_RIGHT /* 2 chars; Bottom_And_Right */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070062#define IMC_L INDIC_MATRA_CATEGORY_LEFT /* 59 chars; Left */
Behdad Esfahbodd743ce72014-06-30 15:24:02 -040063#define IMC_LR INDIC_MATRA_CATEGORY_LEFT_AND_RIGHT /* 21 chars; Left_And_Right */
Behdad Esfahbod81426802011-06-13 16:02:18 -040064#define IMC_x INDIC_MATRA_CATEGORY_NOT_APPLICABLE /* 1 chars; Not_Applicable */
Behdad Esfahbod2813e302015-12-18 11:05:11 +000065#define IMC_O INDIC_MATRA_CATEGORY_OVERSTRUCK /* 10 chars; Overstruck */
Behdad Esfahbod060e6b42018-06-05 17:31:46 -070066#define IMC_R INDIC_MATRA_CATEGORY_RIGHT /* 276 chars; Right */
67#define IMC_T INDIC_MATRA_CATEGORY_TOP /* 393 chars; Top */
Behdad Esfahbod5fa21b32014-06-30 14:30:54 -040068#define IMC_TB INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM /* 10 chars; Top_And_Bottom */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -040069#define IMC_TBR INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT /* 1 chars; Top_And_Bottom_And_Right */
Behdad Esfahbodd743ce72014-06-30 15:24:02 -040070#define IMC_TL INDIC_MATRA_CATEGORY_TOP_AND_LEFT /* 6 chars; Top_And_Left */
71#define IMC_TLR INDIC_MATRA_CATEGORY_TOP_AND_LEFT_AND_RIGHT /* 4 chars; Top_And_Left_And_Right */
72#define IMC_TR INDIC_MATRA_CATEGORY_TOP_AND_RIGHT /* 13 chars; Top_And_Right */
Behdad Esfahbod2813e302015-12-18 11:05:11 +000073#define IMC_VOL INDIC_MATRA_CATEGORY_VISUAL_ORDER_LEFT /* 19 chars; Visual_Order_Left */
Behdad Esfahbod8874eef2019-01-17 15:04:44 -050074#pragma GCC diagnostic pop
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -040075
76#define _(S,M) INDIC_COMBINE_CATEGORIES (ISC_##S, IMC_##M)
77
78
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -050079static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
Behdad Esfahbodc4a59de2011-06-28 14:03:29 -040080
81
Behdad Esfahbodc09a6072014-07-11 15:05:36 -040082#define indic_offset_0x0028u 0
Behdad Esfahbodd743ce72014-06-30 15:24:02 -040083
84
85 /* Basic Latin */
86
87 /* 0028 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(CP,x), _(x,x), _(x,x),
88 /* 0030 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
89 /* 0038 */ _(Nd,x), _(Nd,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
90
Behdad Esfahbod2813e302015-12-18 11:05:11 +000091#define indic_offset_0x00b0u 24
Behdad Esfahbodd743ce72014-06-30 15:24:02 -040092
93
94 /* Latin-1 Supplement */
95
Behdad Esfahbod2813e302015-12-18 11:05:11 +000096 /* 00B0 */ _(x,x), _(x,x), _(SM,x), _(SM,x), _(x,x), _(x,x), _(x,x), _(x,x),
97 /* 00B8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
98 /* 00C0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
99 /* 00C8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400100 /* 00D0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(CP,x),
101
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000102#define indic_offset_0x0900u 64
Behdad Esfahbodc4a59de2011-06-28 14:03:29 -0400103
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400104
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400105 /* Devanagari */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400106
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000107 /* 0900 */ _(Bi,T), _(Bi,T), _(Bi,T), _(Vs,R), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400108 /* 0908 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
109 /* 0910 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x),
110 /* 0918 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
111 /* 0920 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
112 /* 0928 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
113 /* 0930 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000114 /* 0938 */ _(C,x), _(C,x), _(M,T), _(M,R), _(N,B), _(A,x), _(M,R), _(M,L),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400115 /* 0940 */ _(M,R), _(M,B), _(M,B), _(M,B), _(M,B), _(M,T), _(M,T), _(M,T),
116 /* 0948 */ _(M,T), _(M,R), _(M,R), _(M,R), _(M,R), _(V,B), _(M,L), _(M,R),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000117 /* 0950 */ _(x,x), _(Ca,T), _(Ca,B), _(x,T), _(x,T), _(M,T), _(M,B), _(M,B),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400118 /* 0958 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400119 /* 0960 */ _(VI,x), _(VI,x), _(M,B), _(M,B), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
120 /* 0968 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400121 /* 0970 */ _(x,x), _(x,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400122 /* 0978 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400123
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400124 /* Bengali */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400125
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700126 /* 0980 */ _(CP,x), _(Bi,T), _(Bi,R), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400127 /* 0988 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x), _(x,x), _(VI,x),
128 /* 0990 */ _(VI,x), _(x,x), _(x,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x),
129 /* 0998 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
130 /* 09A0 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
131 /* 09A8 */ _(C,x), _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
132 /* 09B0 */ _(C,x), _(x,x), _(C,x), _(x,x), _(x,x), _(x,x), _(C,x), _(C,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000133 /* 09B8 */ _(C,x), _(C,x), _(x,x), _(x,x), _(N,B), _(A,x), _(M,R), _(M,L),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400134 /* 09C0 */ _(M,R), _(M,B), _(M,B), _(M,B), _(M,B), _(x,x), _(x,x), _(M,L),
135 /* 09C8 */ _(M,L), _(x,x), _(x,x), _(M,LR), _(M,LR), _(V,B), _(CD,x), _(x,x),
136 /* 09D0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(M,R),
137 /* 09D8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(C,x), _(C,x), _(x,x), _(C,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400138 /* 09E0 */ _(VI,x), _(VI,x), _(M,B), _(M,B), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
139 /* 09E8 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400140 /* 09F0 */ _(C,x), _(C,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700141 /* 09F8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(Bi,x), _(x,x), _(SM,T), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400142
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400143 /* Gurmukhi */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400144
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000145 /* 0A00 */ _(x,x), _(Bi,T), _(Bi,T), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400146 /* 0A08 */ _(VI,x), _(VI,x), _(VI,x), _(x,x), _(x,x), _(x,x), _(x,x), _(VI,x),
147 /* 0A10 */ _(VI,x), _(x,x), _(x,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x),
148 /* 0A18 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
149 /* 0A20 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
150 /* 0A28 */ _(C,x), _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
151 /* 0A30 */ _(C,x), _(x,x), _(C,x), _(C,x), _(x,x), _(C,x), _(C,x), _(x,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000152 /* 0A38 */ _(C,x), _(C,x), _(x,x), _(x,x), _(N,B), _(x,x), _(M,R), _(M,L),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400153 /* 0A40 */ _(M,R), _(M,B), _(M,B), _(x,x), _(x,x), _(x,x), _(x,x), _(M,T),
154 /* 0A48 */ _(M,T), _(x,x), _(x,x), _(M,T), _(M,T), _(V,B), _(x,x), _(x,x),
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700155 /* 0A50 */ _(x,x), _(Ca,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400156 /* 0A58 */ _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(x,x), _(C,x), _(x,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400157 /* 0A60 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
158 /* 0A68 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000159 /* 0A70 */ _(Bi,T), _(GM,T), _(CP,x), _(CP,x), _(x,x), _(CM,B), _(x,x), _(x,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400160 /* 0A78 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400161
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400162 /* Gujarati */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400163
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000164 /* 0A80 */ _(x,x), _(Bi,T), _(Bi,T), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400165 /* 0A88 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x), _(VI,x),
166 /* 0A90 */ _(VI,x), _(VI,x), _(x,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x),
167 /* 0A98 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
168 /* 0AA0 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
169 /* 0AA8 */ _(C,x), _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
170 /* 0AB0 */ _(C,x), _(x,x), _(C,x), _(C,x), _(x,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000171 /* 0AB8 */ _(C,x), _(C,x), _(x,x), _(x,x), _(N,B), _(A,x), _(M,R), _(M,L),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400172 /* 0AC0 */ _(M,R), _(M,B), _(M,B), _(M,B), _(M,B), _(M,T), _(x,x), _(M,T),
173 /* 0AC8 */ _(M,T), _(M,TR), _(x,x), _(M,R), _(M,R), _(V,B), _(x,x), _(x,x),
174 /* 0AD0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
175 /* 0AD8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400176 /* 0AE0 */ _(VI,x), _(VI,x), _(M,B), _(M,B), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
177 /* 0AE8 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400178 /* 0AF0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodbdbe9742017-10-02 10:00:31 -0400179 /* 0AF8 */ _(x,x), _(C,x), _(Ca,T), _(Ca,T), _(Ca,T), _(N,T), _(N,T), _(N,T),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400180
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400181 /* Oriya */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400182
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000183 /* 0B00 */ _(x,x), _(Bi,T), _(Bi,R), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400184 /* 0B08 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x), _(x,x), _(VI,x),
185 /* 0B10 */ _(VI,x), _(x,x), _(x,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x),
186 /* 0B18 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
187 /* 0B20 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
188 /* 0B28 */ _(C,x), _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
189 /* 0B30 */ _(C,x), _(x,x), _(C,x), _(C,x), _(x,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000190 /* 0B38 */ _(C,x), _(C,x), _(x,x), _(x,x), _(N,B), _(A,x), _(M,R), _(M,T),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400191 /* 0B40 */ _(M,R), _(M,B), _(M,B), _(M,B), _(M,B), _(x,x), _(x,x), _(M,L),
192 /* 0B48 */ _(M,TL), _(x,x), _(x,x), _(M,LR),_(M,TLR), _(V,B), _(x,x), _(x,x),
193 /* 0B50 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(M,T), _(M,TR),
194 /* 0B58 */ _(x,x), _(x,x), _(x,x), _(x,x), _(C,x), _(C,x), _(x,x), _(C,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400195 /* 0B60 */ _(VI,x), _(VI,x), _(M,B), _(M,B), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
196 /* 0B68 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400197 /* 0B70 */ _(x,x), _(C,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
198 /* 0B78 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400199
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400200 /* Tamil */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400201
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000202 /* 0B80 */ _(x,x), _(x,x), _(Bi,T), _(ML,x), _(x,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400203 /* 0B88 */ _(VI,x), _(VI,x), _(VI,x), _(x,x), _(x,x), _(x,x), _(VI,x), _(VI,x),
204 /* 0B90 */ _(VI,x), _(x,x), _(VI,x), _(VI,x), _(VI,x), _(C,x), _(x,x), _(x,x),
205 /* 0B98 */ _(x,x), _(C,x), _(C,x), _(x,x), _(C,x), _(x,x), _(C,x), _(C,x),
206 /* 0BA0 */ _(x,x), _(x,x), _(x,x), _(C,x), _(C,x), _(x,x), _(x,x), _(x,x),
207 /* 0BA8 */ _(C,x), _(C,x), _(C,x), _(x,x), _(x,x), _(x,x), _(C,x), _(C,x),
208 /* 0BB0 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
209 /* 0BB8 */ _(C,x), _(C,x), _(x,x), _(x,x), _(x,x), _(x,x), _(M,R), _(M,R),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000210 /* 0BC0 */ _(M,T), _(M,R), _(M,R), _(x,x), _(x,x), _(x,x), _(M,L), _(M,L),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400211 /* 0BC8 */ _(M,L), _(x,x), _(M,LR), _(M,LR), _(M,LR), _(V,T), _(x,x), _(x,x),
212 /* 0BD0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(M,R),
213 /* 0BD8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400214 /* 0BE0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
215 /* 0BE8 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400216 /* 0BF0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
217 /* 0BF8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400218
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400219 /* Telugu */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400220
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700221 /* 0C00 */ _(Bi,T), _(Bi,R), _(Bi,R), _(Vs,R), _(Bi,T), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400222 /* 0C08 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x), _(VI,x), _(VI,x),
223 /* 0C10 */ _(VI,x), _(x,x), _(VI,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x),
224 /* 0C18 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
225 /* 0C20 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
226 /* 0C28 */ _(C,x), _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400227 /* 0C30 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400228 /* 0C38 */ _(C,x), _(C,x), _(x,x), _(x,x), _(x,x), _(A,x), _(M,T), _(M,T),
229 /* 0C40 */ _(M,T), _(M,R), _(M,R), _(M,R), _(M,R), _(x,x), _(M,T), _(M,T),
230 /* 0C48 */ _(M,TB), _(x,x), _(M,T), _(M,T), _(M,T), _(V,T), _(x,x), _(x,x),
231 /* 0C50 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(M,T), _(M,B), _(x,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000232 /* 0C58 */ _(C,x), _(C,x), _(C,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400233 /* 0C60 */ _(VI,x), _(VI,x), _(M,B), _(M,B), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
234 /* 0C68 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400235 /* 0C70 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
236 /* 0C78 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400237
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400238 /* Kannada */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400239
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000240 /* 0C80 */ _(x,x), _(Bi,T), _(Bi,R), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400241 /* 0C88 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x), _(VI,x), _(VI,x),
242 /* 0C90 */ _(VI,x), _(x,x), _(VI,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x),
243 /* 0C98 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
244 /* 0CA0 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
245 /* 0CA8 */ _(C,x), _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
246 /* 0CB0 */ _(C,x), _(C,x), _(C,x), _(C,x), _(x,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000247 /* 0CB8 */ _(C,x), _(C,x), _(x,x), _(x,x), _(N,B), _(A,x), _(M,R), _(M,T),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400248 /* 0CC0 */ _(M,TR), _(M,R), _(M,R), _(M,R), _(M,R), _(x,x), _(M,T), _(M,TR),
249 /* 0CC8 */ _(M,TR), _(x,x), _(M,TR), _(M,TR), _(M,T), _(V,T), _(x,x), _(x,x),
250 /* 0CD0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(M,R), _(M,R), _(x,x),
251 /* 0CD8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(C,x), _(x,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400252 /* 0CE0 */ _(VI,x), _(VI,x), _(M,B), _(M,B), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
253 /* 0CE8 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000254 /* 0CF0 */ _(x,x),_(CWS,x),_(CWS,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400255 /* 0CF8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400256
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400257 /* Malayalam */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400258
Behdad Esfahbodbdbe9742017-10-02 10:00:31 -0400259 /* 0D00 */ _(Bi,T), _(Bi,T), _(Bi,R), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400260 /* 0D08 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x), _(VI,x), _(VI,x),
261 /* 0D10 */ _(VI,x), _(x,x), _(VI,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x),
262 /* 0D18 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
263 /* 0D20 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
264 /* 0D28 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
265 /* 0D30 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbodbdbe9742017-10-02 10:00:31 -0400266 /* 0D38 */ _(C,x), _(C,x), _(C,x), _(PK,T), _(PK,T), _(A,x), _(M,R), _(M,R),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400267 /* 0D40 */ _(M,R), _(M,R), _(M,R), _(M,B), _(M,B), _(x,x), _(M,L), _(M,L),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400268 /* 0D48 */ _(M,L), _(x,x), _(M,LR), _(M,LR), _(M,LR), _(V,T),_(CPR,x), _(x,x),
Behdad Esfahbod7cd92692016-05-06 11:34:46 +0100269 /* 0D50 */ _(x,x), _(x,x), _(x,x), _(x,x), _(CD,x), _(CD,x), _(CD,x), _(M,R),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000270 /* 0D58 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(VI,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400271 /* 0D60 */ _(VI,x), _(VI,x), _(M,B), _(M,B), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
272 /* 0D68 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400273 /* 0D70 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
274 /* 0D78 */ _(x,x), _(x,x), _(CD,x), _(CD,x), _(CD,x), _(CD,x), _(CD,x), _(CD,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400275
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400276 /* Sinhala */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400277
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000278 /* 0D80 */ _(x,x), _(x,x), _(Bi,R), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400279 /* 0D88 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
280 /* 0D90 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x),
281 /* 0D98 */ _(x,x), _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
282 /* 0DA0 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
283 /* 0DA8 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
284 /* 0DB0 */ _(C,x), _(C,x), _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
285 /* 0DB8 */ _(C,x), _(C,x), _(C,x), _(C,x), _(x,x), _(C,x), _(x,x), _(x,x),
286 /* 0DC0 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(x,x),
287 /* 0DC8 */ _(x,x), _(x,x), _(V,T), _(x,x), _(x,x), _(x,x), _(x,x), _(M,R),
288 /* 0DD0 */ _(M,R), _(M,R), _(M,T), _(M,T), _(M,B), _(x,x), _(M,B), _(x,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400289 /* 0DD8 */ _(M,R), _(M,L), _(M,TL), _(M,L), _(M,LR),_(M,TLR), _(M,LR), _(M,R),
290 /* 0DE0 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(Nd,x), _(Nd,x),
291 /* 0DE8 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400292 /* 0DF0 */ _(x,x), _(x,x), _(M,R), _(M,R), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400293
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000294#define indic_offset_0x1000u 1336
Behdad Esfahbod0436e1d2014-06-20 14:56:22 -0400295
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400296
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400297 /* Myanmar */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400298
Behdad Esfahbod81426802011-06-13 16:02:18 -0400299 /* 1000 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
300 /* 1008 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
301 /* 1010 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
302 /* 1018 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
303 /* 1020 */ _(C,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
304 /* 1028 */ _(VI,x), _(VI,x), _(VI,x), _(M,R), _(M,R), _(M,T), _(M,T), _(M,B),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000305 /* 1030 */ _(M,B), _(M,L), _(M,T), _(M,T), _(M,T), _(M,T), _(Bi,T), _(TM,B),
306 /* 1038 */ _(Vs,R), _(IS,x), _(PK,T), _(CM,R), _(CM,x), _(CM,B), _(CM,B), _(C,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400307 /* 1040 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700308 /* 1048 */ _(Nd,x), _(Nd,x), _(x,x), _(CP,x), _(x,x), _(x,x), _(CP,x), _(x,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400309 /* 1050 */ _(C,x), _(C,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(M,R), _(M,R),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000310 /* 1058 */ _(M,B), _(M,B), _(C,x), _(C,x), _(C,x), _(C,x), _(CM,B), _(CM,B),
311 /* 1060 */ _(CM,B), _(C,x), _(M,R), _(TM,R), _(TM,R), _(C,x), _(C,x), _(M,R),
312 /* 1068 */ _(M,R), _(TM,R), _(TM,R), _(TM,R), _(TM,R), _(TM,R), _(C,x), _(C,x),
Behdad Esfahbod81426802011-06-13 16:02:18 -0400313 /* 1070 */ _(C,x), _(M,T), _(M,T), _(M,T), _(M,T), _(C,x), _(C,x), _(C,x),
314 /* 1078 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000315 /* 1080 */ _(C,x), _(C,x), _(CM,B), _(M,R), _(M,L), _(M,T), _(M,T), _(TM,R),
316 /* 1088 */ _(TM,R), _(TM,R), _(TM,R), _(TM,R), _(TM,R), _(TM,B), _(C,x), _(TM,R),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400317 /* 1090 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000318 /* 1098 */ _(Nd,x), _(Nd,x), _(TM,R), _(TM,R), _(M,R), _(M,T), _(x,x), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400319
Behdad Esfahbod01a30a62016-05-06 11:50:02 +0100320#define indic_offset_0x1780u 1496
Behdad Esfahbodc4a59de2011-06-28 14:03:29 -0400321
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400322
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400323 /* Khmer */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400324
Behdad Esfahbod81426802011-06-13 16:02:18 -0400325 /* 1780 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
326 /* 1788 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
327 /* 1790 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
328 /* 1798 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
329 /* 17A0 */ _(C,x), _(C,x), _(C,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
330 /* 17A8 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
331 /* 17B0 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x), _(x,x), _(M,R), _(M,T),
332 /* 17B8 */ _(M,T), _(M,T), _(M,T), _(M,B), _(M,B), _(M,B), _(M,TL),_(M,TLR),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000333 /* 17C0 */ _(M,LR), _(M,L), _(M,L), _(M,L), _(M,LR), _(M,LR), _(Bi,T), _(Vs,R),
334 /* 17C8 */ _(M,R), _(RS,T), _(RS,T), _(SM,T),_(CSR,T), _(CK,T), _(SM,T), _(SM,T),
335 /* 17D0 */ _(SM,T), _(PK,T), _(IS,x), _(SM,T), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodbed201d2016-06-06 14:14:24 -0700336 /* 17D8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(A,x), _(SM,T), _(x,x), _(x,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400337 /* 17E0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
338 /* 17E8 */ _(Nd,x), _(Nd,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400339
Behdad Esfahbod01a30a62016-05-06 11:50:02 +0100340#define indic_offset_0x1cd0u 1608
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500341
342
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400343 /* Vedic Extensions */
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500344
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000345 /* 1CD0 */ _(Ca,T), _(Ca,T), _(Ca,T), _(x,x), _(Ca,O), _(Ca,B), _(Ca,B), _(Ca,B),
346 /* 1CD8 */ _(Ca,B), _(Ca,B), _(Ca,T), _(Ca,T), _(Ca,B), _(Ca,B), _(Ca,B), _(Ca,B),
347 /* 1CE0 */ _(Ca,T), _(Ca,R), _(x,O), _(x,O), _(x,O), _(x,O), _(x,O), _(x,O),
348 /* 1CE8 */ _(x,O), _(x,x), _(x,x), _(x,x), _(x,x), _(x,B), _(x,x), _(x,x),
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700349 /* 1CF0 */ _(x,x), _(x,x), _(Vs,x), _(Vs,x), _(Ca,T),_(CWS,x),_(CWS,x), _(Ca,R),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000350 /* 1CF8 */ _(Ca,x), _(Ca,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodcdc8b492012-03-07 12:08:33 -0500351
Behdad Esfahbod01a30a62016-05-06 11:50:02 +0100352#define indic_offset_0x2008u 1656
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400353
354
355 /* General Punctuation */
356
357 /* 2008 */ _(x,x), _(x,x), _(x,x), _(x,x),_(ZWNJ,x),_(ZWJ,x), _(x,x), _(x,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000358 /* 2010 */ _(CP,x), _(CP,x), _(CP,x), _(CP,x), _(CP,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400359
Behdad Esfahbod01a30a62016-05-06 11:50:02 +0100360#define indic_offset_0x2070u 1672
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000361
362
363 /* Superscripts and Subscripts */
364
365 /* 2070 */ _(x,x), _(x,x), _(x,x), _(x,x), _(SM,x), _(x,x), _(x,x), _(x,x),
366 /* 2078 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x),
367 /* 2080 */ _(x,x), _(x,x), _(SM,x), _(SM,x), _(SM,x), _(x,x), _(x,x), _(x,x),
368
Behdad Esfahbod01a30a62016-05-06 11:50:02 +0100369#define indic_offset_0xa8e0u 1696
Behdad Esfahbodc4a59de2011-06-28 14:03:29 -0400370
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400371
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400372 /* Devanagari Extended */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400373
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000374 /* A8E0 */ _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T),
375 /* A8E8 */ _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T),
Behdad Esfahbodbdbe9742017-10-02 10:00:31 -0400376 /* A8F0 */ _(Ca,T), _(Ca,T), _(Bi,x), _(Bi,x), _(x,x), _(x,x), _(x,x), _(x,x),
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700377 /* A8F8 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(VI,x), _(M,T),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400378
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700379#define indic_offset_0xa9e0u 1728
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400380
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400381
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400382 /* Myanmar Extended-B */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400383
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000384 /* A9E0 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(M,T), _(x,x), _(C,x),
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400385 /* A9E8 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
386 /* A9F0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
387 /* A9F8 */ _(Nd,x), _(Nd,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(x,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400388
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700389#define indic_offset_0xaa60u 1760
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400390
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400391
Behdad Esfahbod190a2512014-06-20 14:41:39 -0400392 /* Myanmar Extended-A */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400393
Behdad Esfahbod81426802011-06-13 16:02:18 -0400394 /* AA60 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
395 /* AA68 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x),
Behdad Esfahbodbed201d2016-06-06 14:14:24 -0700396 /* AA70 */ _(x,x), _(C,x), _(C,x), _(C,x), _(CP,x), _(CP,x), _(CP,x), _(x,x),
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000397 /* AA78 */ _(x,x), _(x,x), _(C,x), _(TM,R), _(TM,T), _(TM,R), _(C,x), _(C,x),
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400398
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700399}; /* Table items: 1792; occupancy: 70% */
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400400
Behdad Esfahbod3a83d332013-02-12 12:14:10 -0500401INDIC_TABLE_ELEMENT_TYPE
402hb_indic_get_categories (hb_codepoint_t u)
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400403{
Behdad Esfahbod65ac2da2014-06-20 15:12:49 -0400404 switch (u >> 12)
405 {
Behdad Esfahbodc09a6072014-07-11 15:05:36 -0400406 case 0x0u:
Behdad Esfahbod308f4192018-01-03 14:22:07 +0000407 if (unlikely (u == 0x00A0u)) return _(CP,x);
Ebrahim Byagowi3b0e47c2017-06-19 14:47:09 +0430408 if (hb_in_range<hb_codepoint_t> (u, 0x0028u, 0x003Fu)) return indic_table[u - 0x0028u + indic_offset_0x0028u];
409 if (hb_in_range<hb_codepoint_t> (u, 0x00B0u, 0x00D7u)) return indic_table[u - 0x00B0u + indic_offset_0x00b0u];
410 if (hb_in_range<hb_codepoint_t> (u, 0x0900u, 0x0DF7u)) return indic_table[u - 0x0900u + indic_offset_0x0900u];
Behdad Esfahbod65ac2da2014-06-20 15:12:49 -0400411 break;
412
Behdad Esfahbodc09a6072014-07-11 15:05:36 -0400413 case 0x1u:
Ebrahim Byagowi3b0e47c2017-06-19 14:47:09 +0430414 if (hb_in_range<hb_codepoint_t> (u, 0x1000u, 0x109Fu)) return indic_table[u - 0x1000u + indic_offset_0x1000u];
415 if (hb_in_range<hb_codepoint_t> (u, 0x1780u, 0x17EFu)) return indic_table[u - 0x1780u + indic_offset_0x1780u];
416 if (hb_in_range<hb_codepoint_t> (u, 0x1CD0u, 0x1CFFu)) return indic_table[u - 0x1CD0u + indic_offset_0x1cd0u];
Behdad Esfahbod65ac2da2014-06-20 15:12:49 -0400417 break;
418
Behdad Esfahbodc09a6072014-07-11 15:05:36 -0400419 case 0x2u:
Behdad Esfahbod308f4192018-01-03 14:22:07 +0000420 if (unlikely (u == 0x25CCu)) return _(CP,x);
Ebrahim Byagowi3b0e47c2017-06-19 14:47:09 +0430421 if (hb_in_range<hb_codepoint_t> (u, 0x2008u, 0x2017u)) return indic_table[u - 0x2008u + indic_offset_0x2008u];
422 if (hb_in_range<hb_codepoint_t> (u, 0x2070u, 0x2087u)) return indic_table[u - 0x2070u + indic_offset_0x2070u];
Behdad Esfahbod65ac2da2014-06-20 15:12:49 -0400423 break;
424
Behdad Esfahbodc09a6072014-07-11 15:05:36 -0400425 case 0xAu:
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700426 if (hb_in_range<hb_codepoint_t> (u, 0xA8E0u, 0xA8FFu)) return indic_table[u - 0xA8E0u + indic_offset_0xa8e0u];
Ebrahim Byagowi3b0e47c2017-06-19 14:47:09 +0430427 if (hb_in_range<hb_codepoint_t> (u, 0xA9E0u, 0xA9FFu)) return indic_table[u - 0xA9E0u + indic_offset_0xa9e0u];
428 if (hb_in_range<hb_codepoint_t> (u, 0xAA60u, 0xAA7Fu)) return indic_table[u - 0xAA60u + indic_offset_0xaa60u];
Behdad Esfahbod65ac2da2014-06-20 15:12:49 -0400429 break;
430
431 default:
432 break;
433 }
Behdad Esfahbod81426802011-06-13 16:02:18 -0400434 return _(x,x);
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400435}
436
437#undef _
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400438#undef ISC_A
439#undef ISC_Bi
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400440#undef ISC_BJN
441#undef ISC_Ca
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400442#undef ISC_C
443#undef ISC_CD
444#undef ISC_CF
445#undef ISC_CHL
Behdad Esfahbod060e6b42018-06-05 17:31:46 -0700446#undef ISC_CIP
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000447#undef ISC_CK
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400448#undef ISC_CM
449#undef ISC_CP
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400450#undef ISC_CPR
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000451#undef ISC_CPrf
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400452#undef ISC_CS
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400453#undef ISC_CSR
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000454#undef ISC_CWS
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400455#undef ISC_GM
456#undef ISC_IS
457#undef ISC_ZWJ
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400458#undef ISC_ML
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400459#undef ISC_ZWNJ
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400460#undef ISC_N
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400461#undef ISC_Nd
462#undef ISC_NJ
Behdad Esfahbod81426802011-06-13 16:02:18 -0400463#undef ISC_x
Behdad Esfahbodd743ce72014-06-30 15:24:02 -0400464#undef ISC_PK
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400465#undef ISC_RS
Behdad Esfahbod2813e302015-12-18 11:05:11 +0000466#undef ISC_SM
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400467#undef ISC_TL
468#undef ISC_TM
469#undef ISC_V
470#undef ISC_Vs
471#undef ISC_Vo
Behdad Esfahbod81426802011-06-13 16:02:18 -0400472#undef ISC_M
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400473#undef ISC_VI
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400474#undef IMC_B
Behdad Esfahbodbdbe9742017-10-02 10:00:31 -0400475#undef IMC_BL
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400476#undef IMC_BR
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400477#undef IMC_L
478#undef IMC_LR
Behdad Esfahbod81426802011-06-13 16:02:18 -0400479#undef IMC_x
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400480#undef IMC_O
481#undef IMC_R
482#undef IMC_T
483#undef IMC_TB
484#undef IMC_TBR
485#undef IMC_TL
486#undef IMC_TLR
487#undef IMC_TR
488#undef IMC_VOL
489
Behdad Esfahbodb9ddbd52011-06-02 17:43:12 -0400490/* == End of generated table == */