2d46a717d69a8d3bbdb0c1ffa799ee7294d9fd49
[ghc-base.git] / cbits / WCsubst.c
1 /*-------------------------------------------------------------------------
2 This is an automatically generated file: do not edit
3 Generated by ubconfc at Fri Jun 13 20:47:01 BST 2008
4 -------------------------------------------------------------------------*/
5
6 #include "WCsubst.h"
7
8 /* Unicode general categories, listed in the same order as in the Unicode
9  * standard -- this must be the same order as in GHC.Unicode.
10  */
11
12 enum {
13     NUMCAT_LU,  /* Letter, Uppercase */
14     NUMCAT_LL,  /* Letter, Lowercase */
15     NUMCAT_LT,  /* Letter, Titlecase */
16     NUMCAT_LM,  /* Letter, Modifier */
17     NUMCAT_LO,  /* Letter, Other */
18     NUMCAT_MN,  /* Mark, Non-Spacing */
19     NUMCAT_MC,  /* Mark, Spacing Combining */
20     NUMCAT_ME,  /* Mark, Enclosing */
21     NUMCAT_ND,  /* Number, Decimal */
22     NUMCAT_NL,  /* Number, Letter */
23     NUMCAT_NO,  /* Number, Other */
24     NUMCAT_PC,  /* Punctuation, Connector */
25     NUMCAT_PD,  /* Punctuation, Dash */
26     NUMCAT_PS,  /* Punctuation, Open */
27     NUMCAT_PE,  /* Punctuation, Close */
28     NUMCAT_PI,  /* Punctuation, Initial quote */
29     NUMCAT_PF,  /* Punctuation, Final quote */
30     NUMCAT_PO,  /* Punctuation, Other */
31     NUMCAT_SM,  /* Symbol, Math */
32     NUMCAT_SC,  /* Symbol, Currency */
33     NUMCAT_SK,  /* Symbol, Modifier */
34     NUMCAT_SO,  /* Symbol, Other */
35     NUMCAT_ZS,  /* Separator, Space */
36     NUMCAT_ZL,  /* Separator, Line */
37     NUMCAT_ZP,  /* Separator, Paragraph */
38     NUMCAT_CC,  /* Other, Control */
39     NUMCAT_CF,  /* Other, Format */
40     NUMCAT_CS,  /* Other, Surrogate */
41     NUMCAT_CO,  /* Other, Private Use */
42     NUMCAT_CN   /* Other, Not Assigned */
43 };
44
45 struct _convrule_ 
46
47         unsigned int category;
48         unsigned int catnumber;
49         int possible;
50         int updist;
51         int lowdist; 
52         int titledist;
53 };
54
55 struct _charblock_ 
56
57         int start;
58         int length;
59         const struct _convrule_ *rule;
60 };
61
62 #define GENCAT_LO 262144
63 #define GENCAT_PC 2048
64 #define GENCAT_PD 128
65 #define GENCAT_MN 2097152
66 #define GENCAT_PE 32
67 #define GENCAT_NL 16777216
68 #define GENCAT_PF 131072
69 #define GENCAT_LT 524288
70 #define GENCAT_LU 512
71 #define GENCAT_NO 65536
72 #define GENCAT_PI 16384
73 #define GENCAT_SC 8
74 #define GENCAT_PO 4
75 #define GENCAT_PS 16
76 #define GENCAT_SK 1024
77 #define GENCAT_SM 64
78 #define GENCAT_SO 8192
79 #define GENCAT_CC 1
80 #define GENCAT_CF 32768
81 #define GENCAT_CO 268435456
82 #define GENCAT_ZL 33554432
83 #define GENCAT_CS 134217728
84 #define GENCAT_ZP 67108864
85 #define GENCAT_ZS 2
86 #define GENCAT_MC 8388608
87 #define GENCAT_ME 4194304
88 #define GENCAT_ND 256
89 #define GENCAT_LL 4096
90 #define GENCAT_LM 1048576
91 #define MAX_UNI_CHAR 1114109
92 #define NUM_BLOCKS 2562
93 #define NUM_CONVBLOCKS 1202
94 #define NUM_SPACEBLOCKS 8
95 #define NUM_LAT1BLOCKS 63
96 #define NUM_RULES 161
97 static const struct _convrule_ rule155={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};
98 static const struct _convrule_ rule36={GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0};
99 static const struct _convrule_ rule25={GENCAT_LU, NUMCAT_LU, 1, 0, -121, 0};
100 static const struct _convrule_ rule18={GENCAT_LL, NUMCAT_LL, 1, 743, 0, 743};
101 static const struct _convrule_ rule105={GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0};
102 static const struct _convrule_ rule50={GENCAT_LL, NUMCAT_LL, 1, -79, 0, -79};
103 static const struct _convrule_ rule103={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};
104 static const struct _convrule_ rule76={GENCAT_LL, NUMCAT_LL, 1, -69, 0, -69};
105 static const struct _convrule_ rule123={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};
106 static const struct _convrule_ rule116={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};
107 static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86};
108 static const struct _convrule_ rule38={GENCAT_LL, NUMCAT_LL, 1, 163, 0, 163};
109 static const struct _convrule_ rule110={GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48};
110 static const struct _convrule_ rule130={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};
111 static const struct _convrule_ rule125={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};
112 static const struct _convrule_ rule94={GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57};
113 static const struct _convrule_ rule156={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};
114 static const struct _convrule_ rule133={GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0};
115 static const struct _convrule_ rule96={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};
116 static const struct _convrule_ rule87={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};
117 static const struct _convrule_ rule32={GENCAT_LU, NUMCAT_LU, 1, 0, 202, 0};
118 static const struct _convrule_ rule142={GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28};
119 static const struct _convrule_ rule90={GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64};
120 static const struct _convrule_ rule88={GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37};
121 static const struct _convrule_ rule59={GENCAT_LU, NUMCAT_LU, 1, 0, 71, 0};
122 static const struct _convrule_ rule97={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};
123 static const struct _convrule_ rule91={GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63};
124 static const struct _convrule_ rule35={GENCAT_LL, NUMCAT_LL, 1, 97, 0, 97};
125 static const struct _convrule_ rule146={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};
126 static const struct _convrule_ rule100={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};
127 static const struct _convrule_ rule93={GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62};
128 static const struct _convrule_ rule78={GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71};
129 static const struct _convrule_ rule9={GENCAT_LU, NUMCAT_LU, 1, 0, 32, 0};
130 static const struct _convrule_ rule144={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};
131 static const struct _convrule_ rule140={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};
132 static const struct _convrule_ rule124={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};
133 static const struct _convrule_ rule121={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};
134 static const struct _convrule_ rule40={GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130};
135 static const struct _convrule_ rule20={GENCAT_LL, NUMCAT_LL, 1, 121, 0, 121};
136 static const struct _convrule_ rule108={GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15};
137 static const struct _convrule_ rule12={GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32};
138 static const struct _convrule_ rule82={GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84};
139 static const struct _convrule_ rule160={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};
140 static const struct _convrule_ rule122={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};
141 static const struct _convrule_ rule120={GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74};
142 static const struct _convrule_ rule89={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};
143 static const struct _convrule_ rule56={GENCAT_LU, NUMCAT_LU, 1, 0, 10792, 0};
144 static const struct _convrule_ rule46={GENCAT_LL, NUMCAT_LL, 1, 56, 0, 56};
145 static const struct _convrule_ rule33={GENCAT_LU, NUMCAT_LU, 1, 0, 203, 0};
146 static const struct _convrule_ rule147={GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0};
147 static const struct _convrule_ rule39={GENCAT_LU, NUMCAT_LU, 1, 0, 213, 0};
148 static const struct _convrule_ rule154={GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0};
149 static const struct _convrule_ rule55={GENCAT_LU, NUMCAT_LU, 1, 0, -163, 0};
150 static const struct _convrule_ rule148={GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0};
151 static const struct _convrule_ rule139={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};
152 static const struct _convrule_ rule98={GENCAT_LL, NUMCAT_LL, 1, -8, 0, -8};
153 static const struct _convrule_ rule86={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};
154 static const struct _convrule_ rule41={GENCAT_LU, NUMCAT_LU, 1, 0, 214, 0};
155 static const struct _convrule_ rule115={GENCAT_LL, NUMCAT_LL, 1, 3814, 0, 3814};
156 static const struct _convrule_ rule26={GENCAT_LL, NUMCAT_LL, 1, -300, 0, -300};
157 static const struct _convrule_ rule112={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};
158 static const struct _convrule_ rule22={GENCAT_LL, NUMCAT_LL, 1, -1, 0, -1};
159 static const struct _convrule_ rule117={GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0};
160 static const struct _convrule_ rule49={GENCAT_LL, NUMCAT_LL, 1, -2, 0, -1};
161 static const struct _convrule_ rule128={GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0};
162 static const struct _convrule_ rule85={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};
163 static const struct _convrule_ rule30={GENCAT_LU, NUMCAT_LU, 1, 0, 205, 0};
164 static const struct _convrule_ rule114={GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332};
165 static const struct _convrule_ rule107={GENCAT_LU, NUMCAT_LU, 1, 0, 15, 0};
166 static const struct _convrule_ rule127={GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9};
167 static const struct _convrule_ rule118={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};
168 static const struct _convrule_ rule92={GENCAT_LU, NUMCAT_LU, 1, 0, 8, 0};
169 static const struct _convrule_ rule54={GENCAT_LU, NUMCAT_LU, 1, 0, 10795, 0};
170 static const struct _convrule_ rule29={GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0};
171 static const struct _convrule_ rule135={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};
172 static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};
173 static const struct _convrule_ rule57={GENCAT_LU, NUMCAT_LU, 1, 0, -195, 0};
174 static const struct _convrule_ rule143={GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0};
175 static const struct _convrule_ rule145={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};
176 static const struct _convrule_ rule104={GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0};
177 static const struct _convrule_ rule52={GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0};
178 static const struct _convrule_ rule150={GENCAT_LL, NUMCAT_LL, 1, -10795, 0, -10795};
179 static const struct _convrule_ rule149={GENCAT_LU, NUMCAT_LU, 1, 0, -10727, 0};
180 static const struct _convrule_ rule138={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};
181 static const struct _convrule_ rule34={GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0};
182 static const struct _convrule_ rule158={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};
183 static const struct _convrule_ rule81={GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0};
184 static const struct _convrule_ rule16={GENCAT_CF, NUMCAT_CF, 0, 0, 0, 0};
185 static const struct _convrule_ rule45={GENCAT_LO, NUMCAT_LO, 0, 0, 0, 0};
186 static const struct _convrule_ rule13={GENCAT_SO, NUMCAT_SO, 0, 0, 0, 0};
187 static const struct _convrule_ rule8={GENCAT_ND, NUMCAT_ND, 0, 0, 0, 0};
188 static const struct _convrule_ rule14={GENCAT_LL, NUMCAT_LL, 0, 0, 0, 0};
189 static const struct _convrule_ rule95={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};
190 static const struct _convrule_ rule6={GENCAT_SM, NUMCAT_SM, 0, 0, 0, 0};
191 static const struct _convrule_ rule17={GENCAT_NO, NUMCAT_NO, 0, 0, 0, 0};
192 static const struct _convrule_ rule111={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};
193 static const struct _convrule_ rule2={GENCAT_PO, NUMCAT_PO, 0, 0, 0, 0};
194 static const struct _convrule_ rule113={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};
195 static const struct _convrule_ rule3={GENCAT_SC, NUMCAT_SC, 0, 0, 0, 0};
196 static const struct _convrule_ rule10={GENCAT_SK, NUMCAT_SK, 0, 0, 0, 0};
197 static const struct _convrule_ rule80={GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0};
198 static const struct _convrule_ rule5={GENCAT_PE, NUMCAT_PE, 0, 0, 0, 0};
199 static const struct _convrule_ rule4={GENCAT_PS, NUMCAT_PS, 0, 0, 0, 0};
200 static const struct _convrule_ rule11={GENCAT_PC, NUMCAT_PC, 0, 0, 0, 0};
201 static const struct _convrule_ rule7={GENCAT_PD, NUMCAT_PD, 0, 0, 0, 0};
202 static const struct _convrule_ rule157={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};
203 static const struct _convrule_ rule106={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};
204 static const struct _convrule_ rule1={GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0};
205 static const struct _convrule_ rule19={GENCAT_PF, NUMCAT_PF, 0, 0, 0, 0};
206 static const struct _convrule_ rule15={GENCAT_PI, NUMCAT_PI, 0, 0, 0, 0};
207 static const struct _convrule_ rule137={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};
208 static const struct _convrule_ rule136={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};
209 static const struct _convrule_ rule131={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};
210 static const struct _convrule_ rule43={GENCAT_LU, NUMCAT_LU, 1, 0, 217, 0};
211 static const struct _convrule_ rule0={GENCAT_CC, NUMCAT_CC, 0, 0, 0, 0};
212 static const struct _convrule_ rule151={GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792};
213 static const struct _convrule_ rule71={GENCAT_LL, NUMCAT_LL, 1, 10749, 0, 10749};
214 static const struct _convrule_ rule84={GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0};
215 static const struct _convrule_ rule60={GENCAT_LL, NUMCAT_LL, 1, 10783, 0, 10783};
216 static const struct _convrule_ rule119={GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0};
217 static const struct _convrule_ rule126={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};
218 static const struct _convrule_ rule79={GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219};
219 static const struct _convrule_ rule74={GENCAT_LL, NUMCAT_LL, 1, 10727, 0, 10727};
220 static const struct _convrule_ rule75={GENCAT_LL, NUMCAT_LL, 1, -218, 0, -218};
221 static const struct _convrule_ rule68={GENCAT_LL, NUMCAT_LL, 1, -209, 0, -209};
222 static const struct _convrule_ rule61={GENCAT_LL, NUMCAT_LL, 1, 10780, 0, 10780};
223 static const struct _convrule_ rule48={GENCAT_LT, NUMCAT_LT, 1, -1, 1, 0};
224 static const struct _convrule_ rule21={GENCAT_LU, NUMCAT_LU, 1, 0, 1, 0};
225 static const struct _convrule_ rule134={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};
226 static const struct _convrule_ rule77={GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217};
227 static const struct _convrule_ rule70={GENCAT_LL, NUMCAT_LL, 1, 10743, 0, 10743};
228 static const struct _convrule_ rule42={GENCAT_LU, NUMCAT_LU, 1, 0, 218, 0};
229 static const struct _convrule_ rule67={GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207};
230 static const struct _convrule_ rule51={GENCAT_LU, NUMCAT_LU, 1, 0, -97, 0};
231 static const struct _convrule_ rule141={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};
232 static const struct _convrule_ rule63={GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206};
233 static const struct _convrule_ rule83={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};
234 static const struct _convrule_ rule73={GENCAT_LL, NUMCAT_LL, 1, -214, 0, -214};
235 static const struct _convrule_ rule64={GENCAT_LL, NUMCAT_LL, 1, -205, 0, -205};
236 static const struct _convrule_ rule24={GENCAT_LL, NUMCAT_LL, 1, -232, 0, -232};
237 static const struct _convrule_ rule109={GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0};
238 static const struct _convrule_ rule129={GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0};
239 static const struct _convrule_ rule72={GENCAT_LL, NUMCAT_LL, 1, -213, 0, -213};
240 static const struct _convrule_ rule66={GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203};
241 static const struct _convrule_ rule132={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};
242 static const struct _convrule_ rule69={GENCAT_LL, NUMCAT_LL, 1, -211, 0, -211};
243 static const struct _convrule_ rule65={GENCAT_LL, NUMCAT_LL, 1, -202, 0, -202};
244 static const struct _convrule_ rule47={GENCAT_LU, NUMCAT_LU, 1, 0, 2, 1};
245 static const struct _convrule_ rule37={GENCAT_LU, NUMCAT_LU, 1, 0, 209, 0};
246 static const struct _convrule_ rule153={GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0};
247 static const struct _convrule_ rule62={GENCAT_LL, NUMCAT_LL, 1, -210, 0, -210};
248 static const struct _convrule_ rule44={GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0};
249 static const struct _convrule_ rule28={GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0};
250 static const struct _convrule_ rule53={GENCAT_LU, NUMCAT_LU, 1, 0, -130, 0};
251 static const struct _convrule_ rule159={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};
252 static const struct _convrule_ rule152={GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0};
253 static const struct _convrule_ rule102={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};
254 static const struct _convrule_ rule58={GENCAT_LU, NUMCAT_LU, 1, 0, 69, 0};
255 static const struct _convrule_ rule31={GENCAT_LU, NUMCAT_LU, 1, 0, 79, 0};
256 static const struct _convrule_ rule27={GENCAT_LL, NUMCAT_LL, 1, 195, 0, 195};
257 static const struct _convrule_ rule23={GENCAT_LU, NUMCAT_LU, 1, 0, -199, 0};
258 static const struct _charblock_ allchars[]={
259         {0, 32, &rule0},
260         {32, 1, &rule1},
261         {33, 3, &rule2},
262         {36, 1, &rule3},
263         {37, 3, &rule2},
264         {40, 1, &rule4},
265         {41, 1, &rule5},
266         {42, 1, &rule2},
267         {43, 1, &rule6},
268         {44, 1, &rule2},
269         {45, 1, &rule7},
270         {46, 2, &rule2},
271         {48, 10, &rule8},
272         {58, 2, &rule2},
273         {60, 3, &rule6},
274         {63, 2, &rule2},
275         {65, 26, &rule9},
276         {91, 1, &rule4},
277         {92, 1, &rule2},
278         {93, 1, &rule5},
279         {94, 1, &rule10},
280         {95, 1, &rule11},
281         {96, 1, &rule10},
282         {97, 26, &rule12},
283         {123, 1, &rule4},
284         {124, 1, &rule6},
285         {125, 1, &rule5},
286         {126, 1, &rule6},
287         {127, 33, &rule0},
288         {160, 1, &rule1},
289         {161, 1, &rule2},
290         {162, 4, &rule3},
291         {166, 2, &rule13},
292         {168, 1, &rule10},
293         {169, 1, &rule13},
294         {170, 1, &rule14},
295         {171, 1, &rule15},
296         {172, 1, &rule6},
297         {173, 1, &rule16},
298         {174, 1, &rule13},
299         {175, 1, &rule10},
300         {176, 1, &rule13},
301         {177, 1, &rule6},
302         {178, 2, &rule17},
303         {180, 1, &rule10},
304         {181, 1, &rule18},
305         {182, 1, &rule13},
306         {183, 1, &rule2},
307         {184, 1, &rule10},
308         {185, 1, &rule17},
309         {186, 1, &rule14},
310         {187, 1, &rule19},
311         {188, 3, &rule17},
312         {191, 1, &rule2},
313         {192, 23, &rule9},
314         {215, 1, &rule6},
315         {216, 7, &rule9},
316         {223, 1, &rule14},
317         {224, 23, &rule12},
318         {247, 1, &rule6},
319         {248, 7, &rule12},
320         {255, 1, &rule20},
321         {256, 1, &rule21},
322         {257, 1, &rule22},
323         {258, 1, &rule21},
324         {259, 1, &rule22},
325         {260, 1, &rule21},
326         {261, 1, &rule22},
327         {262, 1, &rule21},
328         {263, 1, &rule22},
329         {264, 1, &rule21},
330         {265, 1, &rule22},
331         {266, 1, &rule21},
332         {267, 1, &rule22},
333         {268, 1, &rule21},
334         {269, 1, &rule22},
335         {270, 1, &rule21},
336         {271, 1, &rule22},
337         {272, 1, &rule21},
338         {273, 1, &rule22},
339         {274, 1, &rule21},
340         {275, 1, &rule22},
341         {276, 1, &rule21},
342         {277, 1, &rule22},
343         {278, 1, &rule21},
344         {279, 1, &rule22},
345         {280, 1, &rule21},
346         {281, 1, &rule22},
347         {282, 1, &rule21},
348         {283, 1, &rule22},
349         {284, 1, &rule21},
350         {285, 1, &rule22},
351         {286, 1, &rule21},
352         {287, 1, &rule22},
353         {288, 1, &rule21},
354         {289, 1, &rule22},
355         {290, 1, &rule21},
356         {291, 1, &rule22},
357         {292, 1, &rule21},
358         {293, 1, &rule22},
359         {294, 1, &rule21},
360         {295, 1, &rule22},
361         {296, 1, &rule21},
362         {297, 1, &rule22},
363         {298, 1, &rule21},
364         {299, 1, &rule22},
365         {300, 1, &rule21},
366         {301, 1, &rule22},
367         {302, 1, &rule21},
368         {303, 1, &rule22},
369         {304, 1, &rule23},
370         {305, 1, &rule24},
371         {306, 1, &rule21},
372         {307, 1, &rule22},
373         {308, 1, &rule21},
374         {309, 1, &rule22},
375         {310, 1, &rule21},
376         {311, 1, &rule22},
377         {312, 1, &rule14},
378         {313, 1, &rule21},
379         {314, 1, &rule22},
380         {315, 1, &rule21},
381         {316, 1, &rule22},
382         {317, 1, &rule21},
383         {318, 1, &rule22},
384         {319, 1, &rule21},
385         {320, 1, &rule22},
386         {321, 1, &rule21},
387         {322, 1, &rule22},
388         {323, 1, &rule21},
389         {324, 1, &rule22},
390         {325, 1, &rule21},
391         {326, 1, &rule22},
392         {327, 1, &rule21},
393         {328, 1, &rule22},
394         {329, 1, &rule14},
395         {330, 1, &rule21},
396         {331, 1, &rule22},
397         {332, 1, &rule21},
398         {333, 1, &rule22},
399         {334, 1, &rule21},
400         {335, 1, &rule22},
401         {336, 1, &rule21},
402         {337, 1, &rule22},
403         {338, 1, &rule21},
404         {339, 1, &rule22},
405         {340, 1, &rule21},
406         {341, 1, &rule22},
407         {342, 1, &rule21},
408         {343, 1, &rule22},
409         {344, 1, &rule21},
410         {345, 1, &rule22},
411         {346, 1, &rule21},
412         {347, 1, &rule22},
413         {348, 1, &rule21},
414         {349, 1, &rule22},
415         {350, 1, &rule21},
416         {351, 1, &rule22},
417         {352, 1, &rule21},
418         {353, 1, &rule22},
419         {354, 1, &rule21},
420         {355, 1, &rule22},
421         {356, 1, &rule21},
422         {357, 1, &rule22},
423         {358, 1, &rule21},
424         {359, 1, &rule22},
425         {360, 1, &rule21},
426         {361, 1, &rule22},
427         {362, 1, &rule21},
428         {363, 1, &rule22},
429         {364, 1, &rule21},
430         {365, 1, &rule22},
431         {366, 1, &rule21},
432         {367, 1, &rule22},
433         {368, 1, &rule21},
434         {369, 1, &rule22},
435         {370, 1, &rule21},
436         {371, 1, &rule22},
437         {372, 1, &rule21},
438         {373, 1, &rule22},
439         {374, 1, &rule21},
440         {375, 1, &rule22},
441         {376, 1, &rule25},
442         {377, 1, &rule21},
443         {378, 1, &rule22},
444         {379, 1, &rule21},
445         {380, 1, &rule22},
446         {381, 1, &rule21},
447         {382, 1, &rule22},
448         {383, 1, &rule26},
449         {384, 1, &rule27},
450         {385, 1, &rule28},
451         {386, 1, &rule21},
452         {387, 1, &rule22},
453         {388, 1, &rule21},
454         {389, 1, &rule22},
455         {390, 1, &rule29},
456         {391, 1, &rule21},
457         {392, 1, &rule22},
458         {393, 2, &rule30},
459         {395, 1, &rule21},
460         {396, 1, &rule22},
461         {397, 1, &rule14},
462         {398, 1, &rule31},
463         {399, 1, &rule32},
464         {400, 1, &rule33},
465         {401, 1, &rule21},
466         {402, 1, &rule22},
467         {403, 1, &rule30},
468         {404, 1, &rule34},
469         {405, 1, &rule35},
470         {406, 1, &rule36},
471         {407, 1, &rule37},
472         {408, 1, &rule21},
473         {409, 1, &rule22},
474         {410, 1, &rule38},
475         {411, 1, &rule14},
476         {412, 1, &rule36},
477         {413, 1, &rule39},
478         {414, 1, &rule40},
479         {415, 1, &rule41},
480         {416, 1, &rule21},
481         {417, 1, &rule22},
482         {418, 1, &rule21},
483         {419, 1, &rule22},
484         {420, 1, &rule21},
485         {421, 1, &rule22},
486         {422, 1, &rule42},
487         {423, 1, &rule21},
488         {424, 1, &rule22},
489         {425, 1, &rule42},
490         {426, 2, &rule14},
491         {428, 1, &rule21},
492         {429, 1, &rule22},
493         {430, 1, &rule42},
494         {431, 1, &rule21},
495         {432, 1, &rule22},
496         {433, 2, &rule43},
497         {435, 1, &rule21},
498         {436, 1, &rule22},
499         {437, 1, &rule21},
500         {438, 1, &rule22},
501         {439, 1, &rule44},
502         {440, 1, &rule21},
503         {441, 1, &rule22},
504         {442, 1, &rule14},
505         {443, 1, &rule45},
506         {444, 1, &rule21},
507         {445, 1, &rule22},
508         {446, 1, &rule14},
509         {447, 1, &rule46},
510         {448, 4, &rule45},
511         {452, 1, &rule47},
512         {453, 1, &rule48},
513         {454, 1, &rule49},
514         {455, 1, &rule47},
515         {456, 1, &rule48},
516         {457, 1, &rule49},
517         {458, 1, &rule47},
518         {459, 1, &rule48},
519         {460, 1, &rule49},
520         {461, 1, &rule21},
521         {462, 1, &rule22},
522         {463, 1, &rule21},
523         {464, 1, &rule22},
524         {465, 1, &rule21},
525         {466, 1, &rule22},
526         {467, 1, &rule21},
527         {468, 1, &rule22},
528         {469, 1, &rule21},
529         {470, 1, &rule22},
530         {471, 1, &rule21},
531         {472, 1, &rule22},
532         {473, 1, &rule21},
533         {474, 1, &rule22},
534         {475, 1, &rule21},
535         {476, 1, &rule22},
536         {477, 1, &rule50},
537         {478, 1, &rule21},
538         {479, 1, &rule22},
539         {480, 1, &rule21},
540         {481, 1, &rule22},
541         {482, 1, &rule21},
542         {483, 1, &rule22},
543         {484, 1, &rule21},
544         {485, 1, &rule22},
545         {486, 1, &rule21},
546         {487, 1, &rule22},
547         {488, 1, &rule21},
548         {489, 1, &rule22},
549         {490, 1, &rule21},
550         {491, 1, &rule22},
551         {492, 1, &rule21},
552         {493, 1, &rule22},
553         {494, 1, &rule21},
554         {495, 1, &rule22},
555         {496, 1, &rule14},
556         {497, 1, &rule47},
557         {498, 1, &rule48},
558         {499, 1, &rule49},
559         {500, 1, &rule21},
560         {501, 1, &rule22},
561         {502, 1, &rule51},
562         {503, 1, &rule52},
563         {504, 1, &rule21},
564         {505, 1, &rule22},
565         {506, 1, &rule21},
566         {507, 1, &rule22},
567         {508, 1, &rule21},
568         {509, 1, &rule22},
569         {510, 1, &rule21},
570         {511, 1, &rule22},
571         {512, 1, &rule21},
572         {513, 1, &rule22},
573         {514, 1, &rule21},
574         {515, 1, &rule22},
575         {516, 1, &rule21},
576         {517, 1, &rule22},
577         {518, 1, &rule21},
578         {519, 1, &rule22},
579         {520, 1, &rule21},
580         {521, 1, &rule22},
581         {522, 1, &rule21},
582         {523, 1, &rule22},
583         {524, 1, &rule21},
584         {525, 1, &rule22},
585         {526, 1, &rule21},
586         {527, 1, &rule22},
587         {528, 1, &rule21},
588         {529, 1, &rule22},
589         {530, 1, &rule21},
590         {531, 1, &rule22},
591         {532, 1, &rule21},
592         {533, 1, &rule22},
593         {534, 1, &rule21},
594         {535, 1, &rule22},
595         {536, 1, &rule21},
596         {537, 1, &rule22},
597         {538, 1, &rule21},
598         {539, 1, &rule22},
599         {540, 1, &rule21},
600         {541, 1, &rule22},
601         {542, 1, &rule21},
602         {543, 1, &rule22},
603         {544, 1, &rule53},
604         {545, 1, &rule14},
605         {546, 1, &rule21},
606         {547, 1, &rule22},
607         {548, 1, &rule21},
608         {549, 1, &rule22},
609         {550, 1, &rule21},
610         {551, 1, &rule22},
611         {552, 1, &rule21},
612         {553, 1, &rule22},
613         {554, 1, &rule21},
614         {555, 1, &rule22},
615         {556, 1, &rule21},
616         {557, 1, &rule22},
617         {558, 1, &rule21},
618         {559, 1, &rule22},
619         {560, 1, &rule21},
620         {561, 1, &rule22},
621         {562, 1, &rule21},
622         {563, 1, &rule22},
623         {564, 6, &rule14},
624         {570, 1, &rule54},
625         {571, 1, &rule21},
626         {572, 1, &rule22},
627         {573, 1, &rule55},
628         {574, 1, &rule56},
629         {575, 2, &rule14},
630         {577, 1, &rule21},
631         {578, 1, &rule22},
632         {579, 1, &rule57},
633         {580, 1, &rule58},
634         {581, 1, &rule59},
635         {582, 1, &rule21},
636         {583, 1, &rule22},
637         {584, 1, &rule21},
638         {585, 1, &rule22},
639         {586, 1, &rule21},
640         {587, 1, &rule22},
641         {588, 1, &rule21},
642         {589, 1, &rule22},
643         {590, 1, &rule21},
644         {591, 1, &rule22},
645         {592, 1, &rule60},
646         {593, 1, &rule61},
647         {594, 1, &rule14},
648         {595, 1, &rule62},
649         {596, 1, &rule63},
650         {597, 1, &rule14},
651         {598, 2, &rule64},
652         {600, 1, &rule14},
653         {601, 1, &rule65},
654         {602, 1, &rule14},
655         {603, 1, &rule66},
656         {604, 4, &rule14},
657         {608, 1, &rule64},
658         {609, 2, &rule14},
659         {611, 1, &rule67},
660         {612, 4, &rule14},
661         {616, 1, &rule68},
662         {617, 1, &rule69},
663         {618, 1, &rule14},
664         {619, 1, &rule70},
665         {620, 3, &rule14},
666         {623, 1, &rule69},
667         {624, 1, &rule14},
668         {625, 1, &rule71},
669         {626, 1, &rule72},
670         {627, 2, &rule14},
671         {629, 1, &rule73},
672         {630, 7, &rule14},
673         {637, 1, &rule74},
674         {638, 2, &rule14},
675         {640, 1, &rule75},
676         {641, 2, &rule14},
677         {643, 1, &rule75},
678         {644, 4, &rule14},
679         {648, 1, &rule75},
680         {649, 1, &rule76},
681         {650, 2, &rule77},
682         {652, 1, &rule78},
683         {653, 5, &rule14},
684         {658, 1, &rule79},
685         {659, 1, &rule14},
686         {660, 1, &rule45},
687         {661, 27, &rule14},
688         {688, 18, &rule80},
689         {706, 4, &rule10},
690         {710, 12, &rule80},
691         {722, 14, &rule10},
692         {736, 5, &rule80},
693         {741, 7, &rule10},
694         {748, 1, &rule80},
695         {749, 1, &rule10},
696         {750, 1, &rule80},
697         {751, 17, &rule10},
698         {768, 69, &rule81},
699         {837, 1, &rule82},
700         {838, 42, &rule81},
701         {880, 1, &rule21},
702         {881, 1, &rule22},
703         {882, 1, &rule21},
704         {883, 1, &rule22},
705         {884, 1, &rule80},
706         {885, 1, &rule10},
707         {886, 1, &rule21},
708         {887, 1, &rule22},
709         {890, 1, &rule80},
710         {891, 3, &rule40},
711         {894, 1, &rule2},
712         {900, 2, &rule10},
713         {902, 1, &rule83},
714         {903, 1, &rule2},
715         {904, 3, &rule84},
716         {908, 1, &rule85},
717         {910, 2, &rule86},
718         {912, 1, &rule14},
719         {913, 17, &rule9},
720         {931, 9, &rule9},
721         {940, 1, &rule87},
722         {941, 3, &rule88},
723         {944, 1, &rule14},
724         {945, 17, &rule12},
725         {962, 1, &rule89},
726         {963, 9, &rule12},
727         {972, 1, &rule90},
728         {973, 2, &rule91},
729         {975, 1, &rule92},
730         {976, 1, &rule93},
731         {977, 1, &rule94},
732         {978, 3, &rule95},
733         {981, 1, &rule96},
734         {982, 1, &rule97},
735         {983, 1, &rule98},
736         {984, 1, &rule21},
737         {985, 1, &rule22},
738         {986, 1, &rule21},
739         {987, 1, &rule22},
740         {988, 1, &rule21},
741         {989, 1, &rule22},
742         {990, 1, &rule21},
743         {991, 1, &rule22},
744         {992, 1, &rule21},
745         {993, 1, &rule22},
746         {994, 1, &rule21},
747         {995, 1, &rule22},
748         {996, 1, &rule21},
749         {997, 1, &rule22},
750         {998, 1, &rule21},
751         {999, 1, &rule22},
752         {1000, 1, &rule21},
753         {1001, 1, &rule22},
754         {1002, 1, &rule21},
755         {1003, 1, &rule22},
756         {1004, 1, &rule21},
757         {1005, 1, &rule22},
758         {1006, 1, &rule21},
759         {1007, 1, &rule22},
760         {1008, 1, &rule99},
761         {1009, 1, &rule100},
762         {1010, 1, &rule101},
763         {1011, 1, &rule14},
764         {1012, 1, &rule102},
765         {1013, 1, &rule103},
766         {1014, 1, &rule6},
767         {1015, 1, &rule21},
768         {1016, 1, &rule22},
769         {1017, 1, &rule104},
770         {1018, 1, &rule21},
771         {1019, 1, &rule22},
772         {1020, 1, &rule14},
773         {1021, 3, &rule53},
774         {1024, 16, &rule105},
775         {1040, 32, &rule9},
776         {1072, 32, &rule12},
777         {1104, 16, &rule100},
778         {1120, 1, &rule21},
779         {1121, 1, &rule22},
780         {1122, 1, &rule21},
781         {1123, 1, &rule22},
782         {1124, 1, &rule21},
783         {1125, 1, &rule22},
784         {1126, 1, &rule21},
785         {1127, 1, &rule22},
786         {1128, 1, &rule21},
787         {1129, 1, &rule22},
788         {1130, 1, &rule21},
789         {1131, 1, &rule22},
790         {1132, 1, &rule21},
791         {1133, 1, &rule22},
792         {1134, 1, &rule21},
793         {1135, 1, &rule22},
794         {1136, 1, &rule21},
795         {1137, 1, &rule22},
796         {1138, 1, &rule21},
797         {1139, 1, &rule22},
798         {1140, 1, &rule21},
799         {1141, 1, &rule22},
800         {1142, 1, &rule21},
801         {1143, 1, &rule22},
802         {1144, 1, &rule21},
803         {1145, 1, &rule22},
804         {1146, 1, &rule21},
805         {1147, 1, &rule22},
806         {1148, 1, &rule21},
807         {1149, 1, &rule22},
808         {1150, 1, &rule21},
809         {1151, 1, &rule22},
810         {1152, 1, &rule21},
811         {1153, 1, &rule22},
812         {1154, 1, &rule13},
813         {1155, 5, &rule81},
814         {1160, 2, &rule106},
815         {1162, 1, &rule21},
816         {1163, 1, &rule22},
817         {1164, 1, &rule21},
818         {1165, 1, &rule22},
819         {1166, 1, &rule21},
820         {1167, 1, &rule22},
821         {1168, 1, &rule21},
822         {1169, 1, &rule22},
823         {1170, 1, &rule21},
824         {1171, 1, &rule22},
825         {1172, 1, &rule21},
826         {1173, 1, &rule22},
827         {1174, 1, &rule21},
828         {1175, 1, &rule22},
829         {1176, 1, &rule21},
830         {1177, 1, &rule22},
831         {1178, 1, &rule21},
832         {1179, 1, &rule22},
833         {1180, 1, &rule21},
834         {1181, 1, &rule22},
835         {1182, 1, &rule21},
836         {1183, 1, &rule22},
837         {1184, 1, &rule21},
838         {1185, 1, &rule22},
839         {1186, 1, &rule21},
840         {1187, 1, &rule22},
841         {1188, 1, &rule21},
842         {1189, 1, &rule22},
843         {1190, 1, &rule21},
844         {1191, 1, &rule22},
845         {1192, 1, &rule21},
846         {1193, 1, &rule22},
847         {1194, 1, &rule21},
848         {1195, 1, &rule22},
849         {1196, 1, &rule21},
850         {1197, 1, &rule22},
851         {1198, 1, &rule21},
852         {1199, 1, &rule22},
853         {1200, 1, &rule21},
854         {1201, 1, &rule22},
855         {1202, 1, &rule21},
856         {1203, 1, &rule22},
857         {1204, 1, &rule21},
858         {1205, 1, &rule22},
859         {1206, 1, &rule21},
860         {1207, 1, &rule22},
861         {1208, 1, &rule21},
862         {1209, 1, &rule22},
863         {1210, 1, &rule21},
864         {1211, 1, &rule22},
865         {1212, 1, &rule21},
866         {1213, 1, &rule22},
867         {1214, 1, &rule21},
868         {1215, 1, &rule22},
869         {1216, 1, &rule107},
870         {1217, 1, &rule21},
871         {1218, 1, &rule22},
872         {1219, 1, &rule21},
873         {1220, 1, &rule22},
874         {1221, 1, &rule21},
875         {1222, 1, &rule22},
876         {1223, 1, &rule21},
877         {1224, 1, &rule22},
878         {1225, 1, &rule21},
879         {1226, 1, &rule22},
880         {1227, 1, &rule21},
881         {1228, 1, &rule22},
882         {1229, 1, &rule21},
883         {1230, 1, &rule22},
884         {1231, 1, &rule108},
885         {1232, 1, &rule21},
886         {1233, 1, &rule22},
887         {1234, 1, &rule21},
888         {1235, 1, &rule22},
889         {1236, 1, &rule21},
890         {1237, 1, &rule22},
891         {1238, 1, &rule21},
892         {1239, 1, &rule22},
893         {1240, 1, &rule21},
894         {1241, 1, &rule22},
895         {1242, 1, &rule21},
896         {1243, 1, &rule22},
897         {1244, 1, &rule21},
898         {1245, 1, &rule22},
899         {1246, 1, &rule21},
900         {1247, 1, &rule22},
901         {1248, 1, &rule21},
902         {1249, 1, &rule22},
903         {1250, 1, &rule21},
904         {1251, 1, &rule22},
905         {1252, 1, &rule21},
906         {1253, 1, &rule22},
907         {1254, 1, &rule21},
908         {1255, 1, &rule22},
909         {1256, 1, &rule21},
910         {1257, 1, &rule22},
911         {1258, 1, &rule21},
912         {1259, 1, &rule22},
913         {1260, 1, &rule21},
914         {1261, 1, &rule22},
915         {1262, 1, &rule21},
916         {1263, 1, &rule22},
917         {1264, 1, &rule21},
918         {1265, 1, &rule22},
919         {1266, 1, &rule21},
920         {1267, 1, &rule22},
921         {1268, 1, &rule21},
922         {1269, 1, &rule22},
923         {1270, 1, &rule21},
924         {1271, 1, &rule22},
925         {1272, 1, &rule21},
926         {1273, 1, &rule22},
927         {1274, 1, &rule21},
928         {1275, 1, &rule22},
929         {1276, 1, &rule21},
930         {1277, 1, &rule22},
931         {1278, 1, &rule21},
932         {1279, 1, &rule22},
933         {1280, 1, &rule21},
934         {1281, 1, &rule22},
935         {1282, 1, &rule21},
936         {1283, 1, &rule22},
937         {1284, 1, &rule21},
938         {1285, 1, &rule22},
939         {1286, 1, &rule21},
940         {1287, 1, &rule22},
941         {1288, 1, &rule21},
942         {1289, 1, &rule22},
943         {1290, 1, &rule21},
944         {1291, 1, &rule22},
945         {1292, 1, &rule21},
946         {1293, 1, &rule22},
947         {1294, 1, &rule21},
948         {1295, 1, &rule22},
949         {1296, 1, &rule21},
950         {1297, 1, &rule22},
951         {1298, 1, &rule21},
952         {1299, 1, &rule22},
953         {1300, 1, &rule21},
954         {1301, 1, &rule22},
955         {1302, 1, &rule21},
956         {1303, 1, &rule22},
957         {1304, 1, &rule21},
958         {1305, 1, &rule22},
959         {1306, 1, &rule21},
960         {1307, 1, &rule22},
961         {1308, 1, &rule21},
962         {1309, 1, &rule22},
963         {1310, 1, &rule21},
964         {1311, 1, &rule22},
965         {1312, 1, &rule21},
966         {1313, 1, &rule22},
967         {1314, 1, &rule21},
968         {1315, 1, &rule22},
969         {1329, 38, &rule109},
970         {1369, 1, &rule80},
971         {1370, 6, &rule2},
972         {1377, 38, &rule110},
973         {1415, 1, &rule14},
974         {1417, 1, &rule2},
975         {1418, 1, &rule7},
976         {1425, 45, &rule81},
977         {1470, 1, &rule7},
978         {1471, 1, &rule81},
979         {1472, 1, &rule2},
980         {1473, 2, &rule81},
981         {1475, 1, &rule2},
982         {1476, 2, &rule81},
983         {1478, 1, &rule2},
984         {1479, 1, &rule81},
985         {1488, 27, &rule45},
986         {1520, 3, &rule45},
987         {1523, 2, &rule2},
988         {1536, 4, &rule16},
989         {1542, 3, &rule6},
990         {1545, 2, &rule2},
991         {1547, 1, &rule3},
992         {1548, 2, &rule2},
993         {1550, 2, &rule13},
994         {1552, 11, &rule81},
995         {1563, 1, &rule2},
996         {1566, 2, &rule2},
997         {1569, 31, &rule45},
998         {1600, 1, &rule80},
999         {1601, 10, &rule45},
1000         {1611, 20, &rule81},
1001         {1632, 10, &rule8},
1002         {1642, 4, &rule2},
1003         {1646, 2, &rule45},
1004         {1648, 1, &rule81},
1005         {1649, 99, &rule45},
1006         {1748, 1, &rule2},
1007         {1749, 1, &rule45},
1008         {1750, 7, &rule81},
1009         {1757, 1, &rule16},
1010         {1758, 1, &rule106},
1011         {1759, 6, &rule81},
1012         {1765, 2, &rule80},
1013         {1767, 2, &rule81},
1014         {1769, 1, &rule13},
1015         {1770, 4, &rule81},
1016         {1774, 2, &rule45},
1017         {1776, 10, &rule8},
1018         {1786, 3, &rule45},
1019         {1789, 2, &rule13},
1020         {1791, 1, &rule45},
1021         {1792, 14, &rule2},
1022         {1807, 1, &rule16},
1023         {1808, 1, &rule45},
1024         {1809, 1, &rule81},
1025         {1810, 30, &rule45},
1026         {1840, 27, &rule81},
1027         {1869, 89, &rule45},
1028         {1958, 11, &rule81},
1029         {1969, 1, &rule45},
1030         {1984, 10, &rule8},
1031         {1994, 33, &rule45},
1032         {2027, 9, &rule81},
1033         {2036, 2, &rule80},
1034         {2038, 1, &rule13},
1035         {2039, 3, &rule2},
1036         {2042, 1, &rule80},
1037         {2305, 2, &rule81},
1038         {2307, 1, &rule111},
1039         {2308, 54, &rule45},
1040         {2364, 1, &rule81},
1041         {2365, 1, &rule45},
1042         {2366, 3, &rule111},
1043         {2369, 8, &rule81},
1044         {2377, 4, &rule111},
1045         {2381, 1, &rule81},
1046         {2384, 1, &rule45},
1047         {2385, 4, &rule81},
1048         {2392, 10, &rule45},
1049         {2402, 2, &rule81},
1050         {2404, 2, &rule2},
1051         {2406, 10, &rule8},
1052         {2416, 1, &rule2},
1053         {2417, 1, &rule80},
1054         {2418, 1, &rule45},
1055         {2427, 5, &rule45},
1056         {2433, 1, &rule81},
1057         {2434, 2, &rule111},
1058         {2437, 8, &rule45},
1059         {2447, 2, &rule45},
1060         {2451, 22, &rule45},
1061         {2474, 7, &rule45},
1062         {2482, 1, &rule45},
1063         {2486, 4, &rule45},
1064         {2492, 1, &rule81},
1065         {2493, 1, &rule45},
1066         {2494, 3, &rule111},
1067         {2497, 4, &rule81},
1068         {2503, 2, &rule111},
1069         {2507, 2, &rule111},
1070         {2509, 1, &rule81},
1071         {2510, 1, &rule45},
1072         {2519, 1, &rule111},
1073         {2524, 2, &rule45},
1074         {2527, 3, &rule45},
1075         {2530, 2, &rule81},
1076         {2534, 10, &rule8},
1077         {2544, 2, &rule45},
1078         {2546, 2, &rule3},
1079         {2548, 6, &rule17},
1080         {2554, 1, &rule13},
1081         {2561, 2, &rule81},
1082         {2563, 1, &rule111},
1083         {2565, 6, &rule45},
1084         {2575, 2, &rule45},
1085         {2579, 22, &rule45},
1086         {2602, 7, &rule45},
1087         {2610, 2, &rule45},
1088         {2613, 2, &rule45},
1089         {2616, 2, &rule45},
1090         {2620, 1, &rule81},
1091         {2622, 3, &rule111},
1092         {2625, 2, &rule81},
1093         {2631, 2, &rule81},
1094         {2635, 3, &rule81},
1095         {2641, 1, &rule81},
1096         {2649, 4, &rule45},
1097         {2654, 1, &rule45},
1098         {2662, 10, &rule8},
1099         {2672, 2, &rule81},
1100         {2674, 3, &rule45},
1101         {2677, 1, &rule81},
1102         {2689, 2, &rule81},
1103         {2691, 1, &rule111},
1104         {2693, 9, &rule45},
1105         {2703, 3, &rule45},
1106         {2707, 22, &rule45},
1107         {2730, 7, &rule45},
1108         {2738, 2, &rule45},
1109         {2741, 5, &rule45},
1110         {2748, 1, &rule81},
1111         {2749, 1, &rule45},
1112         {2750, 3, &rule111},
1113         {2753, 5, &rule81},
1114         {2759, 2, &rule81},
1115         {2761, 1, &rule111},
1116         {2763, 2, &rule111},
1117         {2765, 1, &rule81},
1118         {2768, 1, &rule45},
1119         {2784, 2, &rule45},
1120         {2786, 2, &rule81},
1121         {2790, 10, &rule8},
1122         {2801, 1, &rule3},
1123         {2817, 1, &rule81},
1124         {2818, 2, &rule111},
1125         {2821, 8, &rule45},
1126         {2831, 2, &rule45},
1127         {2835, 22, &rule45},
1128         {2858, 7, &rule45},
1129         {2866, 2, &rule45},
1130         {2869, 5, &rule45},
1131         {2876, 1, &rule81},
1132         {2877, 1, &rule45},
1133         {2878, 1, &rule111},
1134         {2879, 1, &rule81},
1135         {2880, 1, &rule111},
1136         {2881, 4, &rule81},
1137         {2887, 2, &rule111},
1138         {2891, 2, &rule111},
1139         {2893, 1, &rule81},
1140         {2902, 1, &rule81},
1141         {2903, 1, &rule111},
1142         {2908, 2, &rule45},
1143         {2911, 3, &rule45},
1144         {2914, 2, &rule81},
1145         {2918, 10, &rule8},
1146         {2928, 1, &rule13},
1147         {2929, 1, &rule45},
1148         {2946, 1, &rule81},
1149         {2947, 1, &rule45},
1150         {2949, 6, &rule45},
1151         {2958, 3, &rule45},
1152         {2962, 4, &rule45},
1153         {2969, 2, &rule45},
1154         {2972, 1, &rule45},
1155         {2974, 2, &rule45},
1156         {2979, 2, &rule45},
1157         {2984, 3, &rule45},
1158         {2990, 12, &rule45},
1159         {3006, 2, &rule111},
1160         {3008, 1, &rule81},
1161         {3009, 2, &rule111},
1162         {3014, 3, &rule111},
1163         {3018, 3, &rule111},
1164         {3021, 1, &rule81},
1165         {3024, 1, &rule45},
1166         {3031, 1, &rule111},
1167         {3046, 10, &rule8},
1168         {3056, 3, &rule17},
1169         {3059, 6, &rule13},
1170         {3065, 1, &rule3},
1171         {3066, 1, &rule13},
1172         {3073, 3, &rule111},
1173         {3077, 8, &rule45},
1174         {3086, 3, &rule45},
1175         {3090, 23, &rule45},
1176         {3114, 10, &rule45},
1177         {3125, 5, &rule45},
1178         {3133, 1, &rule45},
1179         {3134, 3, &rule81},
1180         {3137, 4, &rule111},
1181         {3142, 3, &rule81},
1182         {3146, 4, &rule81},
1183         {3157, 2, &rule81},
1184         {3160, 2, &rule45},
1185         {3168, 2, &rule45},
1186         {3170, 2, &rule81},
1187         {3174, 10, &rule8},
1188         {3192, 7, &rule17},
1189         {3199, 1, &rule13},
1190         {3202, 2, &rule111},
1191         {3205, 8, &rule45},
1192         {3214, 3, &rule45},
1193         {3218, 23, &rule45},
1194         {3242, 10, &rule45},
1195         {3253, 5, &rule45},
1196         {3260, 1, &rule81},
1197         {3261, 1, &rule45},
1198         {3262, 1, &rule111},
1199         {3263, 1, &rule81},
1200         {3264, 5, &rule111},
1201         {3270, 1, &rule81},
1202         {3271, 2, &rule111},
1203         {3274, 2, &rule111},
1204         {3276, 2, &rule81},
1205         {3285, 2, &rule111},
1206         {3294, 1, &rule45},
1207         {3296, 2, &rule45},
1208         {3298, 2, &rule81},
1209         {3302, 10, &rule8},
1210         {3313, 2, &rule13},
1211         {3330, 2, &rule111},
1212         {3333, 8, &rule45},
1213         {3342, 3, &rule45},
1214         {3346, 23, &rule45},
1215         {3370, 16, &rule45},
1216         {3389, 1, &rule45},
1217         {3390, 3, &rule111},
1218         {3393, 4, &rule81},
1219         {3398, 3, &rule111},
1220         {3402, 3, &rule111},
1221         {3405, 1, &rule81},
1222         {3415, 1, &rule111},
1223         {3424, 2, &rule45},
1224         {3426, 2, &rule81},
1225         {3430, 10, &rule8},
1226         {3440, 6, &rule17},
1227         {3449, 1, &rule13},
1228         {3450, 6, &rule45},
1229         {3458, 2, &rule111},
1230         {3461, 18, &rule45},
1231         {3482, 24, &rule45},
1232         {3507, 9, &rule45},
1233         {3517, 1, &rule45},
1234         {3520, 7, &rule45},
1235         {3530, 1, &rule81},
1236         {3535, 3, &rule111},
1237         {3538, 3, &rule81},
1238         {3542, 1, &rule81},
1239         {3544, 8, &rule111},
1240         {3570, 2, &rule111},
1241         {3572, 1, &rule2},
1242         {3585, 48, &rule45},
1243         {3633, 1, &rule81},
1244         {3634, 2, &rule45},
1245         {3636, 7, &rule81},
1246         {3647, 1, &rule3},
1247         {3648, 6, &rule45},
1248         {3654, 1, &rule80},
1249         {3655, 8, &rule81},
1250         {3663, 1, &rule2},
1251         {3664, 10, &rule8},
1252         {3674, 2, &rule2},
1253         {3713, 2, &rule45},
1254         {3716, 1, &rule45},
1255         {3719, 2, &rule45},
1256         {3722, 1, &rule45},
1257         {3725, 1, &rule45},
1258         {3732, 4, &rule45},
1259         {3737, 7, &rule45},
1260         {3745, 3, &rule45},
1261         {3749, 1, &rule45},
1262         {3751, 1, &rule45},
1263         {3754, 2, &rule45},
1264         {3757, 4, &rule45},
1265         {3761, 1, &rule81},
1266         {3762, 2, &rule45},
1267         {3764, 6, &rule81},
1268         {3771, 2, &rule81},
1269         {3773, 1, &rule45},
1270         {3776, 5, &rule45},
1271         {3782, 1, &rule80},
1272         {3784, 6, &rule81},
1273         {3792, 10, &rule8},
1274         {3804, 2, &rule45},
1275         {3840, 1, &rule45},
1276         {3841, 3, &rule13},
1277         {3844, 15, &rule2},
1278         {3859, 5, &rule13},
1279         {3864, 2, &rule81},
1280         {3866, 6, &rule13},
1281         {3872, 10, &rule8},
1282         {3882, 10, &rule17},
1283         {3892, 1, &rule13},
1284         {3893, 1, &rule81},
1285         {3894, 1, &rule13},
1286         {3895, 1, &rule81},
1287         {3896, 1, &rule13},
1288         {3897, 1, &rule81},
1289         {3898, 1, &rule4},
1290         {3899, 1, &rule5},
1291         {3900, 1, &rule4},
1292         {3901, 1, &rule5},
1293         {3902, 2, &rule111},
1294         {3904, 8, &rule45},
1295         {3913, 36, &rule45},
1296         {3953, 14, &rule81},
1297         {3967, 1, &rule111},
1298         {3968, 5, &rule81},
1299         {3973, 1, &rule2},
1300         {3974, 2, &rule81},
1301         {3976, 4, &rule45},
1302         {3984, 8, &rule81},
1303         {3993, 36, &rule81},
1304         {4030, 8, &rule13},
1305         {4038, 1, &rule81},
1306         {4039, 6, &rule13},
1307         {4046, 2, &rule13},
1308         {4048, 5, &rule2},
1309         {4096, 43, &rule45},
1310         {4139, 2, &rule111},
1311         {4141, 4, &rule81},
1312         {4145, 1, &rule111},
1313         {4146, 6, &rule81},
1314         {4152, 1, &rule111},
1315         {4153, 2, &rule81},
1316         {4155, 2, &rule111},
1317         {4157, 2, &rule81},
1318         {4159, 1, &rule45},
1319         {4160, 10, &rule8},
1320         {4170, 6, &rule2},
1321         {4176, 6, &rule45},
1322         {4182, 2, &rule111},
1323         {4184, 2, &rule81},
1324         {4186, 4, &rule45},
1325         {4190, 3, &rule81},
1326         {4193, 1, &rule45},
1327         {4194, 3, &rule111},
1328         {4197, 2, &rule45},
1329         {4199, 7, &rule111},
1330         {4206, 3, &rule45},
1331         {4209, 4, &rule81},
1332         {4213, 13, &rule45},
1333         {4226, 1, &rule81},
1334         {4227, 2, &rule111},
1335         {4229, 2, &rule81},
1336         {4231, 6, &rule111},
1337         {4237, 1, &rule81},
1338         {4238, 1, &rule45},
1339         {4239, 1, &rule111},
1340         {4240, 10, &rule8},
1341         {4254, 2, &rule13},
1342         {4256, 38, &rule112},
1343         {4304, 43, &rule45},
1344         {4347, 1, &rule2},
1345         {4348, 1, &rule80},
1346         {4352, 90, &rule45},
1347         {4447, 68, &rule45},
1348         {4520, 82, &rule45},
1349         {4608, 73, &rule45},
1350         {4682, 4, &rule45},
1351         {4688, 7, &rule45},
1352         {4696, 1, &rule45},
1353         {4698, 4, &rule45},
1354         {4704, 41, &rule45},
1355         {4746, 4, &rule45},
1356         {4752, 33, &rule45},
1357         {4786, 4, &rule45},
1358         {4792, 7, &rule45},
1359         {4800, 1, &rule45},
1360         {4802, 4, &rule45},
1361         {4808, 15, &rule45},
1362         {4824, 57, &rule45},
1363         {4882, 4, &rule45},
1364         {4888, 67, &rule45},
1365         {4959, 1, &rule81},
1366         {4960, 1, &rule13},
1367         {4961, 8, &rule2},
1368         {4969, 20, &rule17},
1369         {4992, 16, &rule45},
1370         {5008, 10, &rule13},
1371         {5024, 85, &rule45},
1372         {5121, 620, &rule45},
1373         {5741, 2, &rule2},
1374         {5743, 8, &rule45},
1375         {5760, 1, &rule1},
1376         {5761, 26, &rule45},
1377         {5787, 1, &rule4},
1378         {5788, 1, &rule5},
1379         {5792, 75, &rule45},
1380         {5867, 3, &rule2},
1381         {5870, 3, &rule113},
1382         {5888, 13, &rule45},
1383         {5902, 4, &rule45},
1384         {5906, 3, &rule81},
1385         {5920, 18, &rule45},
1386         {5938, 3, &rule81},
1387         {5941, 2, &rule2},
1388         {5952, 18, &rule45},
1389         {5970, 2, &rule81},
1390         {5984, 13, &rule45},
1391         {5998, 3, &rule45},
1392         {6002, 2, &rule81},
1393         {6016, 52, &rule45},
1394         {6068, 2, &rule16},
1395         {6070, 1, &rule111},
1396         {6071, 7, &rule81},
1397         {6078, 8, &rule111},
1398         {6086, 1, &rule81},
1399         {6087, 2, &rule111},
1400         {6089, 11, &rule81},
1401         {6100, 3, &rule2},
1402         {6103, 1, &rule80},
1403         {6104, 3, &rule2},
1404         {6107, 1, &rule3},
1405         {6108, 1, &rule45},
1406         {6109, 1, &rule81},
1407         {6112, 10, &rule8},
1408         {6128, 10, &rule17},
1409         {6144, 6, &rule2},
1410         {6150, 1, &rule7},
1411         {6151, 4, &rule2},
1412         {6155, 3, &rule81},
1413         {6158, 1, &rule1},
1414         {6160, 10, &rule8},
1415         {6176, 35, &rule45},
1416         {6211, 1, &rule80},
1417         {6212, 52, &rule45},
1418         {6272, 41, &rule45},
1419         {6313, 1, &rule81},
1420         {6314, 1, &rule45},
1421         {6400, 29, &rule45},
1422         {6432, 3, &rule81},
1423         {6435, 4, &rule111},
1424         {6439, 2, &rule81},
1425         {6441, 3, &rule111},
1426         {6448, 2, &rule111},
1427         {6450, 1, &rule81},
1428         {6451, 6, &rule111},
1429         {6457, 3, &rule81},
1430         {6464, 1, &rule13},
1431         {6468, 2, &rule2},
1432         {6470, 10, &rule8},
1433         {6480, 30, &rule45},
1434         {6512, 5, &rule45},
1435         {6528, 42, &rule45},
1436         {6576, 17, &rule111},
1437         {6593, 7, &rule45},
1438         {6600, 2, &rule111},
1439         {6608, 10, &rule8},
1440         {6622, 2, &rule2},
1441         {6624, 32, &rule13},
1442         {6656, 23, &rule45},
1443         {6679, 2, &rule81},
1444         {6681, 3, &rule111},
1445         {6686, 2, &rule2},
1446         {6912, 4, &rule81},
1447         {6916, 1, &rule111},
1448         {6917, 47, &rule45},
1449         {6964, 1, &rule81},
1450         {6965, 1, &rule111},
1451         {6966, 5, &rule81},
1452         {6971, 1, &rule111},
1453         {6972, 1, &rule81},
1454         {6973, 5, &rule111},
1455         {6978, 1, &rule81},
1456         {6979, 2, &rule111},
1457         {6981, 7, &rule45},
1458         {6992, 10, &rule8},
1459         {7002, 7, &rule2},
1460         {7009, 10, &rule13},
1461         {7019, 9, &rule81},
1462         {7028, 9, &rule13},
1463         {7040, 2, &rule81},
1464         {7042, 1, &rule111},
1465         {7043, 30, &rule45},
1466         {7073, 1, &rule111},
1467         {7074, 4, &rule81},
1468         {7078, 2, &rule111},
1469         {7080, 2, &rule81},
1470         {7082, 1, &rule111},
1471         {7086, 2, &rule45},
1472         {7088, 10, &rule8},
1473         {7168, 36, &rule45},
1474         {7204, 8, &rule111},
1475         {7212, 8, &rule81},
1476         {7220, 2, &rule111},
1477         {7222, 2, &rule81},
1478         {7227, 5, &rule2},
1479         {7232, 10, &rule8},
1480         {7245, 3, &rule45},
1481         {7248, 10, &rule8},
1482         {7258, 30, &rule45},
1483         {7288, 6, &rule80},
1484         {7294, 2, &rule2},
1485         {7424, 44, &rule14},
1486         {7468, 54, &rule80},
1487         {7522, 22, &rule14},
1488         {7544, 1, &rule80},
1489         {7545, 1, &rule114},
1490         {7546, 3, &rule14},
1491         {7549, 1, &rule115},
1492         {7550, 29, &rule14},
1493         {7579, 37, &rule80},
1494         {7616, 39, &rule81},
1495         {7678, 2, &rule81},
1496         {7680, 1, &rule21},
1497         {7681, 1, &rule22},
1498         {7682, 1, &rule21},
1499         {7683, 1, &rule22},
1500         {7684, 1, &rule21},
1501         {7685, 1, &rule22},
1502         {7686, 1, &rule21},
1503         {7687, 1, &rule22},
1504         {7688, 1, &rule21},
1505         {7689, 1, &rule22},
1506         {7690, 1, &rule21},
1507         {7691, 1, &rule22},
1508         {7692, 1, &rule21},
1509         {7693, 1, &rule22},
1510         {7694, 1, &rule21},
1511         {7695, 1, &rule22},
1512         {7696, 1, &rule21},
1513         {7697, 1, &rule22},
1514         {7698, 1, &rule21},
1515         {7699, 1, &rule22},
1516         {7700, 1, &rule21},
1517         {7701, 1, &rule22},
1518         {7702, 1, &rule21},
1519         {7703, 1, &rule22},
1520         {7704, 1, &rule21},
1521         {7705, 1, &rule22},
1522         {7706, 1, &rule21},
1523         {7707, 1, &rule22},
1524         {7708, 1, &rule21},
1525         {7709, 1, &rule22},
1526         {7710, 1, &rule21},
1527         {7711, 1, &rule22},
1528         {7712, 1, &rule21},
1529         {7713, 1, &rule22},
1530         {7714, 1, &rule21},
1531         {7715, 1, &rule22},
1532         {7716, 1, &rule21},
1533         {7717, 1, &rule22},
1534         {7718, 1, &rule21},
1535         {7719, 1, &rule22},
1536         {7720, 1, &rule21},
1537         {7721, 1, &rule22},
1538         {7722, 1, &rule21},
1539         {7723, 1, &rule22},
1540         {7724, 1, &rule21},
1541         {7725, 1, &rule22},
1542         {7726, 1, &rule21},
1543         {7727, 1, &rule22},
1544         {7728, 1, &rule21},
1545         {7729, 1, &rule22},
1546         {7730, 1, &rule21},
1547         {7731, 1, &rule22},
1548         {7732, 1, &rule21},
1549         {7733, 1, &rule22},
1550         {7734, 1, &rule21},
1551         {7735, 1, &rule22},
1552         {7736, 1, &rule21},
1553         {7737, 1, &rule22},
1554         {7738, 1, &rule21},
1555         {7739, 1, &rule22},
1556         {7740, 1, &rule21},
1557         {7741, 1, &rule22},
1558         {7742, 1, &rule21},
1559         {7743, 1, &rule22},
1560         {7744, 1, &rule21},
1561         {7745, 1, &rule22},
1562         {7746, 1, &rule21},
1563         {7747, 1, &rule22},
1564         {7748, 1, &rule21},
1565         {7749, 1, &rule22},
1566         {7750, 1, &rule21},
1567         {7751, 1, &rule22},
1568         {7752, 1, &rule21},
1569         {7753, 1, &rule22},
1570         {7754, 1, &rule21},
1571         {7755, 1, &rule22},
1572         {7756, 1, &rule21},
1573         {7757, 1, &rule22},
1574         {7758, 1, &rule21},
1575         {7759, 1, &rule22},
1576         {7760, 1, &rule21},
1577         {7761, 1, &rule22},
1578         {7762, 1, &rule21},
1579         {7763, 1, &rule22},
1580         {7764, 1, &rule21},
1581         {7765, 1, &rule22},
1582         {7766, 1, &rule21},
1583         {7767, 1, &rule22},
1584         {7768, 1, &rule21},
1585         {7769, 1, &rule22},
1586         {7770, 1, &rule21},
1587         {7771, 1, &rule22},
1588         {7772, 1, &rule21},
1589         {7773, 1, &rule22},
1590         {7774, 1, &rule21},
1591         {7775, 1, &rule22},
1592         {7776, 1, &rule21},
1593         {7777, 1, &rule22},
1594         {7778, 1, &rule21},
1595         {7779, 1, &rule22},
1596         {7780, 1, &rule21},
1597         {7781, 1, &rule22},
1598         {7782, 1, &rule21},
1599         {7783, 1, &rule22},
1600         {7784, 1, &rule21},
1601         {7785, 1, &rule22},
1602         {7786, 1, &rule21},
1603         {7787, 1, &rule22},
1604         {7788, 1, &rule21},
1605         {7789, 1, &rule22},
1606         {7790, 1, &rule21},
1607         {7791, 1, &rule22},
1608         {7792, 1, &rule21},
1609         {7793, 1, &rule22},
1610         {7794, 1, &rule21},
1611         {7795, 1, &rule22},
1612         {7796, 1, &rule21},
1613         {7797, 1, &rule22},
1614         {7798, 1, &rule21},
1615         {7799, 1, &rule22},
1616         {7800, 1, &rule21},
1617         {7801, 1, &rule22},
1618         {7802, 1, &rule21},
1619         {7803, 1, &rule22},
1620         {7804, 1, &rule21},
1621         {7805, 1, &rule22},
1622         {7806, 1, &rule21},
1623         {7807, 1, &rule22},
1624         {7808, 1, &rule21},
1625         {7809, 1, &rule22},
1626         {7810, 1, &rule21},
1627         {7811, 1, &rule22},
1628         {7812, 1, &rule21},
1629         {7813, 1, &rule22},
1630         {7814, 1, &rule21},
1631         {7815, 1, &rule22},
1632         {7816, 1, &rule21},
1633         {7817, 1, &rule22},
1634         {7818, 1, &rule21},
1635         {7819, 1, &rule22},
1636         {7820, 1, &rule21},
1637         {7821, 1, &rule22},
1638         {7822, 1, &rule21},
1639         {7823, 1, &rule22},
1640         {7824, 1, &rule21},
1641         {7825, 1, &rule22},
1642         {7826, 1, &rule21},
1643         {7827, 1, &rule22},
1644         {7828, 1, &rule21},
1645         {7829, 1, &rule22},
1646         {7830, 5, &rule14},
1647         {7835, 1, &rule116},
1648         {7836, 2, &rule14},
1649         {7838, 1, &rule117},
1650         {7839, 1, &rule14},
1651         {7840, 1, &rule21},
1652         {7841, 1, &rule22},
1653         {7842, 1, &rule21},
1654         {7843, 1, &rule22},
1655         {7844, 1, &rule21},
1656         {7845, 1, &rule22},
1657         {7846, 1, &rule21},
1658         {7847, 1, &rule22},
1659         {7848, 1, &rule21},
1660         {7849, 1, &rule22},
1661         {7850, 1, &rule21},
1662         {7851, 1, &rule22},
1663         {7852, 1, &rule21},
1664         {7853, 1, &rule22},
1665         {7854, 1, &rule21},
1666         {7855, 1, &rule22},
1667         {7856, 1, &rule21},
1668         {7857, 1, &rule22},
1669         {7858, 1, &rule21},
1670         {7859, 1, &rule22},
1671         {7860, 1, &rule21},
1672         {7861, 1, &rule22},
1673         {7862, 1, &rule21},
1674         {7863, 1, &rule22},
1675         {7864, 1, &rule21},
1676         {7865, 1, &rule22},
1677         {7866, 1, &rule21},
1678         {7867, 1, &rule22},
1679         {7868, 1, &rule21},
1680         {7869, 1, &rule22},
1681         {7870, 1, &rule21},
1682         {7871, 1, &rule22},
1683         {7872, 1, &rule21},
1684         {7873, 1, &rule22},
1685         {7874, 1, &rule21},
1686         {7875, 1, &rule22},
1687         {7876, 1, &rule21},
1688         {7877, 1, &rule22},
1689         {7878, 1, &rule21},
1690         {7879, 1, &rule22},
1691         {7880, 1, &rule21},
1692         {7881, 1, &rule22},
1693         {7882, 1, &rule21},
1694         {7883, 1, &rule22},
1695         {7884, 1, &rule21},
1696         {7885, 1, &rule22},
1697         {7886, 1, &rule21},
1698         {7887, 1, &rule22},
1699         {7888, 1, &rule21},
1700         {7889, 1, &rule22},
1701         {7890, 1, &rule21},
1702         {7891, 1, &rule22},
1703         {7892, 1, &rule21},
1704         {7893, 1, &rule22},
1705         {7894, 1, &rule21},
1706         {7895, 1, &rule22},
1707         {7896, 1, &rule21},
1708         {7897, 1, &rule22},
1709         {7898, 1, &rule21},
1710         {7899, 1, &rule22},
1711         {7900, 1, &rule21},
1712         {7901, 1, &rule22},
1713         {7902, 1, &rule21},
1714         {7903, 1, &rule22},
1715         {7904, 1, &rule21},
1716         {7905, 1, &rule22},
1717         {7906, 1, &rule21},
1718         {7907, 1, &rule22},
1719         {7908, 1, &rule21},
1720         {7909, 1, &rule22},
1721         {7910, 1, &rule21},
1722         {7911, 1, &rule22},
1723         {7912, 1, &rule21},
1724         {7913, 1, &rule22},
1725         {7914, 1, &rule21},
1726         {7915, 1, &rule22},
1727         {7916, 1, &rule21},
1728         {7917, 1, &rule22},
1729         {7918, 1, &rule21},
1730         {7919, 1, &rule22},
1731         {7920, 1, &rule21},
1732         {7921, 1, &rule22},
1733         {7922, 1, &rule21},
1734         {7923, 1, &rule22},
1735         {7924, 1, &rule21},
1736         {7925, 1, &rule22},
1737         {7926, 1, &rule21},
1738         {7927, 1, &rule22},
1739         {7928, 1, &rule21},
1740         {7929, 1, &rule22},
1741         {7930, 1, &rule21},
1742         {7931, 1, &rule22},
1743         {7932, 1, &rule21},
1744         {7933, 1, &rule22},
1745         {7934, 1, &rule21},
1746         {7935, 1, &rule22},
1747         {7936, 8, &rule118},
1748         {7944, 8, &rule119},
1749         {7952, 6, &rule118},
1750         {7960, 6, &rule119},
1751         {7968, 8, &rule118},
1752         {7976, 8, &rule119},
1753         {7984, 8, &rule118},
1754         {7992, 8, &rule119},
1755         {8000, 6, &rule118},
1756         {8008, 6, &rule119},
1757         {8016, 1, &rule14},
1758         {8017, 1, &rule118},
1759         {8018, 1, &rule14},
1760         {8019, 1, &rule118},
1761         {8020, 1, &rule14},
1762         {8021, 1, &rule118},
1763         {8022, 1, &rule14},
1764         {8023, 1, &rule118},
1765         {8025, 1, &rule119},
1766         {8027, 1, &rule119},
1767         {8029, 1, &rule119},
1768         {8031, 1, &rule119},
1769         {8032, 8, &rule118},
1770         {8040, 8, &rule119},
1771         {8048, 2, &rule120},
1772         {8050, 4, &rule121},
1773         {8054, 2, &rule122},
1774         {8056, 2, &rule123},
1775         {8058, 2, &rule124},
1776         {8060, 2, &rule125},
1777         {8064, 8, &rule118},
1778         {8072, 8, &rule126},
1779         {8080, 8, &rule118},
1780         {8088, 8, &rule126},
1781         {8096, 8, &rule118},
1782         {8104, 8, &rule126},
1783         {8112, 2, &rule118},
1784         {8114, 1, &rule14},
1785         {8115, 1, &rule127},
1786         {8116, 1, &rule14},
1787         {8118, 2, &rule14},
1788         {8120, 2, &rule119},
1789         {8122, 2, &rule128},
1790         {8124, 1, &rule129},
1791         {8125, 1, &rule10},
1792         {8126, 1, &rule130},
1793         {8127, 3, &rule10},
1794         {8130, 1, &rule14},
1795         {8131, 1, &rule127},
1796         {8132, 1, &rule14},
1797         {8134, 2, &rule14},
1798         {8136, 4, &rule131},
1799         {8140, 1, &rule129},
1800         {8141, 3, &rule10},
1801         {8144, 2, &rule118},
1802         {8146, 2, &rule14},
1803         {8150, 2, &rule14},
1804         {8152, 2, &rule119},
1805         {8154, 2, &rule132},
1806         {8157, 3, &rule10},
1807         {8160, 2, &rule118},
1808         {8162, 3, &rule14},
1809         {8165, 1, &rule101},
1810         {8166, 2, &rule14},
1811         {8168, 2, &rule119},
1812         {8170, 2, &rule133},
1813         {8172, 1, &rule104},
1814         {8173, 3, &rule10},
1815         {8178, 1, &rule14},
1816         {8179, 1, &rule127},
1817         {8180, 1, &rule14},
1818         {8182, 2, &rule14},
1819         {8184, 2, &rule134},
1820         {8186, 2, &rule135},
1821         {8188, 1, &rule129},
1822         {8189, 2, &rule10},
1823         {8192, 11, &rule1},
1824         {8203, 5, &rule16},
1825         {8208, 6, &rule7},
1826         {8214, 2, &rule2},
1827         {8216, 1, &rule15},
1828         {8217, 1, &rule19},
1829         {8218, 1, &rule4},
1830         {8219, 2, &rule15},
1831         {8221, 1, &rule19},
1832         {8222, 1, &rule4},
1833         {8223, 1, &rule15},
1834         {8224, 8, &rule2},
1835         {8232, 1, &rule136},
1836         {8233, 1, &rule137},
1837         {8234, 5, &rule16},
1838         {8239, 1, &rule1},
1839         {8240, 9, &rule2},
1840         {8249, 1, &rule15},
1841         {8250, 1, &rule19},
1842         {8251, 4, &rule2},
1843         {8255, 2, &rule11},
1844         {8257, 3, &rule2},
1845         {8260, 1, &rule6},
1846         {8261, 1, &rule4},
1847         {8262, 1, &rule5},
1848         {8263, 11, &rule2},
1849         {8274, 1, &rule6},
1850         {8275, 1, &rule2},
1851         {8276, 1, &rule11},
1852         {8277, 10, &rule2},
1853         {8287, 1, &rule1},
1854         {8288, 5, &rule16},
1855         {8298, 6, &rule16},
1856         {8304, 1, &rule17},
1857         {8305, 1, &rule14},
1858         {8308, 6, &rule17},
1859         {8314, 3, &rule6},
1860         {8317, 1, &rule4},
1861         {8318, 1, &rule5},
1862         {8319, 1, &rule14},
1863         {8320, 10, &rule17},
1864         {8330, 3, &rule6},
1865         {8333, 1, &rule4},
1866         {8334, 1, &rule5},
1867         {8336, 5, &rule80},
1868         {8352, 22, &rule3},
1869         {8400, 13, &rule81},
1870         {8413, 4, &rule106},
1871         {8417, 1, &rule81},
1872         {8418, 3, &rule106},
1873         {8421, 12, &rule81},
1874         {8448, 2, &rule13},
1875         {8450, 1, &rule95},
1876         {8451, 4, &rule13},
1877         {8455, 1, &rule95},
1878         {8456, 2, &rule13},
1879         {8458, 1, &rule14},
1880         {8459, 3, &rule95},
1881         {8462, 2, &rule14},
1882         {8464, 3, &rule95},
1883         {8467, 1, &rule14},
1884         {8468, 1, &rule13},
1885         {8469, 1, &rule95},
1886         {8470, 3, &rule13},
1887         {8473, 5, &rule95},
1888         {8478, 6, &rule13},
1889         {8484, 1, &rule95},
1890         {8485, 1, &rule13},
1891         {8486, 1, &rule138},
1892         {8487, 1, &rule13},
1893         {8488, 1, &rule95},
1894         {8489, 1, &rule13},
1895         {8490, 1, &rule139},
1896         {8491, 1, &rule140},
1897         {8492, 2, &rule95},
1898         {8494, 1, &rule13},
1899         {8495, 1, &rule14},
1900         {8496, 2, &rule95},
1901         {8498, 1, &rule141},
1902         {8499, 1, &rule95},
1903         {8500, 1, &rule14},
1904         {8501, 4, &rule45},
1905         {8505, 1, &rule14},
1906         {8506, 2, &rule13},
1907         {8508, 2, &rule14},
1908         {8510, 2, &rule95},
1909         {8512, 5, &rule6},
1910         {8517, 1, &rule95},
1911         {8518, 4, &rule14},
1912         {8522, 1, &rule13},
1913         {8523, 1, &rule6},
1914         {8524, 2, &rule13},
1915         {8526, 1, &rule142},
1916         {8527, 1, &rule13},
1917         {8531, 13, &rule17},
1918         {8544, 16, &rule143},
1919         {8560, 16, &rule144},
1920         {8576, 3, &rule113},
1921         {8579, 1, &rule21},
1922         {8580, 1, &rule22},
1923         {8581, 4, &rule113},
1924         {8592, 5, &rule6},
1925         {8597, 5, &rule13},
1926         {8602, 2, &rule6},
1927         {8604, 4, &rule13},
1928         {8608, 1, &rule6},
1929         {8609, 2, &rule13},
1930         {8611, 1, &rule6},
1931         {8612, 2, &rule13},
1932         {8614, 1, &rule6},
1933         {8615, 7, &rule13},
1934         {8622, 1, &rule6},
1935         {8623, 31, &rule13},
1936         {8654, 2, &rule6},
1937         {8656, 2, &rule13},
1938         {8658, 1, &rule6},
1939         {8659, 1, &rule13},
1940         {8660, 1, &rule6},
1941         {8661, 31, &rule13},
1942         {8692, 268, &rule6},
1943         {8960, 8, &rule13},
1944         {8968, 4, &rule6},
1945         {8972, 20, &rule13},
1946         {8992, 2, &rule6},
1947         {8994, 7, &rule13},
1948         {9001, 1, &rule4},
1949         {9002, 1, &rule5},
1950         {9003, 81, &rule13},
1951         {9084, 1, &rule6},
1952         {9085, 30, &rule13},
1953         {9115, 25, &rule6},
1954         {9140, 40, &rule13},
1955         {9180, 6, &rule6},
1956         {9186, 6, &rule13},
1957         {9216, 39, &rule13},
1958         {9280, 11, &rule13},
1959         {9312, 60, &rule17},
1960         {9372, 26, &rule13},
1961         {9398, 26, &rule145},
1962         {9424, 26, &rule146},
1963         {9450, 22, &rule17},
1964         {9472, 183, &rule13},
1965         {9655, 1, &rule6},
1966         {9656, 9, &rule13},
1967         {9665, 1, &rule6},
1968         {9666, 54, &rule13},
1969         {9720, 8, &rule6},
1970         {9728, 111, &rule13},
1971         {9839, 1, &rule6},
1972         {9840, 46, &rule13},
1973         {9888, 29, &rule13},
1974         {9920, 4, &rule13},
1975         {9985, 4, &rule13},
1976         {9990, 4, &rule13},
1977         {9996, 28, &rule13},
1978         {10025, 35, &rule13},
1979         {10061, 1, &rule13},
1980         {10063, 4, &rule13},
1981         {10070, 1, &rule13},
1982         {10072, 7, &rule13},
1983         {10081, 7, &rule13},
1984         {10088, 1, &rule4},
1985         {10089, 1, &rule5},
1986         {10090, 1, &rule4},
1987         {10091, 1, &rule5},
1988         {10092, 1, &rule4},
1989         {10093, 1, &rule5},
1990         {10094, 1, &rule4},
1991         {10095, 1, &rule5},
1992         {10096, 1, &rule4},
1993         {10097, 1, &rule5},
1994         {10098, 1, &rule4},
1995         {10099, 1, &rule5},
1996         {10100, 1, &rule4},
1997         {10101, 1, &rule5},
1998         {10102, 30, &rule17},
1999         {10132, 1, &rule13},
2000         {10136, 24, &rule13},
2001         {10161, 14, &rule13},
2002         {10176, 5, &rule6},
2003         {10181, 1, &rule4},
2004         {10182, 1, &rule5},
2005         {10183, 4, &rule6},
2006         {10188, 1, &rule6},
2007         {10192, 22, &rule6},
2008         {10214, 1, &rule4},
2009         {10215, 1, &rule5},
2010         {10216, 1, &rule4},
2011         {10217, 1, &rule5},
2012         {10218, 1, &rule4},
2013         {10219, 1, &rule5},
2014         {10220, 1, &rule4},
2015         {10221, 1, &rule5},
2016         {10222, 1, &rule4},
2017         {10223, 1, &rule5},
2018         {10224, 16, &rule6},
2019         {10240, 256, &rule13},
2020         {10496, 131, &rule6},
2021         {10627, 1, &rule4},
2022         {10628, 1, &rule5},
2023         {10629, 1, &rule4},
2024         {10630, 1, &rule5},
2025         {10631, 1, &rule4},
2026         {10632, 1, &rule5},
2027         {10633, 1, &rule4},
2028         {10634, 1, &rule5},
2029         {10635, 1, &rule4},
2030         {10636, 1, &rule5},
2031         {10637, 1, &rule4},
2032         {10638, 1, &rule5},
2033         {10639, 1, &rule4},
2034         {10640, 1, &rule5},
2035         {10641, 1, &rule4},
2036         {10642, 1, &rule5},
2037         {10643, 1, &rule4},
2038         {10644, 1, &rule5},
2039         {10645, 1, &rule4},
2040         {10646, 1, &rule5},
2041         {10647, 1, &rule4},
2042         {10648, 1, &rule5},
2043         {10649, 63, &rule6},
2044         {10712, 1, &rule4},
2045         {10713, 1, &rule5},
2046         {10714, 1, &rule4},
2047         {10715, 1, &rule5},
2048         {10716, 32, &rule6},
2049         {10748, 1, &rule4},
2050         {10749, 1, &rule5},
2051         {10750, 258, &rule6},
2052         {11008, 48, &rule13},
2053         {11056, 21, &rule6},
2054         {11077, 2, &rule13},
2055         {11079, 6, &rule6},
2056         {11088, 5, &rule13},
2057         {11264, 47, &rule109},
2058         {11312, 47, &rule110},
2059         {11360, 1, &rule21},
2060         {11361, 1, &rule22},
2061         {11362, 1, &rule147},
2062         {11363, 1, &rule148},
2063         {11364, 1, &rule149},
2064         {11365, 1, &rule150},
2065         {11366, 1, &rule151},
2066         {11367, 1, &rule21},
2067         {11368, 1, &rule22},
2068         {11369, 1, &rule21},
2069         {11370, 1, &rule22},
2070         {11371, 1, &rule21},
2071         {11372, 1, &rule22},
2072         {11373, 1, &rule152},
2073         {11374, 1, &rule153},
2074         {11375, 1, &rule154},
2075         {11377, 1, &rule14},
2076         {11378, 1, &rule21},
2077         {11379, 1, &rule22},
2078         {11380, 1, &rule14},
2079         {11381, 1, &rule21},
2080         {11382, 1, &rule22},
2081         {11383, 6, &rule14},
2082         {11389, 1, &rule80},
2083         {11392, 1, &rule21},
2084         {11393, 1, &rule22},
2085         {11394, 1, &rule21},
2086         {11395, 1, &rule22},
2087         {11396, 1, &rule21},
2088         {11397, 1, &rule22},
2089         {11398, 1, &rule21},
2090         {11399, 1, &rule22},
2091         {11400, 1, &rule21},
2092         {11401, 1, &rule22},
2093         {11402, 1, &rule21},
2094         {11403, 1, &rule22},
2095         {11404, 1, &rule21},
2096         {11405, 1, &rule22},
2097         {11406, 1, &rule21},
2098         {11407, 1, &rule22},
2099         {11408, 1, &rule21},
2100         {11409, 1, &rule22},
2101         {11410, 1, &rule21},
2102         {11411, 1, &rule22},
2103         {11412, 1, &rule21},
2104         {11413, 1, &rule22},
2105         {11414, 1, &rule21},
2106         {11415, 1, &rule22},
2107         {11416, 1, &rule21},
2108         {11417, 1, &rule22},
2109         {11418, 1, &rule21},
2110         {11419, 1, &rule22},
2111         {11420, 1, &rule21},
2112         {11421, 1, &rule22},
2113         {11422, 1, &rule21},
2114         {11423, 1, &rule22},
2115         {11424, 1, &rule21},
2116         {11425, 1, &rule22},
2117         {11426, 1, &rule21},
2118         {11427, 1, &rule22},
2119         {11428, 1, &rule21},
2120         {11429, 1, &rule22},
2121         {11430, 1, &rule21},
2122         {11431, 1, &rule22},
2123         {11432, 1, &rule21},
2124         {11433, 1, &rule22},
2125         {11434, 1, &rule21},
2126         {11435, 1, &rule22},
2127         {11436, 1, &rule21},
2128         {11437, 1, &rule22},
2129         {11438, 1, &rule21},
2130         {11439, 1, &rule22},
2131         {11440, 1, &rule21},
2132         {11441, 1, &rule22},
2133         {11442, 1, &rule21},
2134         {11443, 1, &rule22},
2135         {11444, 1, &rule21},
2136         {11445, 1, &rule22},
2137         {11446, 1, &rule21},
2138         {11447, 1, &rule22},
2139         {11448, 1, &rule21},
2140         {11449, 1, &rule22},
2141         {11450, 1, &rule21},
2142         {11451, 1, &rule22},
2143         {11452, 1, &rule21},
2144         {11453, 1, &rule22},
2145         {11454, 1, &rule21},
2146         {11455, 1, &rule22},
2147         {11456, 1, &rule21},
2148         {11457, 1, &rule22},
2149         {11458, 1, &rule21},
2150         {11459, 1, &rule22},
2151         {11460, 1, &rule21},
2152         {11461, 1, &rule22},
2153         {11462, 1, &rule21},
2154         {11463, 1, &rule22},
2155         {11464, 1, &rule21},
2156         {11465, 1, &rule22},
2157         {11466, 1, &rule21},
2158         {11467, 1, &rule22},
2159         {11468, 1, &rule21},
2160         {11469, 1, &rule22},
2161         {11470, 1, &rule21},
2162         {11471, 1, &rule22},
2163         {11472, 1, &rule21},
2164         {11473, 1, &rule22},
2165         {11474, 1, &rule21},
2166         {11475, 1, &rule22},
2167         {11476, 1, &rule21},
2168         {11477, 1, &rule22},
2169         {11478, 1, &rule21},
2170         {11479, 1, &rule22},
2171         {11480, 1, &rule21},
2172         {11481, 1, &rule22},
2173         {11482, 1, &rule21},
2174         {11483, 1, &rule22},
2175         {11484, 1, &rule21},
2176         {11485, 1, &rule22},
2177         {11486, 1, &rule21},
2178         {11487, 1, &rule22},
2179         {11488, 1, &rule21},
2180         {11489, 1, &rule22},
2181         {11490, 1, &rule21},
2182         {11491, 1, &rule22},
2183         {11492, 1, &rule14},
2184         {11493, 6, &rule13},
2185         {11513, 4, &rule2},
2186         {11517, 1, &rule17},
2187         {11518, 2, &rule2},
2188         {11520, 38, &rule155},
2189         {11568, 54, &rule45},
2190         {11631, 1, &rule80},
2191         {11648, 23, &rule45},
2192         {11680, 7, &rule45},
2193         {11688, 7, &rule45},
2194         {11696, 7, &rule45},
2195         {11704, 7, &rule45},
2196         {11712, 7, &rule45},
2197         {11720, 7, &rule45},
2198         {11728, 7, &rule45},
2199         {11736, 7, &rule45},
2200         {11744, 32, &rule81},
2201         {11776, 2, &rule2},
2202         {11778, 1, &rule15},
2203         {11779, 1, &rule19},
2204         {11780, 1, &rule15},
2205         {11781, 1, &rule19},
2206         {11782, 3, &rule2},
2207         {11785, 1, &rule15},
2208         {11786, 1, &rule19},
2209         {11787, 1, &rule2},
2210         {11788, 1, &rule15},
2211         {11789, 1, &rule19},
2212         {11790, 9, &rule2},
2213         {11799, 1, &rule7},
2214         {11800, 2, &rule2},
2215         {11802, 1, &rule7},
2216         {11803, 1, &rule2},
2217         {11804, 1, &rule15},
2218         {11805, 1, &rule19},
2219         {11806, 2, &rule2},
2220         {11808, 1, &rule15},
2221         {11809, 1, &rule19},
2222         {11810, 1, &rule4},
2223         {11811, 1, &rule5},
2224         {11812, 1, &rule4},
2225         {11813, 1, &rule5},
2226         {11814, 1, &rule4},
2227         {11815, 1, &rule5},
2228         {11816, 1, &rule4},
2229         {11817, 1, &rule5},
2230         {11818, 5, &rule2},
2231         {11823, 1, &rule80},
2232         {11824, 1, &rule2},
2233         {11904, 26, &rule13},
2234         {11931, 89, &rule13},
2235         {12032, 214, &rule13},
2236         {12272, 12, &rule13},
2237         {12288, 1, &rule1},
2238         {12289, 3, &rule2},
2239         {12292, 1, &rule13},
2240         {12293, 1, &rule80},
2241         {12294, 1, &rule45},
2242         {12295, 1, &rule113},
2243         {12296, 1, &rule4},
2244         {12297, 1, &rule5},
2245         {12298, 1, &rule4},
2246         {12299, 1, &rule5},
2247         {12300, 1, &rule4},
2248         {12301, 1, &rule5},
2249         {12302, 1, &rule4},
2250         {12303, 1, &rule5},
2251         {12304, 1, &rule4},
2252         {12305, 1, &rule5},
2253         {12306, 2, &rule13},
2254         {12308, 1, &rule4},
2255         {12309, 1, &rule5},
2256         {12310, 1, &rule4},
2257         {12311, 1, &rule5},
2258         {12312, 1, &rule4},
2259         {12313, 1, &rule5},
2260         {12314, 1, &rule4},
2261         {12315, 1, &rule5},
2262         {12316, 1, &rule7},
2263         {12317, 1, &rule4},
2264         {12318, 2, &rule5},
2265         {12320, 1, &rule13},
2266         {12321, 9, &rule113},
2267         {12330, 6, &rule81},
2268         {12336, 1, &rule7},
2269         {12337, 5, &rule80},
2270         {12342, 2, &rule13},
2271         {12344, 3, &rule113},
2272         {12347, 1, &rule80},
2273         {12348, 1, &rule45},
2274         {12349, 1, &rule2},
2275         {12350, 2, &rule13},
2276         {12353, 86, &rule45},
2277         {12441, 2, &rule81},
2278         {12443, 2, &rule10},
2279         {12445, 2, &rule80},
2280         {12447, 1, &rule45},
2281         {12448, 1, &rule7},
2282         {12449, 90, &rule45},
2283         {12539, 1, &rule2},
2284         {12540, 3, &rule80},
2285         {12543, 1, &rule45},
2286         {12549, 41, &rule45},
2287         {12593, 94, &rule45},
2288         {12688, 2, &rule13},
2289         {12690, 4, &rule17},
2290         {12694, 10, &rule13},
2291         {12704, 24, &rule45},
2292         {12736, 36, &rule13},
2293         {12784, 16, &rule45},
2294         {12800, 31, &rule13},
2295         {12832, 10, &rule17},
2296         {12842, 26, &rule13},
2297         {12880, 1, &rule13},
2298         {12881, 15, &rule17},
2299         {12896, 32, &rule13},
2300         {12928, 10, &rule17},
2301         {12938, 39, &rule13},
2302         {12977, 15, &rule17},
2303         {12992, 63, &rule13},
2304         {13056, 256, &rule13},
2305         {13312, 6582, &rule45},
2306         {19904, 64, &rule13},
2307         {19968, 20932, &rule45},
2308         {40960, 21, &rule45},
2309         {40981, 1, &rule80},
2310         {40982, 1143, &rule45},
2311         {42128, 55, &rule13},
2312         {42240, 268, &rule45},
2313         {42508, 1, &rule80},
2314         {42509, 3, &rule2},
2315         {42512, 16, &rule45},
2316         {42528, 10, &rule8},
2317         {42538, 2, &rule45},
2318         {42560, 1, &rule21},
2319         {42561, 1, &rule22},
2320         {42562, 1, &rule21},
2321         {42563, 1, &rule22},
2322         {42564, 1, &rule21},
2323         {42565, 1, &rule22},
2324         {42566, 1, &rule21},
2325         {42567, 1, &rule22},
2326         {42568, 1, &rule21},
2327         {42569, 1, &rule22},
2328         {42570, 1, &rule21},
2329         {42571, 1, &rule22},
2330         {42572, 1, &rule21},
2331         {42573, 1, &rule22},
2332         {42574, 1, &rule21},
2333         {42575, 1, &rule22},
2334         {42576, 1, &rule21},
2335         {42577, 1, &rule22},
2336         {42578, 1, &rule21},
2337         {42579, 1, &rule22},
2338         {42580, 1, &rule21},
2339         {42581, 1, &rule22},
2340         {42582, 1, &rule21},
2341         {42583, 1, &rule22},
2342         {42584, 1, &rule21},
2343         {42585, 1, &rule22},
2344         {42586, 1, &rule21},
2345         {42587, 1, &rule22},
2346         {42588, 1, &rule21},
2347         {42589, 1, &rule22},
2348         {42590, 1, &rule21},
2349         {42591, 1, &rule22},
2350         {42594, 1, &rule21},
2351         {42595, 1, &rule22},
2352         {42596, 1, &rule21},
2353         {42597, 1, &rule22},
2354         {42598, 1, &rule21},
2355         {42599, 1, &rule22},
2356         {42600, 1, &rule21},
2357         {42601, 1, &rule22},
2358         {42602, 1, &rule21},
2359         {42603, 1, &rule22},
2360         {42604, 1, &rule21},
2361         {42605, 1, &rule22},
2362         {42606, 1, &rule45},
2363         {42607, 1, &rule81},
2364         {42608, 3, &rule106},
2365         {42611, 1, &rule2},
2366         {42620, 2, &rule81},
2367         {42622, 1, &rule2},
2368         {42623, 1, &rule80},
2369         {42624, 1, &rule21},
2370         {42625, 1, &rule22},
2371         {42626, 1, &rule21},
2372         {42627, 1, &rule22},
2373         {42628, 1, &rule21},
2374         {42629, 1, &rule22},
2375         {42630, 1, &rule21},
2376         {42631, 1, &rule22},
2377         {42632, 1, &rule21},
2378         {42633, 1, &rule22},
2379         {42634, 1, &rule21},
2380         {42635, 1, &rule22},
2381         {42636, 1, &rule21},
2382         {42637, 1, &rule22},
2383         {42638, 1, &rule21},
2384         {42639, 1, &rule22},
2385         {42640, 1, &rule21},
2386         {42641, 1, &rule22},
2387         {42642, 1, &rule21},
2388         {42643, 1, &rule22},
2389         {42644, 1, &rule21},
2390         {42645, 1, &rule22},
2391         {42646, 1, &rule21},
2392         {42647, 1, &rule22},
2393         {42752, 23, &rule10},
2394         {42775, 9, &rule80},
2395         {42784, 2, &rule10},
2396         {42786, 1, &rule21},
2397         {42787, 1, &rule22},
2398         {42788, 1, &rule21},
2399         {42789, 1, &rule22},
2400         {42790, 1, &rule21},
2401         {42791, 1, &rule22},
2402         {42792, 1, &rule21},
2403         {42793, 1, &rule22},
2404         {42794, 1, &rule21},
2405         {42795, 1, &rule22},
2406         {42796, 1, &rule21},
2407         {42797, 1, &rule22},
2408         {42798, 1, &rule21},
2409         {42799, 1, &rule22},
2410         {42800, 2, &rule14},
2411         {42802, 1, &rule21},
2412         {42803, 1, &rule22},
2413         {42804, 1, &rule21},
2414         {42805, 1, &rule22},
2415         {42806, 1, &rule21},
2416         {42807, 1, &rule22},
2417         {42808, 1, &rule21},
2418         {42809, 1, &rule22},
2419         {42810, 1, &rule21},
2420         {42811, 1, &rule22},
2421         {42812, 1, &rule21},
2422         {42813, 1, &rule22},
2423         {42814, 1, &rule21},
2424         {42815, 1, &rule22},
2425         {42816, 1, &rule21},
2426         {42817, 1, &rule22},
2427         {42818, 1, &rule21},
2428         {42819, 1, &rule22},
2429         {42820, 1, &rule21},
2430         {42821, 1, &rule22},
2431         {42822, 1, &rule21},
2432         {42823, 1, &rule22},
2433         {42824, 1, &rule21},
2434         {42825, 1, &rule22},
2435         {42826, 1, &rule21},
2436         {42827, 1, &rule22},
2437         {42828, 1, &rule21},
2438         {42829, 1, &rule22},
2439         {42830, 1, &rule21},
2440         {42831, 1, &rule22},
2441         {42832, 1, &rule21},
2442         {42833, 1, &rule22},
2443         {42834, 1, &rule21},
2444         {42835, 1, &rule22},
2445         {42836, 1, &rule21},
2446         {42837, 1, &rule22},
2447         {42838, 1, &rule21},
2448         {42839, 1, &rule22},
2449         {42840, 1, &rule21},
2450         {42841, 1, &rule22},
2451         {42842, 1, &rule21},
2452         {42843, 1, &rule22},
2453         {42844, 1, &rule21},
2454         {42845, 1, &rule22},
2455         {42846, 1, &rule21},
2456         {42847, 1, &rule22},
2457         {42848, 1, &rule21},
2458         {42849, 1, &rule22},
2459         {42850, 1, &rule21},
2460         {42851, 1, &rule22},
2461         {42852, 1, &rule21},
2462         {42853, 1, &rule22},
2463         {42854, 1, &rule21},
2464         {42855, 1, &rule22},
2465         {42856, 1, &rule21},
2466         {42857, 1, &rule22},
2467         {42858, 1, &rule21},
2468         {42859, 1, &rule22},
2469         {42860, 1, &rule21},
2470         {42861, 1, &rule22},
2471         {42862, 1, &rule21},
2472         {42863, 1, &rule22},
2473         {42864, 1, &rule80},
2474         {42865, 8, &rule14},
2475         {42873, 1, &rule21},
2476         {42874, 1, &rule22},
2477         {42875, 1, &rule21},
2478         {42876, 1, &rule22},
2479         {42877, 1, &rule156},
2480         {42878, 1, &rule21},
2481         {42879, 1, &rule22},
2482         {42880, 1, &rule21},
2483         {42881, 1, &rule22},
2484         {42882, 1, &rule21},
2485         {42883, 1, &rule22},
2486         {42884, 1, &rule21},
2487         {42885, 1, &rule22},
2488         {42886, 1, &rule21},
2489         {42887, 1, &rule22},
2490         {42888, 1, &rule80},
2491         {42889, 2, &rule10},
2492         {42891, 1, &rule21},
2493         {42892, 1, &rule22},
2494         {43003, 7, &rule45},
2495         {43010, 1, &rule81},
2496         {43011, 3, &rule45},
2497         {43014, 1, &rule81},
2498         {43015, 4, &rule45},
2499         {43019, 1, &rule81},
2500         {43020, 23, &rule45},
2501         {43043, 2, &rule111},
2502         {43045, 2, &rule81},
2503         {43047, 1, &rule111},
2504         {43048, 4, &rule13},
2505         {43072, 52, &rule45},
2506         {43124, 4, &rule2},
2507         {43136, 2, &rule111},
2508         {43138, 50, &rule45},
2509         {43188, 16, &rule111},
2510         {43204, 1, &rule81},
2511         {43214, 2, &rule2},
2512         {43216, 10, &rule8},
2513         {43264, 10, &rule8},
2514         {43274, 28, &rule45},
2515         {43302, 8, &rule81},
2516         {43310, 2, &rule2},
2517         {43312, 23, &rule45},
2518         {43335, 11, &rule81},
2519         {43346, 2, &rule111},
2520         {43359, 1, &rule2},
2521         {43520, 41, &rule45},
2522         {43561, 6, &rule81},
2523         {43567, 2, &rule111},
2524         {43569, 2, &rule81},
2525         {43571, 2, &rule111},
2526         {43573, 2, &rule81},
2527         {43584, 3, &rule45},
2528         {43587, 1, &rule81},
2529         {43588, 8, &rule45},
2530         {43596, 1, &rule81},
2531         {43597, 1, &rule111},
2532         {43600, 10, &rule8},
2533         {43612, 4, &rule2},
2534         {44032, 11172, &rule45},
2535         {55296, 896, &rule157},
2536         {56192, 128, &rule157},
2537         {56320, 1024, &rule157},
2538         {57344, 6400, &rule158},
2539         {63744, 302, &rule45},
2540         {64048, 59, &rule45},
2541         {64112, 106, &rule45},
2542         {64256, 7, &rule14},
2543         {64275, 5, &rule14},
2544         {64285, 1, &rule45},
2545         {64286, 1, &rule81},
2546         {64287, 10, &rule45},
2547         {64297, 1, &rule6},
2548         {64298, 13, &rule45},
2549         {64312, 5, &rule45},
2550         {64318, 1, &rule45},
2551         {64320, 2, &rule45},
2552         {64323, 2, &rule45},
2553         {64326, 108, &rule45},
2554         {64467, 363, &rule45},
2555         {64830, 1, &rule4},
2556         {64831, 1, &rule5},
2557         {64848, 64, &rule45},
2558         {64914, 54, &rule45},
2559         {65008, 12, &rule45},
2560         {65020, 1, &rule3},
2561         {65021, 1, &rule13},
2562         {65024, 16, &rule81},
2563         {65040, 7, &rule2},
2564         {65047, 1, &rule4},
2565         {65048, 1, &rule5},
2566         {65049, 1, &rule2},
2567         {65056, 7, &rule81},
2568         {65072, 1, &rule2},
2569         {65073, 2, &rule7},
2570         {65075, 2, &rule11},
2571         {65077, 1, &rule4},
2572         {65078, 1, &rule5},
2573         {65079, 1, &rule4},
2574         {65080, 1, &rule5},
2575         {65081, 1, &rule4},
2576         {65082, 1, &rule5},
2577         {65083, 1, &rule4},
2578         {65084, 1, &rule5},
2579         {65085, 1, &rule4},
2580         {65086, 1, &rule5},
2581         {65087, 1, &rule4},
2582         {65088, 1, &rule5},
2583         {65089, 1, &rule4},
2584         {65090, 1, &rule5},
2585         {65091, 1, &rule4},
2586         {65092, 1, &rule5},
2587         {65093, 2, &rule2},
2588         {65095, 1, &rule4},
2589         {65096, 1, &rule5},
2590         {65097, 4, &rule2},
2591         {65101, 3, &rule11},
2592         {65104, 3, &rule2},
2593         {65108, 4, &rule2},
2594         {65112, 1, &rule7},
2595         {65113, 1, &rule4},
2596         {65114, 1, &rule5},
2597         {65115, 1, &rule4},
2598         {65116, 1, &rule5},
2599         {65117, 1, &rule4},
2600         {65118, 1, &rule5},
2601         {65119, 3, &rule2},
2602         {65122, 1, &rule6},
2603         {65123, 1, &rule7},
2604         {65124, 3, &rule6},
2605         {65128, 1, &rule2},
2606         {65129, 1, &rule3},
2607         {65130, 2, &rule2},
2608         {65136, 5, &rule45},
2609         {65142, 135, &rule45},
2610         {65279, 1, &rule16},
2611         {65281, 3, &rule2},
2612         {65284, 1, &rule3},
2613         {65285, 3, &rule2},
2614         {65288, 1, &rule4},
2615         {65289, 1, &rule5},
2616         {65290, 1, &rule2},
2617         {65291, 1, &rule6},
2618         {65292, 1, &rule2},
2619         {65293, 1, &rule7},
2620         {65294, 2, &rule2},
2621         {65296, 10, &rule8},
2622         {65306, 2, &rule2},
2623         {65308, 3, &rule6},
2624         {65311, 2, &rule2},
2625         {65313, 26, &rule9},
2626         {65339, 1, &rule4},
2627         {65340, 1, &rule2},
2628         {65341, 1, &rule5},
2629         {65342, 1, &rule10},
2630         {65343, 1, &rule11},
2631         {65344, 1, &rule10},
2632         {65345, 26, &rule12},
2633         {65371, 1, &rule4},
2634         {65372, 1, &rule6},
2635         {65373, 1, &rule5},
2636         {65374, 1, &rule6},
2637         {65375, 1, &rule4},
2638         {65376, 1, &rule5},
2639         {65377, 1, &rule2},
2640         {65378, 1, &rule4},
2641         {65379, 1, &rule5},
2642         {65380, 2, &rule2},
2643         {65382, 10, &rule45},
2644         {65392, 1, &rule80},
2645         {65393, 45, &rule45},
2646         {65438, 2, &rule80},
2647         {65440, 31, &rule45},
2648         {65474, 6, &rule45},
2649         {65482, 6, &rule45},
2650         {65490, 6, &rule45},
2651         {65498, 3, &rule45},
2652         {65504, 2, &rule3},
2653         {65506, 1, &rule6},
2654         {65507, 1, &rule10},
2655         {65508, 1, &rule13},
2656         {65509, 2, &rule3},
2657         {65512, 1, &rule13},
2658         {65513, 4, &rule6},
2659         {65517, 2, &rule13},
2660         {65529, 3, &rule16},
2661         {65532, 2, &rule13},
2662         {65536, 12, &rule45},
2663         {65549, 26, &rule45},
2664         {65576, 19, &rule45},
2665         {65596, 2, &rule45},
2666         {65599, 15, &rule45},
2667         {65616, 14, &rule45},
2668         {65664, 123, &rule45},
2669         {65792, 2, &rule2},
2670         {65794, 1, &rule13},
2671         {65799, 45, &rule17},
2672         {65847, 9, &rule13},
2673         {65856, 53, &rule113},
2674         {65909, 4, &rule17},
2675         {65913, 17, &rule13},
2676         {65930, 1, &rule17},
2677         {65936, 12, &rule13},
2678         {66000, 45, &rule13},
2679         {66045, 1, &rule81},
2680         {66176, 29, &rule45},
2681         {66208, 49, &rule45},
2682         {66304, 31, &rule45},
2683         {66336, 4, &rule17},
2684         {66352, 17, &rule45},
2685         {66369, 1, &rule113},
2686         {66370, 8, &rule45},
2687         {66378, 1, &rule113},
2688         {66432, 30, &rule45},
2689         {66463, 1, &rule2},
2690         {66464, 36, &rule45},
2691         {66504, 8, &rule45},
2692         {66512, 1, &rule2},
2693         {66513, 5, &rule113},
2694         {66560, 40, &rule159},
2695         {66600, 40, &rule160},
2696         {66640, 78, &rule45},
2697         {66720, 10, &rule8},
2698         {67584, 6, &rule45},
2699         {67592, 1, &rule45},
2700         {67594, 44, &rule45},
2701         {67639, 2, &rule45},
2702         {67644, 1, &rule45},
2703         {67647, 1, &rule45},
2704         {67840, 22, &rule45},
2705         {67862, 4, &rule17},
2706         {67871, 1, &rule2},
2707         {67872, 26, &rule45},
2708         {67903, 1, &rule2},
2709         {68096, 1, &rule45},
2710         {68097, 3, &rule81},
2711         {68101, 2, &rule81},
2712         {68108, 4, &rule81},
2713         {68112, 4, &rule45},
2714         {68117, 3, &rule45},
2715         {68121, 27, &rule45},
2716         {68152, 3, &rule81},
2717         {68159, 1, &rule81},
2718         {68160, 8, &rule17},
2719         {68176, 9, &rule2},
2720         {73728, 879, &rule45},
2721         {74752, 99, &rule113},
2722         {74864, 4, &rule2},
2723         {118784, 246, &rule13},
2724         {119040, 39, &rule13},
2725         {119081, 60, &rule13},
2726         {119141, 2, &rule111},
2727         {119143, 3, &rule81},
2728         {119146, 3, &rule13},
2729         {119149, 6, &rule111},
2730         {119155, 8, &rule16},
2731         {119163, 8, &rule81},
2732         {119171, 2, &rule13},
2733         {119173, 7, &rule81},
2734         {119180, 30, &rule13},
2735         {119210, 4, &rule81},
2736         {119214, 48, &rule13},
2737         {119296, 66, &rule13},
2738         {119362, 3, &rule81},
2739         {119365, 1, &rule13},
2740         {119552, 87, &rule13},
2741         {119648, 18, &rule17},
2742         {119808, 26, &rule95},
2743         {119834, 26, &rule14},
2744         {119860, 26, &rule95},
2745         {119886, 7, &rule14},
2746         {119894, 18, &rule14},
2747         {119912, 26, &rule95},
2748         {119938, 26, &rule14},
2749         {119964, 1, &rule95},
2750         {119966, 2, &rule95},
2751         {119970, 1, &rule95},
2752         {119973, 2, &rule95},
2753         {119977, 4, &rule95},
2754         {119982, 8, &rule95},
2755         {119990, 4, &rule14},
2756         {119995, 1, &rule14},
2757         {119997, 7, &rule14},
2758         {120005, 11, &rule14},
2759         {120016, 26, &rule95},
2760         {120042, 26, &rule14},
2761         {120068, 2, &rule95},
2762         {120071, 4, &rule95},
2763         {120077, 8, &rule95},
2764         {120086, 7, &rule95},
2765         {120094, 26, &rule14},
2766         {120120, 2, &rule95},
2767         {120123, 4, &rule95},
2768         {120128, 5, &rule95},
2769         {120134, 1, &rule95},
2770         {120138, 7, &rule95},
2771         {120146, 26, &rule14},
2772         {120172, 26, &rule95},
2773         {120198, 26, &rule14},
2774         {120224, 26, &rule95},
2775         {120250, 26, &rule14},
2776         {120276, 26, &rule95},
2777         {120302, 26, &rule14},
2778         {120328, 26, &rule95},
2779         {120354, 26, &rule14},
2780         {120380, 26, &rule95},
2781         {120406, 26, &rule14},
2782         {120432, 26, &rule95},
2783         {120458, 28, &rule14},
2784         {120488, 25, &rule95},
2785         {120513, 1, &rule6},
2786         {120514, 25, &rule14},
2787         {120539, 1, &rule6},
2788         {120540, 6, &rule14},
2789         {120546, 25, &rule95},
2790         {120571, 1, &rule6},
2791         {120572, 25, &rule14},
2792         {120597, 1, &rule6},
2793         {120598, 6, &rule14},
2794         {120604, 25, &rule95},
2795         {120629, 1, &rule6},
2796         {120630, 25, &rule14},
2797         {120655, 1, &rule6},
2798         {120656, 6, &rule14},
2799         {120662, 25, &rule95},
2800         {120687, 1, &rule6},
2801         {120688, 25, &rule14},
2802         {120713, 1, &rule6},
2803         {120714, 6, &rule14},
2804         {120720, 25, &rule95},
2805         {120745, 1, &rule6},
2806         {120746, 25, &rule14},
2807         {120771, 1, &rule6},
2808         {120772, 6, &rule14},
2809         {120778, 1, &rule95},
2810         {120779, 1, &rule14},
2811         {120782, 50, &rule8},
2812         {126976, 44, &rule13},
2813         {127024, 100, &rule13},
2814         {131072, 42711, &rule45},
2815         {194560, 542, &rule45},
2816         {917505, 1, &rule16},
2817         {917536, 96, &rule16},
2818         {917760, 240, &rule81},
2819         {983040, 65534, &rule158},
2820         {1048576, 65534, &rule158}
2821 };
2822 static const struct _charblock_ convchars[]={
2823         {65, 26, &rule9},
2824         {97, 26, &rule12},
2825         {181, 1, &rule18},
2826         {192, 23, &rule9},
2827         {216, 7, &rule9},
2828         {224, 23, &rule12},
2829         {248, 7, &rule12},
2830         {255, 1, &rule20},
2831         {256, 1, &rule21},
2832         {257, 1, &rule22},
2833         {258, 1, &rule21},
2834         {259, 1, &rule22},
2835         {260, 1, &rule21},
2836         {261, 1, &rule22},
2837         {262, 1, &rule21},
2838         {263, 1, &rule22},
2839         {264, 1, &rule21},
2840         {265, 1, &rule22},
2841         {266, 1, &rule21},
2842         {267, 1, &rule22},
2843         {268, 1, &rule21},
2844         {269, 1, &rule22},
2845         {270, 1, &rule21},
2846         {271, 1, &rule22},
2847         {272, 1, &rule21},
2848         {273, 1, &rule22},
2849         {274, 1, &rule21},
2850         {275, 1, &rule22},
2851         {276, 1, &rule21},
2852         {277, 1, &rule22},
2853         {278, 1, &rule21},
2854         {279, 1, &rule22},
2855         {280, 1, &rule21},
2856         {281, 1, &rule22},
2857         {282, 1, &rule21},
2858         {283, 1, &rule22},
2859         {284, 1, &rule21},
2860         {285, 1, &rule22},
2861         {286, 1, &rule21},
2862         {287, 1, &rule22},
2863         {288, 1, &rule21},
2864         {289, 1, &rule22},
2865         {290, 1, &rule21},
2866         {291, 1, &rule22},
2867         {292, 1, &rule21},
2868         {293, 1, &rule22},
2869         {294, 1, &rule21},
2870         {295, 1, &rule22},
2871         {296, 1, &rule21},
2872         {297, 1, &rule22},
2873         {298, 1, &rule21},
2874         {299, 1, &rule22},
2875         {300, 1, &rule21},
2876         {301, 1, &rule22},
2877         {302, 1, &rule21},
2878         {303, 1, &rule22},
2879         {304, 1, &rule23},
2880         {305, 1, &rule24},
2881         {306, 1, &rule21},
2882         {307, 1, &rule22},
2883         {308, 1, &rule21},
2884         {309, 1, &rule22},
2885         {310, 1, &rule21},
2886         {311, 1, &rule22},
2887         {313, 1, &rule21},
2888         {314, 1, &rule22},
2889         {315, 1, &rule21},
2890         {316, 1, &rule22},
2891         {317, 1, &rule21},
2892         {318, 1, &rule22},
2893         {319, 1, &rule21},
2894         {320, 1, &rule22},
2895         {321, 1, &rule21},
2896         {322, 1, &rule22},
2897         {323, 1, &rule21},
2898         {324, 1, &rule22},
2899         {325, 1, &rule21},
2900         {326, 1, &rule22},
2901         {327, 1, &rule21},
2902         {328, 1, &rule22},
2903         {330, 1, &rule21},
2904         {331, 1, &rule22},
2905         {332, 1, &rule21},
2906         {333, 1, &rule22},
2907         {334, 1, &rule21},
2908         {335, 1, &rule22},
2909         {336, 1, &rule21},
2910         {337, 1, &rule22},
2911         {338, 1, &rule21},
2912         {339, 1, &rule22},
2913         {340, 1, &rule21},
2914         {341, 1, &rule22},
2915         {342, 1, &rule21},
2916         {343, 1, &rule22},
2917         {344, 1, &rule21},
2918         {345, 1, &rule22},
2919         {346, 1, &rule21},
2920         {347, 1, &rule22},
2921         {348, 1, &rule21},
2922         {349, 1, &rule22},
2923         {350, 1, &rule21},
2924         {351, 1, &rule22},
2925         {352, 1, &rule21},
2926         {353, 1, &rule22},
2927         {354, 1, &rule21},
2928         {355, 1, &rule22},
2929         {356, 1, &rule21},
2930         {357, 1, &rule22},
2931         {358, 1, &rule21},
2932         {359, 1, &rule22},
2933         {360, 1, &rule21},
2934         {361, 1, &rule22},
2935         {362, 1, &rule21},
2936         {363, 1, &rule22},
2937         {364, 1, &rule21},
2938         {365, 1, &rule22},
2939         {366, 1, &rule21},
2940         {367, 1, &rule22},
2941         {368, 1, &rule21},
2942         {369, 1, &rule22},
2943         {370, 1, &rule21},
2944         {371, 1, &rule22},
2945         {372, 1, &rule21},
2946         {373, 1, &rule22},
2947         {374, 1, &rule21},
2948         {375, 1, &rule22},
2949         {376, 1, &rule25},
2950         {377, 1, &rule21},
2951         {378, 1, &rule22},
2952         {379, 1, &rule21},
2953         {380, 1, &rule22},
2954         {381, 1, &rule21},
2955         {382, 1, &rule22},
2956         {383, 1, &rule26},
2957         {384, 1, &rule27},
2958         {385, 1, &rule28},
2959         {386, 1, &rule21},
2960         {387, 1, &rule22},
2961         {388, 1, &rule21},
2962         {389, 1, &rule22},
2963         {390, 1, &rule29},
2964         {391, 1, &rule21},
2965         {392, 1, &rule22},
2966         {393, 2, &rule30},
2967         {395, 1, &rule21},
2968         {396, 1, &rule22},
2969         {398, 1, &rule31},
2970         {399, 1, &rule32},
2971         {400, 1, &rule33},
2972         {401, 1, &rule21},
2973         {402, 1, &rule22},
2974         {403, 1, &rule30},
2975         {404, 1, &rule34},
2976         {405, 1, &rule35},
2977         {406, 1, &rule36},
2978         {407, 1, &rule37},
2979         {408, 1, &rule21},
2980         {409, 1, &rule22},
2981         {410, 1, &rule38},
2982         {412, 1, &rule36},
2983         {413, 1, &rule39},
2984         {414, 1, &rule40},
2985         {415, 1, &rule41},
2986         {416, 1, &rule21},
2987         {417, 1, &rule22},
2988         {418, 1, &rule21},
2989         {419, 1, &rule22},
2990         {420, 1, &rule21},
2991         {421, 1, &rule22},
2992         {422, 1, &rule42},
2993         {423, 1, &rule21},
2994         {424, 1, &rule22},
2995         {425, 1, &rule42},
2996         {428, 1, &rule21},
2997         {429, 1, &rule22},
2998         {430, 1, &rule42},
2999         {431, 1, &rule21},
3000         {432, 1, &rule22},
3001         {433, 2, &rule43},
3002         {435, 1, &rule21},
3003         {436, 1, &rule22},
3004         {437, 1, &rule21},
3005         {438, 1, &rule22},
3006         {439, 1, &rule44},
3007         {440, 1, &rule21},
3008         {441, 1, &rule22},
3009         {444, 1, &rule21},
3010         {445, 1, &rule22},
3011         {447, 1, &rule46},
3012         {452, 1, &rule47},
3013         {453, 1, &rule48},
3014         {454, 1, &rule49},
3015         {455, 1, &rule47},
3016         {456, 1, &rule48},
3017         {457, 1, &rule49},
3018         {458, 1, &rule47},
3019         {459, 1, &rule48},
3020         {460, 1, &rule49},
3021         {461, 1, &rule21},
3022         {462, 1, &rule22},
3023         {463, 1, &rule21},
3024         {464, 1, &rule22},
3025         {465, 1, &rule21},
3026         {466, 1, &rule22},
3027         {467, 1, &rule21},
3028         {468, 1, &rule22},
3029         {469, 1, &rule21},
3030         {470, 1, &rule22},
3031         {471, 1, &rule21},
3032         {472, 1, &rule22},
3033         {473, 1, &rule21},
3034         {474, 1, &rule22},
3035         {475, 1, &rule21},
3036         {476, 1, &rule22},
3037         {477, 1, &rule50},
3038         {478, 1, &rule21},
3039         {479, 1, &rule22},
3040         {480, 1, &rule21},
3041         {481, 1, &rule22},
3042         {482, 1, &rule21},
3043         {483, 1, &rule22},
3044         {484, 1, &rule21},
3045         {485, 1, &rule22},
3046         {486, 1, &rule21},
3047         {487, 1, &rule22},
3048         {488, 1, &rule21},
3049         {489, 1, &rule22},
3050         {490, 1, &rule21},
3051         {491, 1, &rule22},
3052         {492, 1, &rule21},
3053         {493, 1, &rule22},
3054         {494, 1, &rule21},
3055         {495, 1, &rule22},
3056         {497, 1, &rule47},
3057         {498, 1, &rule48},
3058         {499, 1, &rule49},
3059         {500, 1, &rule21},
3060         {501, 1, &rule22},
3061         {502, 1, &rule51},
3062         {503, 1, &rule52},
3063         {504, 1, &rule21},
3064         {505, 1, &rule22},
3065         {506, 1, &rule21},
3066         {507, 1, &rule22},
3067         {508, 1, &rule21},
3068         {509, 1, &rule22},
3069         {510, 1, &rule21},
3070         {511, 1, &rule22},
3071         {512, 1, &rule21},
3072         {513, 1, &rule22},
3073         {514, 1, &rule21},
3074         {515, 1, &rule22},
3075         {516, 1, &rule21},
3076         {517, 1, &rule22},
3077         {518, 1, &rule21},
3078         {519, 1, &rule22},
3079         {520, 1, &rule21},
3080         {521, 1, &rule22},
3081         {522, 1, &rule21},
3082         {523, 1, &rule22},
3083         {524, 1, &rule21},
3084         {525, 1, &rule22},
3085         {526, 1, &rule21},
3086         {527, 1, &rule22},
3087         {528, 1, &rule21},
3088         {529, 1, &rule22},
3089         {530, 1, &rule21},
3090         {531, 1, &rule22},
3091         {532, 1, &rule21},
3092         {533, 1, &rule22},
3093         {534, 1, &rule21},
3094         {535, 1, &rule22},
3095         {536, 1, &rule21},
3096         {537, 1, &rule22},
3097         {538, 1, &rule21},
3098         {539, 1, &rule22},
3099         {540, 1, &rule21},
3100         {541, 1, &rule22},
3101         {542, 1, &rule21},
3102         {543, 1, &rule22},
3103         {544, 1, &rule53},
3104         {546, 1, &rule21},
3105         {547, 1, &rule22},
3106         {548, 1, &rule21},
3107         {549, 1, &rule22},
3108         {550, 1, &rule21},
3109         {551, 1, &rule22},
3110         {552, 1, &rule21},
3111         {553, 1, &rule22},
3112         {554, 1, &rule21},
3113         {555, 1, &rule22},
3114         {556, 1, &rule21},
3115         {557, 1, &rule22},
3116         {558, 1, &rule21},
3117         {559, 1, &rule22},
3118         {560, 1, &rule21},
3119         {561, 1, &rule22},
3120         {562, 1, &rule21},
3121         {563, 1, &rule22},
3122         {570, 1, &rule54},
3123         {571, 1, &rule21},
3124         {572, 1, &rule22},
3125         {573, 1, &rule55},
3126         {574, 1, &rule56},
3127         {577, 1, &rule21},
3128         {578, 1, &rule22},
3129         {579, 1, &rule57},
3130         {580, 1, &rule58},
3131         {581, 1, &rule59},
3132         {582, 1, &rule21},
3133         {583, 1, &rule22},
3134         {584, 1, &rule21},
3135         {585, 1, &rule22},
3136         {586, 1, &rule21},
3137         {587, 1, &rule22},
3138         {588, 1, &rule21},
3139         {589, 1, &rule22},
3140         {590, 1, &rule21},
3141         {591, 1, &rule22},
3142         {592, 1, &rule60},
3143         {593, 1, &rule61},
3144         {595, 1, &rule62},
3145         {596, 1, &rule63},
3146         {598, 2, &rule64},
3147         {601, 1, &rule65},
3148         {603, 1, &rule66},
3149         {608, 1, &rule64},
3150         {611, 1, &rule67},
3151         {616, 1, &rule68},
3152         {617, 1, &rule69},
3153         {619, 1, &rule70},
3154         {623, 1, &rule69},
3155         {625, 1, &rule71},
3156         {626, 1, &rule72},
3157         {629, 1, &rule73},
3158         {637, 1, &rule74},
3159         {640, 1, &rule75},
3160         {643, 1, &rule75},
3161         {648, 1, &rule75},
3162         {649, 1, &rule76},
3163         {650, 2, &rule77},
3164         {652, 1, &rule78},
3165         {658, 1, &rule79},
3166         {837, 1, &rule82},
3167         {880, 1, &rule21},
3168         {881, 1, &rule22},
3169         {882, 1, &rule21},
3170         {883, 1, &rule22},
3171         {886, 1, &rule21},
3172         {887, 1, &rule22},
3173         {891, 3, &rule40},
3174         {902, 1, &rule83},
3175         {904, 3, &rule84},
3176         {908, 1, &rule85},
3177         {910, 2, &rule86},
3178         {913, 17, &rule9},
3179         {931, 9, &rule9},
3180         {940, 1, &rule87},
3181         {941, 3, &rule88},
3182         {945, 17, &rule12},
3183         {962, 1, &rule89},
3184         {963, 9, &rule12},
3185         {972, 1, &rule90},
3186         {973, 2, &rule91},
3187         {975, 1, &rule92},
3188         {976, 1, &rule93},
3189         {977, 1, &rule94},
3190         {981, 1, &rule96},
3191         {982, 1, &rule97},
3192         {983, 1, &rule98},
3193         {984, 1, &rule21},
3194         {985, 1, &rule22},
3195         {986, 1, &rule21},
3196         {987, 1, &rule22},
3197         {988, 1, &rule21},
3198         {989, 1, &rule22},
3199         {990, 1, &rule21},
3200         {991, 1, &rule22},
3201         {992, 1, &rule21},
3202         {993, 1, &rule22},
3203         {994, 1, &rule21},
3204         {995, 1, &rule22},
3205         {996, 1, &rule21},
3206         {997, 1, &rule22},
3207         {998, 1, &rule21},
3208         {999, 1, &rule22},
3209         {1000, 1, &rule21},
3210         {1001, 1, &rule22},
3211         {1002, 1, &rule21},
3212         {1003, 1, &rule22},
3213         {1004, 1, &rule21},
3214         {1005, 1, &rule22},
3215         {1006, 1, &rule21},
3216         {1007, 1, &rule22},
3217         {1008, 1, &rule99},
3218         {1009, 1, &rule100},
3219         {1010, 1, &rule101},
3220         {1012, 1, &rule102},
3221         {1013, 1, &rule103},
3222         {1015, 1, &rule21},
3223         {1016, 1, &rule22},
3224         {1017, 1, &rule104},
3225         {1018, 1, &rule21},
3226         {1019, 1, &rule22},
3227         {1021, 3, &rule53},
3228         {1024, 16, &rule105},
3229         {1040, 32, &rule9},
3230         {1072, 32, &rule12},
3231         {1104, 16, &rule100},
3232         {1120, 1, &rule21},
3233         {1121, 1, &rule22},
3234         {1122, 1, &rule21},
3235         {1123, 1, &rule22},
3236         {1124, 1, &rule21},
3237         {1125, 1, &rule22},
3238         {1126, 1, &rule21},
3239         {1127, 1, &rule22},
3240         {1128, 1, &rule21},
3241         {1129, 1, &rule22},
3242         {1130, 1, &rule21},
3243         {1131, 1, &rule22},
3244         {1132, 1, &rule21},
3245         {1133, 1, &rule22},
3246         {1134, 1, &rule21},
3247         {1135, 1, &rule22},
3248         {1136, 1, &rule21},
3249         {1137, 1, &rule22},
3250         {1138, 1, &rule21},
3251         {1139, 1, &rule22},
3252         {1140, 1, &rule21},
3253         {1141, 1, &rule22},
3254         {1142, 1, &rule21},
3255         {1143, 1, &rule22},
3256         {1144, 1, &rule21},
3257         {1145, 1, &rule22},
3258         {1146, 1, &rule21},
3259         {1147, 1, &rule22},
3260         {1148, 1, &rule21},
3261         {1149, 1, &rule22},
3262         {1150, 1, &rule21},
3263         {1151, 1, &rule22},
3264         {1152, 1, &rule21},
3265         {1153, 1, &rule22},
3266         {1162, 1, &rule21},
3267         {1163, 1, &rule22},
3268         {1164, 1, &rule21},
3269         {1165, 1, &rule22},
3270         {1166, 1, &rule21},
3271         {1167, 1, &rule22},
3272         {1168, 1, &rule21},
3273         {1169, 1, &rule22},
3274         {1170, 1, &rule21},
3275         {1171, 1, &rule22},
3276         {1172, 1, &rule21},
3277         {1173, 1, &rule22},
3278         {1174, 1, &rule21},
3279         {1175, 1, &rule22},
3280         {1176, 1, &rule21},
3281         {1177, 1, &rule22},
3282         {1178, 1, &rule21},
3283         {1179, 1, &rule22},
3284         {1180, 1, &rule21},
3285         {1181, 1, &rule22},
3286         {1182, 1, &rule21},
3287         {1183, 1, &rule22},
3288         {1184, 1, &rule21},
3289         {1185, 1, &rule22},
3290         {1186, 1, &rule21},
3291         {1187, 1, &rule22},
3292         {1188, 1, &rule21},
3293         {1189, 1, &rule22},
3294         {1190, 1, &rule21},
3295         {1191, 1, &rule22},
3296         {1192, 1, &rule21},
3297         {1193, 1, &rule22},
3298         {1194, 1, &rule21},
3299         {1195, 1, &rule22},
3300         {1196, 1, &rule21},
3301         {1197, 1, &rule22},
3302         {1198, 1, &rule21},
3303         {1199, 1, &rule22},
3304         {1200, 1, &rule21},
3305         {1201, 1, &rule22},
3306         {1202, 1, &rule21},
3307         {1203, 1, &rule22},
3308         {1204, 1, &rule21},
3309         {1205, 1, &rule22},
3310         {1206, 1, &rule21},
3311         {1207, 1, &rule22},
3312         {1208, 1, &rule21},
3313         {1209, 1, &rule22},
3314         {1210, 1, &rule21},
3315         {1211, 1, &rule22},
3316         {1212, 1, &rule21},
3317         {1213, 1, &rule22},
3318         {1214, 1, &rule21},
3319         {1215, 1, &rule22},
3320         {1216, 1, &rule107},
3321         {1217, 1, &rule21},
3322         {1218, 1, &rule22},
3323         {1219, 1, &rule21},
3324         {1220, 1, &rule22},
3325         {1221, 1, &rule21},
3326         {1222, 1, &rule22},
3327         {1223, 1, &rule21},
3328         {1224, 1, &rule22},
3329         {1225, 1, &rule21},
3330         {1226, 1, &rule22},
3331         {1227, 1, &rule21},
3332         {1228, 1, &rule22},
3333         {1229, 1, &rule21},
3334         {1230, 1, &rule22},
3335         {1231, 1, &rule108},
3336         {1232, 1, &rule21},
3337         {1233, 1, &rule22},
3338         {1234, 1, &rule21},
3339         {1235, 1, &rule22},
3340         {1236, 1, &rule21},
3341         {1237, 1, &rule22},
3342         {1238, 1, &rule21},
3343         {1239, 1, &rule22},
3344         {1240, 1, &rule21},
3345         {1241, 1, &rule22},
3346         {1242, 1, &rule21},
3347         {1243, 1, &rule22},
3348         {1244, 1, &rule21},
3349         {1245, 1, &rule22},
3350         {1246, 1, &rule21},
3351         {1247, 1, &rule22},
3352         {1248, 1, &rule21},
3353         {1249, 1, &rule22},
3354         {1250, 1, &rule21},
3355         {1251, 1, &rule22},
3356         {1252, 1, &rule21},
3357         {1253, 1, &rule22},
3358         {1254, 1, &rule21},
3359         {1255, 1, &rule22},
3360         {1256, 1, &rule21},
3361         {1257, 1, &rule22},
3362         {1258, 1, &rule21},
3363         {1259, 1, &rule22},
3364         {1260, 1, &rule21},
3365         {1261, 1, &rule22},
3366         {1262, 1, &rule21},
3367         {1263, 1, &rule22},
3368         {1264, 1, &rule21},
3369         {1265, 1, &rule22},
3370         {1266, 1, &rule21},
3371         {1267, 1, &rule22},
3372         {1268, 1, &rule21},
3373         {1269, 1, &rule22},
3374         {1270, 1, &rule21},
3375         {1271, 1, &rule22},
3376         {1272, 1, &rule21},
3377         {1273, 1, &rule22},
3378         {1274, 1, &rule21},
3379         {1275, 1, &rule22},
3380         {1276, 1, &rule21},
3381         {1277, 1, &rule22},
3382         {1278, 1, &rule21},
3383         {1279, 1, &rule22},
3384         {1280, 1, &rule21},
3385         {1281, 1, &rule22},
3386         {1282, 1, &rule21},
3387         {1283, 1, &rule22},
3388         {1284, 1, &rule21},
3389         {1285, 1, &rule22},
3390         {1286, 1, &rule21},
3391         {1287, 1, &rule22},
3392         {1288, 1, &rule21},
3393         {1289, 1, &rule22},
3394         {1290, 1, &rule21},
3395         {1291, 1, &rule22},
3396         {1292, 1, &rule21},
3397         {1293, 1, &rule22},
3398         {1294, 1, &rule21},
3399         {1295, 1, &rule22},
3400         {1296, 1, &rule21},
3401         {1297, 1, &rule22},
3402         {1298, 1, &rule21},
3403         {1299, 1, &rule22},
3404         {1300, 1, &rule21},
3405         {1301, 1, &rule22},
3406         {1302, 1, &rule21},
3407         {1303, 1, &rule22},
3408         {1304, 1, &rule21},
3409         {1305, 1, &rule22},
3410         {1306, 1, &rule21},
3411         {1307, 1, &rule22},
3412         {1308, 1, &rule21},
3413         {1309, 1, &rule22},
3414         {1310, 1, &rule21},
3415         {1311, 1, &rule22},
3416         {1312, 1, &rule21},
3417         {1313, 1, &rule22},
3418         {1314, 1, &rule21},
3419         {1315, 1, &rule22},
3420         {1329, 38, &rule109},
3421         {1377, 38, &rule110},
3422         {4256, 38, &rule112},
3423         {7545, 1, &rule114},
3424         {7549, 1, &rule115},
3425         {7680, 1, &rule21},
3426         {7681, 1, &rule22},
3427         {7682, 1, &rule21},
3428         {7683, 1, &rule22},
3429         {7684, 1, &rule21},
3430         {7685, 1, &rule22},
3431         {7686, 1, &rule21},
3432         {7687, 1, &rule22},
3433         {7688, 1, &rule21},
3434         {7689, 1, &rule22},
3435         {7690, 1, &rule21},
3436         {7691, 1, &rule22},
3437         {7692, 1, &rule21},
3438         {7693, 1, &rule22},
3439         {7694, 1, &rule21},
3440         {7695, 1, &rule22},
3441         {7696, 1, &rule21},
3442         {7697, 1, &rule22},
3443         {7698, 1, &rule21},
3444         {7699, 1, &rule22},
3445         {7700, 1, &rule21},
3446         {7701, 1, &rule22},
3447         {7702, 1, &rule21},
3448         {7703, 1, &rule22},
3449         {7704, 1, &rule21},
3450         {7705, 1, &rule22},
3451         {7706, 1, &rule21},
3452         {7707, 1, &rule22},
3453         {7708, 1, &rule21},
3454         {7709, 1, &rule22},
3455         {7710, 1, &rule21},
3456         {7711, 1, &rule22},
3457         {7712, 1, &rule21},
3458         {7713, 1, &rule22},
3459         {7714, 1, &rule21},
3460         {7715, 1, &rule22},
3461         {7716, 1, &rule21},
3462         {7717, 1, &rule22},
3463         {7718, 1, &rule21},
3464         {7719, 1, &rule22},
3465         {7720, 1, &rule21},
3466         {7721, 1, &rule22},
3467         {7722, 1, &rule21},
3468         {7723, 1, &rule22},
3469         {7724, 1, &rule21},
3470         {7725, 1, &rule22},
3471         {7726, 1, &rule21},
3472         {7727, 1, &rule22},
3473         {7728, 1, &rule21},
3474         {7729, 1, &rule22},
3475         {7730, 1, &rule21},
3476         {7731, 1, &rule22},
3477         {7732, 1, &rule21},
3478         {7733, 1, &rule22},
3479         {7734, 1, &rule21},
3480         {7735, 1, &rule22},
3481         {7736, 1, &rule21},
3482         {7737, 1, &rule22},
3483         {7738, 1, &rule21},
3484         {7739, 1, &rule22},
3485         {7740, 1, &rule21},
3486         {7741, 1, &rule22},
3487         {7742, 1, &rule21},
3488         {7743, 1, &rule22},
3489         {7744, 1, &rule21},
3490         {7745, 1, &rule22},
3491         {7746, 1, &rule21},
3492         {7747, 1, &rule22},
3493         {7748, 1, &rule21},
3494         {7749, 1, &rule22},
3495         {7750, 1, &rule21},
3496         {7751, 1, &rule22},
3497         {7752, 1, &rule21},
3498         {7753, 1, &rule22},
3499         {7754, 1, &rule21},
3500         {7755, 1, &rule22},
3501         {7756, 1, &rule21},
3502         {7757, 1, &rule22},
3503         {7758, 1, &rule21},
3504         {7759, 1, &rule22},
3505         {7760, 1, &rule21},
3506         {7761, 1, &rule22},
3507         {7762, 1, &rule21},
3508         {7763, 1, &rule22},
3509         {7764, 1, &rule21},
3510         {7765, 1, &rule22},
3511         {7766, 1, &rule21},
3512         {7767, 1, &rule22},
3513         {7768, 1, &rule21},
3514         {7769, 1, &rule22},
3515         {7770, 1, &rule21},
3516         {7771, 1, &rule22},
3517         {7772, 1, &rule21},
3518         {7773, 1, &rule22},
3519         {7774, 1, &rule21},
3520         {7775, 1, &rule22},
3521         {7776, 1, &rule21},
3522         {7777, 1, &rule22},
3523         {7778, 1, &rule21},
3524         {7779, 1, &rule22},
3525         {7780, 1, &rule21},
3526         {7781, 1, &rule22},
3527         {7782, 1, &rule21},
3528         {7783, 1, &rule22},
3529         {7784, 1, &rule21},
3530         {7785, 1, &rule22},
3531         {7786, 1, &rule21},
3532         {7787, 1, &rule22},
3533         {7788, 1, &rule21},
3534         {7789, 1, &rule22},
3535         {7790, 1, &rule21},
3536         {7791, 1, &rule22},
3537         {7792, 1, &rule21},
3538         {7793, 1, &rule22},
3539         {7794, 1, &rule21},
3540         {7795, 1, &rule22},
3541         {7796, 1, &rule21},
3542         {7797, 1, &rule22},
3543         {7798, 1, &rule21},
3544         {7799, 1, &rule22},
3545         {7800, 1, &rule21},
3546         {7801, 1, &rule22},
3547         {7802, 1, &rule21},
3548         {7803, 1, &rule22},
3549         {7804, 1, &rule21},
3550         {7805, 1, &rule22},
3551         {7806, 1, &rule21},
3552         {7807, 1, &rule22},
3553         {7808, 1, &rule21},
3554         {7809, 1, &rule22},
3555         {7810, 1, &rule21},
3556         {7811, 1, &rule22},
3557         {7812, 1, &rule21},
3558         {7813, 1, &rule22},
3559         {7814, 1, &rule21},
3560         {7815, 1, &rule22},
3561         {7816, 1, &rule21},
3562         {7817, 1, &rule22},
3563         {7818, 1, &rule21},
3564         {7819, 1, &rule22},
3565         {7820, 1, &rule21},
3566         {7821, 1, &rule22},
3567         {7822, 1, &rule21},
3568         {7823, 1, &rule22},
3569         {7824, 1, &rule21},
3570         {7825, 1, &rule22},
3571         {7826, 1, &rule21},
3572         {7827, 1, &rule22},
3573         {7828, 1, &rule21},
3574         {7829, 1, &rule22},
3575         {7835, 1, &rule116},
3576         {7838, 1, &rule117},
3577         {7840, 1, &rule21},
3578         {7841, 1, &rule22},
3579         {7842, 1, &rule21},
3580         {7843, 1, &rule22},
3581         {7844, 1, &rule21},
3582         {7845, 1, &rule22},
3583         {7846, 1, &rule21},
3584         {7847, 1, &rule22},
3585         {7848, 1, &rule21},
3586         {7849, 1, &rule22},
3587         {7850, 1, &rule21},
3588         {7851, 1, &rule22},
3589         {7852, 1, &rule21},
3590         {7853, 1, &rule22},
3591         {7854, 1, &rule21},
3592         {7855, 1, &rule22},
3593         {7856, 1, &rule21},
3594         {7857, 1, &rule22},
3595         {7858, 1, &rule21},
3596         {7859, 1, &rule22},
3597         {7860, 1, &rule21},
3598         {7861, 1, &rule22},
3599         {7862, 1, &rule21},
3600         {7863, 1, &rule22},
3601         {7864, 1, &rule21},
3602         {7865, 1, &rule22},
3603         {7866, 1, &rule21},
3604         {7867, 1, &rule22},
3605         {7868, 1, &rule21},
3606         {7869, 1, &rule22},
3607         {7870, 1, &rule21},
3608         {7871, 1, &rule22},
3609         {7872, 1, &rule21},
3610         {7873, 1, &rule22},
3611         {7874, 1, &rule21},
3612         {7875, 1, &rule22},
3613         {7876, 1, &rule21},
3614         {7877, 1, &rule22},
3615         {7878, 1, &rule21},
3616         {7879, 1, &rule22},
3617         {7880, 1, &rule21},
3618         {7881, 1, &rule22},
3619         {7882, 1, &rule21},
3620         {7883, 1, &rule22},
3621         {7884, 1, &rule21},
3622         {7885, 1, &rule22},
3623         {7886, 1, &rule21},
3624         {7887, 1, &rule22},
3625         {7888, 1, &rule21},
3626         {7889, 1, &rule22},
3627         {7890, 1, &rule21},
3628         {7891, 1, &rule22},
3629         {7892, 1, &rule21},
3630         {7893, 1, &rule22},
3631         {7894, 1, &rule21},
3632         {7895, 1, &rule22},
3633         {7896, 1, &rule21},
3634         {7897, 1, &rule22},
3635         {7898, 1, &rule21},
3636         {7899, 1, &rule22},
3637         {7900, 1, &rule21},
3638         {7901, 1, &rule22},
3639         {7902, 1, &rule21},
3640         {7903, 1, &rule22},
3641         {7904, 1, &rule21},
3642         {7905, 1, &rule22},
3643         {7906, 1, &rule21},
3644         {7907, 1, &rule22},
3645         {7908, 1, &rule21},
3646         {7909, 1, &rule22},
3647         {7910, 1, &rule21},
3648         {7911, 1, &rule22},
3649         {7912, 1, &rule21},
3650         {7913, 1, &rule22},
3651         {7914, 1, &rule21},
3652         {7915, 1, &rule22},
3653         {7916, 1, &rule21},
3654         {7917, 1, &rule22},
3655         {7918, 1, &rule21},
3656         {7919, 1, &rule22},
3657         {7920, 1, &rule21},
3658         {7921, 1, &rule22},
3659         {7922, 1, &rule21},
3660         {7923, 1, &rule22},
3661         {7924, 1, &rule21},
3662         {7925, 1, &rule22},
3663         {7926, 1, &rule21},
3664         {7927, 1, &rule22},
3665         {7928, 1, &rule21},
3666         {7929, 1, &rule22},
3667         {7930, 1, &rule21},
3668         {7931, 1, &rule22},
3669         {7932, 1, &rule21},
3670         {7933, 1, &rule22},
3671         {7934, 1, &rule21},
3672         {7935, 1, &rule22},
3673         {7936, 8, &rule118},
3674         {7944, 8, &rule119},
3675         {7952, 6, &rule118},
3676         {7960, 6, &rule119},
3677         {7968, 8, &rule118},
3678         {7976, 8, &rule119},
3679         {7984, 8, &rule118},
3680         {7992, 8, &rule119},
3681         {8000, 6, &rule118},
3682         {8008, 6, &rule119},
3683         {8017, 1, &rule118},
3684         {8019, 1, &rule118},
3685         {8021, 1, &rule118},
3686         {8023, 1, &rule118},
3687         {8025, 1, &rule119},
3688         {8027, 1, &rule119},
3689         {8029, 1, &rule119},
3690         {8031, 1, &rule119},
3691         {8032, 8, &rule118},
3692         {8040, 8, &rule119},
3693         {8048, 2, &rule120},
3694         {8050, 4, &rule121},
3695         {8054, 2, &rule122},
3696         {8056, 2, &rule123},
3697         {8058, 2, &rule124},
3698         {8060, 2, &rule125},
3699         {8064, 8, &rule118},
3700         {8072, 8, &rule126},
3701         {8080, 8, &rule118},
3702         {8088, 8, &rule126},
3703         {8096, 8, &rule118},
3704         {8104, 8, &rule126},
3705         {8112, 2, &rule118},
3706         {8115, 1, &rule127},
3707         {8120, 2, &rule119},
3708         {8122, 2, &rule128},
3709         {8124, 1, &rule129},
3710         {8126, 1, &rule130},
3711         {8131, 1, &rule127},
3712         {8136, 4, &rule131},
3713         {8140, 1, &rule129},
3714         {8144, 2, &rule118},
3715         {8152, 2, &rule119},
3716         {8154, 2, &rule132},
3717         {8160, 2, &rule118},
3718         {8165, 1, &rule101},
3719         {8168, 2, &rule119},
3720         {8170, 2, &rule133},
3721         {8172, 1, &rule104},
3722         {8179, 1, &rule127},
3723         {8184, 2, &rule134},
3724         {8186, 2, &rule135},
3725         {8188, 1, &rule129},
3726         {8486, 1, &rule138},
3727         {8490, 1, &rule139},
3728         {8491, 1, &rule140},
3729         {8498, 1, &rule141},
3730         {8526, 1, &rule142},
3731         {8544, 16, &rule143},
3732         {8560, 16, &rule144},
3733         {8579, 1, &rule21},
3734         {8580, 1, &rule22},
3735         {9398, 26, &rule145},
3736         {9424, 26, &rule146},
3737         {11264, 47, &rule109},
3738         {11312, 47, &rule110},
3739         {11360, 1, &rule21},
3740         {11361, 1, &rule22},
3741         {11362, 1, &rule147},
3742         {11363, 1, &rule148},
3743         {11364, 1, &rule149},
3744         {11365, 1, &rule150},
3745         {11366, 1, &rule151},
3746         {11367, 1, &rule21},
3747         {11368, 1, &rule22},
3748         {11369, 1, &rule21},
3749         {11370, 1, &rule22},
3750         {11371, 1, &rule21},
3751         {11372, 1, &rule22},
3752         {11373, 1, &rule152},
3753         {11374, 1, &rule153},
3754         {11375, 1, &rule154},
3755         {11378, 1, &rule21},
3756         {11379, 1, &rule22},
3757         {11381, 1, &rule21},
3758         {11382, 1, &rule22},
3759         {11392, 1, &rule21},
3760         {11393, 1, &rule22},
3761         {11394, 1, &rule21},
3762         {11395, 1, &rule22},
3763         {11396, 1, &rule21},
3764         {11397, 1, &rule22},
3765         {11398, 1, &rule21},
3766         {11399, 1, &rule22},
3767         {11400, 1, &rule21},
3768         {11401, 1, &rule22},
3769         {11402, 1, &rule21},
3770         {11403, 1, &rule22},
3771         {11404, 1, &rule21},
3772         {11405, 1, &rule22},
3773         {11406, 1, &rule21},
3774         {11407, 1, &rule22},
3775         {11408, 1, &rule21},
3776         {11409, 1, &rule22},
3777         {11410, 1, &rule21},
3778         {11411, 1, &rule22},
3779         {11412, 1, &rule21},
3780         {11413, 1, &rule22},
3781         {11414, 1, &rule21},
3782         {11415, 1, &rule22},
3783         {11416, 1, &rule21},
3784         {11417, 1, &rule22},
3785         {11418, 1, &rule21},
3786         {11419, 1, &rule22},
3787         {11420, 1, &rule21},
3788         {11421, 1, &rule22},
3789         {11422, 1, &rule21},
3790         {11423, 1, &rule22},
3791         {11424, 1, &rule21},
3792         {11425, 1, &rule22},
3793         {11426, 1, &rule21},
3794         {11427, 1, &rule22},
3795         {11428, 1, &rule21},
3796         {11429, 1, &rule22},
3797         {11430, 1, &rule21},
3798         {11431, 1, &rule22},
3799         {11432, 1, &rule21},
3800         {11433, 1, &rule22},
3801         {11434, 1, &rule21},
3802         {11435, 1, &rule22},
3803         {11436, 1, &rule21},
3804         {11437, 1, &rule22},
3805         {11438, 1, &rule21},
3806         {11439, 1, &rule22},
3807         {11440, 1, &rule21},
3808         {11441, 1, &rule22},
3809         {11442, 1, &rule21},
3810         {11443, 1, &rule22},
3811         {11444, 1, &rule21},
3812         {11445, 1, &rule22},
3813         {11446, 1, &rule21},
3814         {11447, 1, &rule22},
3815         {11448, 1, &rule21},
3816         {11449, 1, &rule22},
3817         {11450, 1, &rule21},
3818         {11451, 1, &rule22},
3819         {11452, 1, &rule21},
3820         {11453, 1, &rule22},
3821         {11454, 1, &rule21},
3822         {11455, 1, &rule22},
3823         {11456, 1, &rule21},
3824         {11457, 1, &rule22},
3825         {11458, 1, &rule21},
3826         {11459, 1, &rule22},
3827         {11460, 1, &rule21},
3828         {11461, 1, &rule22},
3829         {11462, 1, &rule21},
3830         {11463, 1, &rule22},
3831         {11464, 1, &rule21},
3832         {11465, 1, &rule22},
3833         {11466, 1, &rule21},
3834         {11467, 1, &rule22},
3835         {11468, 1, &rule21},
3836         {11469, 1, &rule22},
3837         {11470, 1, &rule21},
3838         {11471, 1, &rule22},
3839         {11472, 1, &rule21},
3840         {11473, 1, &rule22},
3841         {11474, 1, &rule21},
3842         {11475, 1, &rule22},
3843         {11476, 1, &rule21},
3844         {11477, 1, &rule22},
3845         {11478, 1, &rule21},
3846         {11479, 1, &rule22},
3847         {11480, 1, &rule21},
3848         {11481, 1, &rule22},
3849         {11482, 1, &rule21},
3850         {11483, 1, &rule22},
3851         {11484, 1, &rule21},
3852         {11485, 1, &rule22},
3853         {11486, 1, &rule21},
3854         {11487, 1, &rule22},
3855         {11488, 1, &rule21},
3856         {11489, 1, &rule22},
3857         {11490, 1, &rule21},
3858         {11491, 1, &rule22},
3859         {11520, 38, &rule155},
3860         {42560, 1, &rule21},
3861         {42561, 1, &rule22},
3862         {42562, 1, &rule21},
3863         {42563, 1, &rule22},
3864         {42564, 1, &rule21},
3865         {42565, 1, &rule22},
3866         {42566, 1, &rule21},
3867         {42567, 1, &rule22},
3868         {42568, 1, &rule21},
3869         {42569, 1, &rule22},
3870         {42570, 1, &rule21},
3871         {42571, 1, &rule22},
3872         {42572, 1, &rule21},
3873         {42573, 1, &rule22},
3874         {42574, 1, &rule21},
3875         {42575, 1, &rule22},
3876         {42576, 1, &rule21},
3877         {42577, 1, &rule22},
3878         {42578, 1, &rule21},
3879         {42579, 1, &rule22},
3880         {42580, 1, &rule21},
3881         {42581, 1, &rule22},
3882         {42582, 1, &rule21},
3883         {42583, 1, &rule22},
3884         {42584, 1, &rule21},
3885         {42585, 1, &rule22},
3886         {42586, 1, &rule21},
3887         {42587, 1, &rule22},
3888         {42588, 1, &rule21},
3889         {42589, 1, &rule22},
3890         {42590, 1, &rule21},
3891         {42591, 1, &rule22},
3892         {42594, 1, &rule21},
3893         {42595, 1, &rule22},
3894         {42596, 1, &rule21},
3895         {42597, 1, &rule22},
3896         {42598, 1, &rule21},
3897         {42599, 1, &rule22},
3898         {42600, 1, &rule21},
3899         {42601, 1, &rule22},
3900         {42602, 1, &rule21},
3901         {42603, 1, &rule22},
3902         {42604, 1, &rule21},
3903         {42605, 1, &rule22},
3904         {42624, 1, &rule21},
3905         {42625, 1, &rule22},
3906         {42626, 1, &rule21},
3907         {42627, 1, &rule22},
3908         {42628, 1, &rule21},
3909         {42629, 1, &rule22},
3910         {42630, 1, &rule21},
3911         {42631, 1, &rule22},
3912         {42632, 1, &rule21},
3913         {42633, 1, &rule22},
3914         {42634, 1, &rule21},
3915         {42635, 1, &rule22},
3916         {42636, 1, &rule21},
3917         {42637, 1, &rule22},
3918         {42638, 1, &rule21},
3919         {42639, 1, &rule22},
3920         {42640, 1, &rule21},
3921         {42641, 1, &rule22},
3922         {42642, 1, &rule21},
3923         {42643, 1, &rule22},
3924         {42644, 1, &rule21},
3925         {42645, 1, &rule22},
3926         {42646, 1, &rule21},
3927         {42647, 1, &rule22},
3928         {42786, 1, &rule21},
3929         {42787, 1, &rule22},
3930         {42788, 1, &rule21},
3931         {42789, 1, &rule22},
3932         {42790, 1, &rule21},
3933         {42791, 1, &rule22},
3934         {42792, 1, &rule21},
3935         {42793, 1, &rule22},
3936         {42794, 1, &rule21},
3937         {42795, 1, &rule22},
3938         {42796, 1, &rule21},
3939         {42797, 1, &rule22},
3940         {42798, 1, &rule21},
3941         {42799, 1, &rule22},
3942         {42802, 1, &rule21},
3943         {42803, 1, &rule22},
3944         {42804, 1, &rule21},
3945         {42805, 1, &rule22},
3946         {42806, 1, &rule21},
3947         {42807, 1, &rule22},
3948         {42808, 1, &rule21},
3949         {42809, 1, &rule22},
3950         {42810, 1, &rule21},
3951         {42811, 1, &rule22},
3952         {42812, 1, &rule21},
3953         {42813, 1, &rule22},
3954         {42814, 1, &rule21},
3955         {42815, 1, &rule22},
3956         {42816, 1, &rule21},
3957         {42817, 1, &rule22},
3958         {42818, 1, &rule21},
3959         {42819, 1, &rule22},
3960         {42820, 1, &rule21},
3961         {42821, 1, &rule22},
3962         {42822, 1, &rule21},
3963         {42823, 1, &rule22},
3964         {42824, 1, &rule21},
3965         {42825, 1, &rule22},
3966         {42826, 1, &rule21},
3967         {42827, 1, &rule22},
3968         {42828, 1, &rule21},
3969         {42829, 1, &rule22},
3970         {42830, 1, &rule21},
3971         {42831, 1, &rule22},
3972         {42832, 1, &rule21},
3973         {42833, 1, &rule22},
3974         {42834, 1, &rule21},
3975         {42835, 1, &rule22},
3976         {42836, 1, &rule21},
3977         {42837, 1, &rule22},
3978         {42838, 1, &rule21},
3979         {42839, 1, &rule22},
3980         {42840, 1, &rule21},
3981         {42841, 1, &rule22},
3982         {42842, 1, &rule21},
3983         {42843, 1, &rule22},
3984         {42844, 1, &rule21},
3985         {42845, 1, &rule22},
3986         {42846, 1, &rule21},
3987         {42847, 1, &rule22},
3988         {42848, 1, &rule21},
3989         {42849, 1, &rule22},
3990         {42850, 1, &rule21},
3991         {42851, 1, &rule22},
3992         {42852, 1, &rule21},
3993         {42853, 1, &rule22},
3994         {42854, 1, &rule21},
3995         {42855, 1, &rule22},
3996         {42856, 1, &rule21},
3997         {42857, 1, &rule22},
3998         {42858, 1, &rule21},
3999         {42859, 1, &rule22},
4000         {42860, 1, &rule21},
4001         {42861, 1, &rule22},
4002         {42862, 1, &rule21},
4003         {42863, 1, &rule22},
4004         {42873, 1, &rule21},
4005         {42874, 1, &rule22},
4006         {42875, 1, &rule21},
4007         {42876, 1, &rule22},
4008         {42877, 1, &rule156},
4009         {42878, 1, &rule21},
4010         {42879, 1, &rule22},
4011         {42880, 1, &rule21},
4012         {42881, 1, &rule22},
4013         {42882, 1, &rule21},
4014         {42883, 1, &rule22},
4015         {42884, 1, &rule21},
4016         {42885, 1, &rule22},
4017         {42886, 1, &rule21},
4018         {42887, 1, &rule22},
4019         {42891, 1, &rule21},
4020         {42892, 1, &rule22},
4021         {65313, 26, &rule9},
4022         {65345, 26, &rule12},
4023         {66560, 40, &rule159},
4024         {66600, 40, &rule160}
4025 };
4026 static const struct _charblock_ spacechars[]={
4027         {32, 1, &rule1},
4028         {160, 1, &rule1},
4029         {5760, 1, &rule1},
4030         {6158, 1, &rule1},
4031         {8192, 11, &rule1},
4032         {8239, 1, &rule1},
4033         {8287, 1, &rule1},
4034         {12288, 1, &rule1}
4035 };
4036
4037 /*
4038         Obtain the reference to character rule by doing
4039         binary search over the specified array of blocks.
4040         To make checkattr shorter, the address of
4041         nullrule is returned if the search fails:
4042         this rule defines no category and no conversion
4043         distances. The compare function returns 0 when
4044         key->start is within the block. Otherwise
4045         result of comparison of key->start and start of the
4046         current block is returned as usual.
4047 */
4048
4049 static const struct _convrule_ nullrule={0,NUMCAT_CN,0,0,0,0};
4050
4051 int blkcmp(const void *vk,const void *vb)
4052 {
4053         const struct _charblock_ *key,*cur;
4054         key=vk;
4055         cur=vb;
4056         if((key->start>=cur->start)&&(key->start<(cur->start+cur->length)))
4057         {
4058                 return 0;
4059         }
4060         if(key->start>cur->start) return 1;
4061         return -1;
4062 }
4063
4064 static const struct _convrule_ *getrule(
4065         const struct _charblock_ *blocks,
4066         int numblocks,
4067         int unichar)
4068 {
4069         struct _charblock_ key={unichar,1,(void *)0};
4070         struct _charblock_ *cb=bsearch(&key,blocks,numblocks,sizeof(key),blkcmp);
4071         if(cb==(void *)0) return &nullrule;
4072         return cb->rule;
4073 }
4074         
4075
4076
4077 /*
4078         Check whether a character (internal code) has certain attributes.
4079         Attributes (category flags) may be ORed. The function ANDs
4080         character category flags and the mask and returns the result.
4081         If the character belongs to one of the categories requested,
4082         the result will be nonzero.
4083 */
4084
4085 inline static int checkattr(int c,unsigned int catmask)
4086 {
4087         return (catmask & (getrule(allchars,(c<256)?NUM_LAT1BLOCKS:NUM_BLOCKS,c)->category));
4088 }
4089
4090 inline static int checkattr_s(int c,unsigned int catmask)
4091 {
4092         return (catmask & (getrule(spacechars,NUM_SPACEBLOCKS,c)->category));
4093 }
4094
4095 /*
4096         Define predicate functions for some combinations of categories.
4097 */
4098
4099 #define unipred(p,m) \
4100 int p(int c) \
4101 { \
4102         return checkattr(c,m); \
4103 }
4104
4105 #define unipred_s(p,m) \
4106 int p(int c) \
4107 { \
4108         return checkattr_s(c,m); \
4109 }
4110
4111 /*
4112         Make these rules as close to Hugs as possible.
4113 */
4114
4115 unipred(u_iswcntrl,GENCAT_CC)
4116 unipred(u_iswprint, (GENCAT_MC | GENCAT_NO | GENCAT_SK | GENCAT_ME | GENCAT_ND |   GENCAT_PO | GENCAT_LT | GENCAT_PC | GENCAT_SM | GENCAT_ZS |   GENCAT_LU | GENCAT_PD | GENCAT_SO | GENCAT_PE | GENCAT_PF |   GENCAT_PS | GENCAT_SC | GENCAT_LL | GENCAT_LM | GENCAT_PI |   GENCAT_NL | GENCAT_MN | GENCAT_LO))
4117 unipred_s(u_iswspace,GENCAT_ZS)
4118 unipred(u_iswupper,(GENCAT_LU|GENCAT_LT))
4119 unipred(u_iswlower,GENCAT_LL)
4120 unipred(u_iswalpha,(GENCAT_LL|GENCAT_LU|GENCAT_LT|GENCAT_LM|GENCAT_LO))
4121 unipred(u_iswdigit,GENCAT_ND)
4122
4123 unipred(u_iswalnum,(GENCAT_LT|GENCAT_LU|GENCAT_LL|GENCAT_LM|GENCAT_LO|
4124                     GENCAT_MC|GENCAT_ME|GENCAT_MN|
4125                     GENCAT_NO|GENCAT_ND|GENCAT_NL))
4126
4127 #define caseconv(p,to) \
4128 int p(int c) \
4129 { \
4130         const struct _convrule_ *rule=getrule(convchars,NUM_CONVBLOCKS,c);\
4131         if(rule==&nullrule) return c;\
4132         return c+rule->to;\
4133 }
4134
4135 caseconv(u_towupper,updist)
4136 caseconv(u_towlower,lowdist)
4137 caseconv(u_towtitle,titledist)
4138
4139 int u_gencat(int c)
4140 {
4141         return getrule(allchars,NUM_BLOCKS,c)->catnumber;
4142 }
4143