update copyright
[fedora-idea.git] / plugins / xpath / xpath-lang / src / org / intellij / lang / xpath / _XPathLexer.java
blob2188dbc9f049f780f81ef65cf0d2465f027075bc
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 /* The following code was generated by JFlex 1.4.1 on 20.08.07 15:46 */
19 /* It's an automatically generated code. Do not modify it. */
20 package org.intellij.lang.xpath;
22 import com.intellij.lexer.FlexLexer;
23 import com.intellij.psi.tree.IElementType;
25 @SuppressWarnings({"ALL"})
27 /**
28 * This class is a scanner generated by
29 * <a href="http://www.jflex.de/">JFlex</a> 1.4.1
30 * on 20.08.07 15:46 from the specification file
31 * <tt>C:/work/java/idea-plugins/XPathView/xpath-lang/src/org/intellij/lang/xpath/xpath-lexer.flex</tt>
33 class _XPathLexer implements FlexLexer {
34 /** initial size of the lookahead buffer */
35 private static final int ZZ_BUFFERSIZE = 16384;
37 /** lexical states */
38 public static final int VAR = 3;
39 public static final int FUNC = 2;
40 public static final int YYINITIAL = 0;
41 public static final int S1 = 1;
43 /**
44 * Translates characters to character classes
46 private static final String ZZ_CMAP_PACKED =
47 "\11\0\1\1\1\1\2\0\1\1\22\0\1\1\1\47\1\7\1\0"+
48 "\1\35\1\0\1\51\1\10\1\36\1\54\1\37\1\45\1\42\1\5"+
49 "\1\4\1\43\12\3\1\6\1\52\1\50\1\46\1\53\1\0\1\41"+
50 "\32\2\1\55\1\0\1\56\1\0\1\2\1\0\1\11\1\24\1\13"+
51 "\1\27\1\14\1\22\1\31\1\26\1\23\2\2\1\21\1\32\1\12"+
52 "\1\17\1\33\1\2\1\20\1\15\1\16\1\25\1\40\1\30\1\34"+
53 "\2\2\1\57\1\44\1\60\54\0\1\2\12\0\1\2\4\0\1\2"+
54 "\5\0\27\2\1\0\37\2\1\0\u013f\2\31\0\162\2\4\0\14\2"+
55 "\16\0\5\2\11\0\1\2\213\0\1\2\13\0\1\2\1\0\3\2"+
56 "\1\0\1\2\1\0\24\2\1\0\54\2\1\0\46\2\1\0\5\2"+
57 "\4\0\202\2\10\0\105\2\1\0\46\2\2\0\2\2\6\0\20\2"+
58 "\41\0\46\2\2\0\1\2\7\0\47\2\110\0\33\2\5\0\3\2"+
59 "\56\0\32\2\5\0\13\2\25\0\12\3\4\0\2\2\1\0\143\2"+
60 "\1\0\1\2\17\0\2\2\7\0\2\2\12\3\3\2\2\0\1\2"+
61 "\20\0\1\2\1\0\36\2\35\0\3\2\60\0\46\2\13\0\1\2"+
62 "\u0152\0\66\2\3\0\1\2\22\0\1\2\7\0\12\2\4\0\12\3"+
63 "\25\0\10\2\2\0\2\2\2\0\26\2\1\0\7\2\1\0\1\2"+
64 "\3\0\4\2\3\0\1\2\36\0\2\2\1\0\3\2\4\0\12\3"+
65 "\2\2\23\0\6\2\4\0\2\2\2\0\26\2\1\0\7\2\1\0"+
66 "\2\2\1\0\2\2\1\0\2\2\37\0\4\2\1\0\1\2\7\0"+
67 "\12\3\2\0\3\2\20\0\11\2\1\0\3\2\1\0\26\2\1\0"+
68 "\7\2\1\0\2\2\1\0\5\2\3\0\1\2\22\0\1\2\17\0"+
69 "\2\2\4\0\12\3\25\0\10\2\2\0\2\2\2\0\26\2\1\0"+
70 "\7\2\1\0\2\2\1\0\5\2\3\0\1\2\36\0\2\2\1\0"+
71 "\3\2\4\0\12\3\1\0\1\2\21\0\1\2\1\0\6\2\3\0"+
72 "\3\2\1\0\4\2\3\0\2\2\1\0\1\2\1\0\2\2\3\0"+
73 "\2\2\3\0\3\2\3\0\10\2\1\0\3\2\55\0\11\3\25\0"+
74 "\10\2\1\0\3\2\1\0\27\2\1\0\12\2\1\0\5\2\46\0"+
75 "\2\2\4\0\12\3\25\0\10\2\1\0\3\2\1\0\27\2\1\0"+
76 "\12\2\1\0\5\2\3\0\1\2\40\0\1\2\1\0\2\2\4\0"+
77 "\12\3\25\0\10\2\1\0\3\2\1\0\27\2\1\0\20\2\46\0"+
78 "\2\2\4\0\12\3\25\0\22\2\3\0\30\2\1\0\11\2\1\0"+
79 "\1\2\2\0\7\2\72\0\60\2\1\0\2\2\14\0\7\2\11\0"+
80 "\12\3\47\0\2\2\1\0\1\2\2\0\2\2\1\0\1\2\2\0"+
81 "\1\2\6\0\4\2\1\0\7\2\1\0\3\2\1\0\1\2\1\0"+
82 "\1\2\2\0\2\2\1\0\4\2\1\0\2\2\11\0\1\2\2\0"+
83 "\5\2\1\0\1\2\11\0\12\3\2\0\2\2\42\0\1\2\37\0"+
84 "\12\3\26\0\10\2\1\0\42\2\35\0\4\2\164\0\42\2\1\0"+
85 "\5\2\1\0\2\2\25\0\12\3\6\0\6\2\112\0\46\2\12\0"+
86 "\51\2\7\0\132\2\5\0\104\2\5\0\122\2\6\0\7\2\1\0"+
87 "\77\2\1\0\1\2\1\0\4\2\2\0\7\2\1\0\1\2\1\0"+
88 "\4\2\2\0\47\2\1\0\1\2\1\0\4\2\2\0\37\2\1\0"+
89 "\1\2\1\0\4\2\2\0\7\2\1\0\1\2\1\0\4\2\2\0"+
90 "\7\2\1\0\7\2\1\0\27\2\1\0\37\2\1\0\1\2\1\0"+
91 "\4\2\2\0\7\2\1\0\47\2\1\0\23\2\16\0\11\3\56\0"+
92 "\125\2\14\0\u026c\2\2\0\10\2\12\0\32\2\5\0\113\2\25\0"+
93 "\15\2\1\0\4\2\16\0\22\2\16\0\22\2\16\0\15\2\1\0"+
94 "\3\2\17\0\64\2\43\0\1\2\4\0\1\2\3\0\12\3\46\0"+
95 "\12\3\6\0\130\2\10\0\51\2\127\0\35\2\51\0\12\3\36\2"+
96 "\2\0\5\2\u038b\0\154\2\224\0\234\2\4\0\132\2\6\0\26\2"+
97 "\2\0\6\2\2\0\46\2\2\0\6\2\2\0\10\2\1\0\1\2"+
98 "\1\0\1\2\1\0\1\2\1\0\37\2\2\0\65\2\1\0\7\2"+
99 "\1\0\1\2\3\0\3\2\1\0\7\2\3\0\4\2\2\0\6\2"+
100 "\4\0\15\2\5\0\3\2\1\0\7\2\164\0\1\2\15\0\1\2"+
101 "\202\0\1\2\4\0\1\2\2\0\12\2\1\0\1\2\3\0\5\2"+
102 "\6\0\1\2\1\0\1\2\1\0\1\2\1\0\4\2\1\0\3\2"+
103 "\1\0\7\2\3\0\3\2\5\0\5\2\u0ebb\0\2\2\52\0\5\2"+
104 "\5\0\2\2\4\0\126\2\6\0\3\2\1\0\132\2\1\0\4\2"+
105 "\5\0\50\2\4\0\136\2\21\0\30\2\70\0\20\2\u0200\0\u19b6\2"+
106 "\112\0\u51a6\2\132\0\u048d\2\u0773\0\u2ba4\2\u215c\0\u012e\2\2\0\73\2"+
107 "\225\0\7\2\14\0\5\2\5\0\1\2\1\0\12\2\1\0\15\2"+
108 "\1\0\5\2\1\0\1\2\1\0\2\2\1\0\2\2\1\0\154\2"+
109 "\41\0\u016b\2\22\0\100\2\2\0\66\2\50\0\14\2\164\0\5\2"+
110 "\1\0\207\2\23\0\12\3\7\0\32\2\6\0\32\2\13\0\131\2"+
111 "\3\0\6\2\2\0\6\2\2\0\6\2\2\0\3\2\43\0";
113 /**
114 * Translates characters to character classes
116 private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
118 /**
119 * Translates DFA states to action switch labels.
121 private static final int [] ZZ_ACTION = zzUnpackAction();
123 private static final String ZZ_ACTION_PACKED_0 =
124 "\4\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7"+
125 "\2\10\10\3\1\11\1\12\1\13\1\14\1\15\1\16"+
126 "\1\17\1\20\1\21\1\1\1\22\1\1\1\23\1\24"+
127 "\1\25\1\26\1\27\1\30\13\3\1\31\1\32\1\33"+
128 "\10\32\11\34\2\0\1\32\1\4\1\35\1\36\1\10"+
129 "\14\3\1\37\1\40\1\41\2\0\1\42\2\0\10\3"+
130 "\1\43\6\3\14\32\1\0\1\44\14\34\1\0\1\45"+
131 "\15\3\2\0\1\3\1\46\11\3\1\47\1\50\3\3"+
132 "\15\32\15\34\1\0\1\51\30\3\14\32\14\34\3\3"+
133 "\1\0\1\52\1\3\2\0\10\3\1\0\1\3\2\0"+
134 "\5\3\11\32\3\34\1\0\1\34\1\0\1\44\5\34"+
135 "\3\3\1\53\11\3\6\32\6\34\14\3\6\32\6\34"+
136 "\12\3\5\32\5\34\10\3\4\32\4\34\6\3\3\32"+
137 "\3\34\6\3\3\32\3\34\6\3\3\32\3\34\4\3"+
138 "\2\32\2\34\4\3\2\32\2\34\4\3\2\32\2\34"+
139 "\4\3\2\32\2\34\2\3\1\32\1\34\2\3\1\32"+
140 "\1\34\2\3\1\32\1\34\2\3\1\32\1\34\2\3"+
141 "\1\32\1\34";
143 private static int [] zzUnpackAction() {
144 int [] result = new int[466];
145 int offset = 0;
146 offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
147 return result;
150 private static int zzUnpackAction(String packed, int offset, int [] result) {
151 int i = 0; /* index in packed string */
152 int j = offset; /* index in unpacked array */
153 int l = packed.length();
154 while (i < l) {
155 int count = packed.charAt(i++);
156 int value = packed.charAt(i++);
157 do result[j++] = value; while (--count > 0);
159 return j;
163 /**
164 * Translates a state to a row index in the transition table
166 private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
168 private static final String ZZ_ROWMAP_PACKED_0 =
169 "\0\0\0\61\0\142\0\223\0\304\0\365\0\u0126\0\u0157"+
170 "\0\u0188\0\304\0\u01b9\0\u01ea\0\u021b\0\u024c\0\u027d\0\u02ae"+
171 "\0\u02df\0\u0310\0\u0341\0\u0372\0\u03a3\0\304\0\304\0\304"+
172 "\0\304\0\304\0\u03d4\0\304\0\304\0\304\0\u0405\0\u0436"+
173 "\0\u0467\0\u0498\0\304\0\304\0\304\0\304\0\304\0\u04c9"+
174 "\0\u04fa\0\u052b\0\u055c\0\u058d\0\u05be\0\u05ef\0\u0620\0\u0651"+
175 "\0\u0682\0\u06b3\0\304\0\u06e4\0\u01b9\0\u0715\0\u0746\0\u0777"+
176 "\0\u07a8\0\u07d9\0\u080a\0\u083b\0\u086c\0\u089d\0\u08ce\0\u08ff"+
177 "\0\u0930\0\u0961\0\u0992\0\u09c3\0\u09f4\0\u0a25\0\u0a56\0\u0a87"+
178 "\0\304\0\u0ab8\0\304\0\304\0\304\0\u0ae9\0\u0b1a\0\u0b4b"+
179 "\0\u0b7c\0\u0bad\0\u0bde\0\u0c0f\0\u0c40\0\u0c71\0\u0ca2\0\u0cd3"+
180 "\0\u0d04\0\304\0\304\0\304\0\u0d35\0\u0d66\0\304\0\u0d97"+
181 "\0\u0dc8\0\u0df9\0\u0e2a\0\u0e5b\0\u0e8c\0\u0ebd\0\u0eee\0\u0f1f"+
182 "\0\u0f50\0\u04c9\0\u0f81\0\u0fb2\0\u0fe3\0\u1014\0\u1045\0\u1076"+
183 "\0\u10a7\0\u10d8\0\u1109\0\u113a\0\u116b\0\u119c\0\u11cd\0\u11fe"+
184 "\0\u122f\0\u1260\0\u1291\0\u12c2\0\u12f3\0\u0dc8\0\u1324\0\u1355"+
185 "\0\u1386\0\u13b7\0\u13e8\0\u1419\0\u144a\0\u147b\0\u14ac\0\u14dd"+
186 "\0\u150e\0\u153f\0\u1570\0\304\0\u15a1\0\u15d2\0\u1603\0\u1634"+
187 "\0\u1665\0\u1696\0\u16c7\0\u16f8\0\u1729\0\u175a\0\u178b\0\u17bc"+
188 "\0\u17ed\0\u181e\0\u184f\0\u1880\0\u04c9\0\u18b1\0\u18e2\0\u1913"+
189 "\0\u1944\0\u1975\0\u19a6\0\u19d7\0\u1a08\0\u1a39\0\u04c9\0\u04c9"+
190 "\0\u1a6a\0\u1a9b\0\u1acc\0\u1afd\0\u1b2e\0\u1b5f\0\u1b90\0\u1bc1"+
191 "\0\u1bf2\0\u1c23\0\u1c54\0\u1c85\0\u1cb6\0\u1ce7\0\u1d18\0\u1d49"+
192 "\0\u1d7a\0\u1dab\0\u1ddc\0\u1e0d\0\u1e3e\0\u1e6f\0\u1ea0\0\u1ed1"+
193 "\0\u1f02\0\u1f33\0\u1f64\0\u1f95\0\u1fc6\0\u1ff7\0\304\0\u2028"+
194 "\0\u2059\0\u208a\0\u20bb\0\u20ec\0\u211d\0\u214e\0\u217f\0\u21b0"+
195 "\0\u21e1\0\u2212\0\u2243\0\u2274\0\u22a5\0\u22d6\0\u2307\0\u2338"+
196 "\0\u2369\0\u239a\0\u23cb\0\u23fc\0\u242d\0\u245e\0\u248f\0\u24c0"+
197 "\0\u24f1\0\u2522\0\u2553\0\u2584\0\u25b5\0\u25e6\0\u2617\0\u2648"+
198 "\0\u2679\0\u26aa\0\u26db\0\u270c\0\u273d\0\u276e\0\u279f\0\u27d0"+
199 "\0\u2801\0\u2832\0\u2863\0\u2894\0\u28c5\0\u28f6\0\u2927\0\u2958"+
200 "\0\u2989\0\u29ba\0\u29eb\0\304\0\u2a1c\0\u2a4d\0\u2a7e\0\u2aaf"+
201 "\0\u2ae0\0\u2b11\0\u2b42\0\u2b73\0\u2ba4\0\u2bd5\0\u2c06\0\u2c37"+
202 "\0\u2c68\0\u2c99\0\u2cca\0\u2cfb\0\u2d2c\0\u2d5d\0\u2d8e\0\u2dbf"+
203 "\0\u2df0\0\u2e21\0\u2e52\0\u2e83\0\u2eb4\0\u2ee5\0\u2f16\0\u2f47"+
204 "\0\u2f78\0\u2fa9\0\u2fda\0\u300b\0\u303c\0\u306d\0\u309e\0\u2cca"+
205 "\0\u30cf\0\u3100\0\u3131\0\u3162\0\u3193\0\u31c4\0\u31f5\0\u3226"+
206 "\0\304\0\u3257\0\u3288\0\u32b9\0\u32ea\0\u331b\0\u334c\0\u337d"+
207 "\0\u33ae\0\u33df\0\u3410\0\u3441\0\u3472\0\u34a3\0\u34d4\0\u3505"+
208 "\0\u3536\0\u3567\0\u3598\0\u35c9\0\u35fa\0\u362b\0\u365c\0\u368d"+
209 "\0\u36be\0\u36ef\0\u3720\0\u3751\0\u3782\0\u37b3\0\u37e4\0\u3815"+
210 "\0\u3846\0\u3877\0\u38a8\0\u38d9\0\u390a\0\u393b\0\u396c\0\u399d"+
211 "\0\u39ce\0\u39ff\0\u3a30\0\u3a61\0\u3a92\0\u3ac3\0\u3af4\0\u3b25"+
212 "\0\u3b56\0\u3b87\0\u3bb8\0\u3be9\0\u3c1a\0\u3c4b\0\u3c7c\0\u3cad"+
213 "\0\u3cde\0\u3d0f\0\u3d40\0\u3d71\0\u3da2\0\u3dd3\0\u3e04\0\u3e35"+
214 "\0\u3e66\0\u3e97\0\u3ec8\0\u3ef9\0\u3f2a\0\u3f5b\0\u3f8c\0\u3fbd"+
215 "\0\u3fee\0\u401f\0\u4050\0\u4081\0\u40b2\0\u40e3\0\u4114\0\u4145"+
216 "\0\u4176\0\u41a7\0\u41d8\0\u4209\0\u423a\0\u426b\0\u429c\0\u42cd"+
217 "\0\u42fe\0\u432f\0\u4360\0\u4391\0\u43c2\0\u43f3\0\u4424\0\u4455"+
218 "\0\u4486\0\u44b7\0\u44e8\0\u4519\0\u454a\0\u457b\0\u45ac\0\u45dd"+
219 "\0\u460e\0\u463f\0\u4670\0\u46a1\0\u46d2\0\u4703\0\u4734\0\u4765"+
220 "\0\u4796\0\u47c7\0\u47f8\0\u4829\0\u485a\0\u488b\0\u48bc\0\u48ed"+
221 "\0\u491e\0\u494f\0\u4980\0\u49b1\0\u49e2\0\u4a13\0\u4a44\0\u4a75"+
222 "\0\u4aa6\0\u4ad7\0\u4b08\0\u4b39\0\u4b6a\0\u4b9b\0\u4bcc\0\u4bfd"+
223 "\0\u4c2e\0\u4c5f\0\u4c90\0\u4cc1\0\u4cf2\0\u4d23\0\u4d54\0\u4d85"+
224 "\0\u4db6\0\u4de7\0\u4e18\0\u4e49\0\u4e7a\0\u4eab\0\u4edc\0\u4f0d"+
225 "\0\u4f3e\0\u4f6f\0\u4fa0\0\u4fd1\0\u5002\0\u5033\0\u5064\0\u5095"+
226 "\0\u50c6\0\u50f7\0\u5128\0\u5159\0\u518a\0\u51bb\0\u51ec\0\u521d"+
227 "\0\u524e\0\u527f";
229 private static int [] zzUnpackRowMap() {
230 int [] result = new int[466];
231 int offset = 0;
232 offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
233 return result;
236 private static int zzUnpackRowMap(String packed, int offset, int [] result) {
237 int i = 0; /* index in packed string */
238 int j = offset; /* index in unpacked array */
239 int l = packed.length();
240 while (i < l) {
241 int high = packed.charAt(i++) << 16;
242 result[j++] = high | packed.charAt(i++);
244 return j;
247 /**
248 * The transition table of the DFA
250 private static final int [] ZZ_TRANS = zzUnpackTrans();
252 private static final String ZZ_TRANS_PACKED_0 =
253 "\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
254 "\1\15\1\16\1\17\1\20\1\7\1\21\1\22\3\7"+
255 "\1\23\4\7\1\24\3\7\1\25\1\7\1\26\1\27"+
256 "\1\30\1\7\1\31\1\32\1\33\1\34\1\35\1\36"+
257 "\1\37\1\40\1\41\1\5\1\42\1\43\1\44\1\45"+
258 "\1\46\1\47\1\5\1\6\1\50\1\10\1\11\1\12"+
259 "\1\13\1\14\1\15\1\51\1\52\1\53\1\50\1\54"+
260 "\1\55\1\56\2\50\1\57\4\50\1\60\2\50\1\61"+
261 "\1\62\1\50\1\26\1\27\1\63\1\50\1\31\1\32"+
262 "\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\5"+
263 "\1\42\1\43\1\44\1\45\1\46\1\47\1\5\1\6"+
264 "\1\64\1\10\1\11\1\12\1\65\1\14\1\15\1\66"+
265 "\1\67\1\70\1\64\1\71\1\72\3\64\1\73\4\64"+
266 "\1\74\3\64\1\75\1\64\1\26\1\27\1\5\1\64"+
267 "\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40"+
268 "\1\41\1\5\1\42\1\43\1\44\1\45\1\46\1\47"+
269 "\1\5\1\6\1\76\1\10\1\11\1\12\1\65\1\14"+
270 "\1\15\1\77\1\100\1\101\1\76\1\102\1\103\3\76"+
271 "\1\104\4\76\1\105\3\76\1\106\1\76\1\26\1\27"+
272 "\1\5\1\76\1\31\1\32\1\33\1\34\1\35\1\36"+
273 "\1\37\1\40\1\41\1\5\1\42\1\43\1\44\1\45"+
274 "\1\46\1\47\62\0\1\6\60\0\1\107\4\7\1\110"+
275 "\2\0\24\7\1\0\1\111\1\0\1\7\23\0\1\10"+
276 "\1\112\57\0\1\112\1\113\62\0\1\114\52\0\7\14"+
277 "\1\115\51\14\10\15\1\115\50\15\1\0\1\107\4\7"+
278 "\1\110\2\0\1\7\1\116\3\7\1\117\16\7\1\0"+
279 "\1\111\1\0\1\7\21\0\1\107\4\7\1\110\2\0"+
280 "\1\120\5\7\1\121\15\7\1\0\1\111\1\0\1\7"+
281 "\21\0\1\107\4\7\1\110\2\0\6\7\1\122\6\7"+
282 "\1\123\6\7\1\0\1\111\1\0\1\7\21\0\1\107"+
283 "\4\7\1\110\2\0\3\7\1\124\20\7\1\0\1\111"+
284 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\3\7"+
285 "\1\125\20\7\1\0\1\111\1\0\1\7\21\0\1\107"+
286 "\4\7\1\110\2\0\6\7\1\126\15\7\1\0\1\111"+
287 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\3\7"+
288 "\1\127\20\7\1\0\1\111\1\0\1\7\21\0\1\107"+
289 "\4\7\1\110\2\0\1\130\6\7\1\131\14\7\1\0"+
290 "\1\111\1\0\1\7\63\0\1\132\63\0\1\133\60\0"+
291 "\1\134\33\0\1\135\7\0\1\136\75\0\1\137\13\0"+
292 "\1\140\4\50\1\141\2\0\24\50\3\0\1\50\21\0"+
293 "\1\140\4\50\1\141\2\0\1\50\1\142\3\50\1\143"+
294 "\16\50\3\0\1\50\21\0\1\140\4\50\1\141\2\0"+
295 "\1\144\5\50\1\145\15\50\3\0\1\50\21\0\1\140"+
296 "\4\50\1\141\2\0\6\50\1\146\6\50\1\147\6\50"+
297 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\3\50"+
298 "\1\150\20\50\3\0\1\50\21\0\1\140\4\50\1\141"+
299 "\2\0\3\50\1\151\20\50\3\0\1\50\21\0\1\140"+
300 "\4\50\1\141\2\0\7\50\1\152\14\50\3\0\1\50"+
301 "\21\0\1\140\4\50\1\141\2\0\6\50\1\153\15\50"+
302 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\3\50"+
303 "\1\154\6\50\1\155\11\50\3\0\1\50\21\0\1\140"+
304 "\4\50\1\141\2\0\6\50\1\156\15\50\3\0\1\50"+
305 "\21\0\1\140\4\50\1\141\2\0\1\157\6\50\1\160"+
306 "\14\50\3\0\1\50\21\0\1\140\4\64\1\141\2\0"+
307 "\24\64\3\0\1\64\21\0\1\140\4\64\1\141\2\0"+
308 "\1\64\1\161\3\64\1\162\16\64\3\0\1\64\21\0"+
309 "\1\140\4\64\1\141\2\0\1\163\5\64\1\164\15\64"+
310 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\6\64"+
311 "\1\165\6\64\1\166\6\64\3\0\1\64\21\0\1\140"+
312 "\4\64\1\141\2\0\3\64\1\167\20\64\3\0\1\64"+
313 "\21\0\1\140\4\64\1\141\2\0\3\64\1\170\20\64"+
314 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\6\64"+
315 "\1\171\15\64\3\0\1\64\21\0\1\140\4\64\1\141"+
316 "\2\0\3\64\1\172\20\64\3\0\1\64\21\0\1\140"+
317 "\4\64\1\141\2\0\1\173\6\64\1\174\14\64\3\0"+
318 "\1\64\21\0\1\175\4\76\1\176\2\0\24\76\3\0"+
319 "\1\76\21\0\1\175\4\76\1\176\2\0\1\76\1\177"+
320 "\3\76\1\200\16\76\3\0\1\76\21\0\1\175\4\76"+
321 "\1\176\2\0\1\201\5\76\1\202\15\76\3\0\1\76"+
322 "\21\0\1\175\4\76\1\176\2\0\6\76\1\203\6\76"+
323 "\1\204\6\76\3\0\1\76\21\0\1\175\4\76\1\176"+
324 "\2\0\3\76\1\205\20\76\3\0\1\76\21\0\1\175"+
325 "\4\76\1\176\2\0\3\76\1\206\20\76\3\0\1\76"+
326 "\21\0\1\175\4\76\1\176\2\0\6\76\1\207\15\76"+
327 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\3\76"+
328 "\1\210\20\76\3\0\1\76\21\0\1\175\4\76\1\176"+
329 "\2\0\1\211\6\76\1\212\14\76\3\0\1\76\21\0"+
330 "\1\107\4\0\1\110\27\0\1\111\24\0\1\213\3\0"+
331 "\1\214\2\0\24\213\3\0\1\213\23\0\1\112\56\0"+
332 "\1\107\4\7\1\110\2\0\2\7\1\215\21\7\1\0"+
333 "\1\111\1\0\1\7\21\0\1\107\4\7\1\110\2\0"+
334 "\5\7\1\216\16\7\1\0\1\111\1\0\1\7\21\0"+
335 "\1\107\4\7\1\110\2\0\21\7\1\217\2\7\1\0"+
336 "\1\111\1\0\1\7\21\0\1\107\4\7\1\110\2\0"+
337 "\16\7\1\220\5\7\1\0\1\111\1\0\1\7\21\0"+
338 "\1\107\4\7\1\110\2\0\21\7\1\221\2\7\1\0"+
339 "\1\111\1\0\1\7\21\0\1\107\4\7\1\110\2\0"+
340 "\12\7\1\222\11\7\1\0\1\111\1\0\1\7\21\0"+
341 "\1\107\4\7\1\110\2\0\10\7\1\223\13\7\1\0"+
342 "\1\111\1\0\1\7\21\0\1\107\4\7\1\110\2\0"+
343 "\23\7\1\224\1\0\1\111\1\0\1\7\21\0\1\107"+
344 "\4\7\1\110\2\0\10\7\1\225\13\7\1\0\1\111"+
345 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\4\7"+
346 "\1\226\17\7\1\0\1\111\1\0\1\7\21\0\1\107"+
347 "\4\7\1\110\2\0\7\7\1\227\14\7\1\0\1\111"+
348 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\3\7"+
349 "\1\230\2\7\1\231\15\7\1\0\1\111\1\0\1\7"+
350 "\36\0\1\232\60\0\1\233\43\0\1\140\4\0\1\141"+
351 "\60\0\1\214\53\0\1\140\4\50\1\141\2\0\2\50"+
352 "\1\234\13\50\1\235\5\50\3\0\1\50\21\0\1\140"+
353 "\4\50\1\141\2\0\5\50\1\236\16\50\3\0\1\50"+
354 "\21\0\1\140\4\50\1\141\2\0\21\50\1\237\2\50"+
355 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\16\50"+
356 "\1\240\5\50\3\0\1\50\21\0\1\140\4\50\1\141"+
357 "\2\0\21\50\1\241\2\50\3\0\1\50\21\0\1\140"+
358 "\4\50\1\141\2\0\12\50\1\242\11\50\3\0\1\50"+
359 "\21\0\1\140\4\50\1\141\2\0\10\50\1\243\13\50"+
360 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\23\50"+
361 "\1\244\3\0\1\50\21\0\1\140\4\50\1\141\2\0"+
362 "\10\50\1\245\13\50\3\0\1\50\21\0\1\140\4\50"+
363 "\1\141\2\0\4\50\1\246\17\50\3\0\1\50\21\0"+
364 "\1\140\4\50\1\141\2\0\24\50\3\0\1\247\21\0"+
365 "\1\140\4\50\1\141\2\0\16\50\1\250\5\50\3\0"+
366 "\1\50\21\0\1\140\4\50\1\141\2\0\7\50\1\251"+
367 "\14\50\3\0\1\50\21\0\1\140\4\50\1\141\2\0"+
368 "\3\50\1\252\2\50\1\253\15\50\3\0\1\50\21\0"+
369 "\1\140\4\64\1\141\2\0\2\64\1\254\21\64\3\0"+
370 "\1\64\21\0\1\140\4\64\1\141\2\0\5\64\1\255"+
371 "\16\64\3\0\1\64\21\0\1\140\4\64\1\141\2\0"+
372 "\21\64\1\256\2\64\3\0\1\64\21\0\1\140\4\64"+
373 "\1\141\2\0\16\64\1\257\5\64\3\0\1\64\21\0"+
374 "\1\140\4\64\1\141\2\0\21\64\1\260\2\64\3\0"+
375 "\1\64\21\0\1\140\4\64\1\141\2\0\12\64\1\261"+
376 "\11\64\3\0\1\64\21\0\1\140\4\64\1\141\2\0"+
377 "\10\64\1\262\13\64\3\0\1\64\21\0\1\140\4\64"+
378 "\1\141\2\0\23\64\1\263\3\0\1\64\21\0\1\140"+
379 "\4\64\1\141\2\0\10\64\1\264\13\64\3\0\1\64"+
380 "\21\0\1\140\4\64\1\141\2\0\4\64\1\265\17\64"+
381 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\7\64"+
382 "\1\266\14\64\3\0\1\64\21\0\1\140\4\64\1\141"+
383 "\2\0\3\64\1\267\2\64\1\270\15\64\3\0\1\64"+
384 "\21\0\1\175\4\0\1\176\53\0\1\175\4\76\1\176"+
385 "\2\0\2\76\1\271\21\76\3\0\1\76\21\0\1\175"+
386 "\4\76\1\176\2\0\5\76\1\272\16\76\3\0\1\76"+
387 "\21\0\1\175\4\76\1\176\2\0\21\76\1\273\2\76"+
388 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\16\76"+
389 "\1\274\5\76\3\0\1\76\21\0\1\175\4\76\1\176"+
390 "\2\0\21\76\1\275\2\76\3\0\1\76\21\0\1\175"+
391 "\4\76\1\176\2\0\12\76\1\276\11\76\3\0\1\76"+
392 "\21\0\1\175\4\76\1\176\2\0\10\76\1\277\13\76"+
393 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\23\76"+
394 "\1\300\3\0\1\76\21\0\1\175\4\76\1\176\2\0"+
395 "\10\76\1\301\13\76\3\0\1\76\21\0\1\175\4\76"+
396 "\1\176\2\0\4\76\1\302\17\76\3\0\1\76\21\0"+
397 "\1\175\4\76\1\176\2\0\7\76\1\303\14\76\3\0"+
398 "\1\76\21\0\1\175\4\76\1\176\2\0\3\76\1\304"+
399 "\2\76\1\305\15\76\3\0\1\76\21\0\1\306\4\213"+
400 "\3\0\24\213\1\0\1\307\1\0\1\213\21\0\1\107"+
401 "\4\7\1\110\2\0\3\7\1\310\20\7\1\0\1\111"+
402 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\7\7"+
403 "\1\311\14\7\1\0\1\111\1\0\1\7\21\0\1\107"+
404 "\4\7\1\110\2\0\3\7\1\312\20\7\1\0\1\111"+
405 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\3\7"+
406 "\1\313\20\7\1\0\1\111\1\0\1\7\21\0\1\107"+
407 "\4\7\1\110\2\0\21\7\1\314\2\7\1\0\1\111"+
408 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\10\7"+
409 "\1\315\13\7\1\0\1\111\1\0\1\7\21\0\1\107"+
410 "\4\7\1\110\2\0\11\7\1\316\12\7\1\0\1\111"+
411 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\5\7"+
412 "\1\313\16\7\1\0\1\111\1\0\1\7\21\0\1\107"+
413 "\4\7\1\110\2\0\10\7\1\317\13\7\1\0\1\111"+
414 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\2\7"+
415 "\1\320\21\7\1\0\1\111\1\0\1\7\21\0\1\107"+
416 "\4\7\1\110\2\0\3\7\1\321\20\7\1\0\1\111"+
417 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\2\7"+
418 "\1\322\21\7\1\0\1\111\1\0\1\7\21\0\1\107"+
419 "\4\7\1\110\2\0\2\7\1\323\21\7\1\0\1\111"+
420 "\1\0\1\7\72\0\1\40\60\0\1\42\7\0\1\140"+
421 "\4\50\1\141\2\0\3\50\1\324\20\50\3\0\1\50"+
422 "\21\0\1\140\4\50\1\141\2\0\7\50\1\325\14\50"+
423 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\3\50"+
424 "\1\326\20\50\3\0\1\50\21\0\1\140\4\50\1\141"+
425 "\2\0\3\50\1\327\20\50\3\0\1\50\21\0\1\140"+
426 "\4\50\1\141\2\0\21\50\1\330\2\50\3\0\1\50"+
427 "\21\0\1\140\4\50\1\141\2\0\10\50\1\331\13\50"+
428 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\11\50"+
429 "\1\332\12\50\3\0\1\50\21\0\1\140\4\50\1\141"+
430 "\2\0\5\50\1\327\16\50\3\0\1\50\21\0\1\140"+
431 "\4\50\1\141\2\0\10\50\1\333\13\50\3\0\1\50"+
432 "\21\0\1\140\4\50\1\141\2\0\2\50\1\334\21\50"+
433 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\3\50"+
434 "\1\335\20\50\3\0\1\50\21\0\1\140\4\50\1\141"+
435 "\2\0\2\50\1\336\21\50\3\0\1\50\21\0\1\140"+
436 "\4\50\1\141\2\0\2\50\1\337\21\50\3\0\1\50"+
437 "\21\0\1\140\4\64\1\141\2\0\3\64\1\340\20\64"+
438 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\7\64"+
439 "\1\341\14\64\3\0\1\64\21\0\1\140\4\64\1\141"+
440 "\2\0\3\64\1\342\20\64\3\0\1\64\21\0\1\140"+
441 "\4\64\1\141\2\0\3\64\1\343\20\64\3\0\1\64"+
442 "\21\0\1\140\4\64\1\141\2\0\21\64\1\344\2\64"+
443 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\10\64"+
444 "\1\345\13\64\3\0\1\64\21\0\1\140\4\64\1\141"+
445 "\2\0\11\64\1\346\12\64\3\0\1\64\21\0\1\140"+
446 "\4\64\1\141\2\0\5\64\1\343\16\64\3\0\1\64"+
447 "\21\0\1\140\4\64\1\141\2\0\10\64\1\347\13\64"+
448 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\2\64"+
449 "\1\350\21\64\3\0\1\64\21\0\1\140\4\64\1\141"+
450 "\2\0\3\64\1\351\20\64\3\0\1\64\21\0\1\140"+
451 "\4\64\1\141\2\0\2\64\1\352\21\64\3\0\1\64"+
452 "\21\0\1\140\4\64\1\141\2\0\2\64\1\353\21\64"+
453 "\3\0\1\64\21\0\1\175\4\76\1\176\2\0\3\76"+
454 "\1\354\20\76\3\0\1\76\21\0\1\175\4\76\1\176"+
455 "\2\0\7\76\1\355\14\76\3\0\1\76\21\0\1\175"+
456 "\4\76\1\176\2\0\3\76\1\356\20\76\3\0\1\76"+
457 "\21\0\1\175\4\76\1\176\2\0\3\76\1\357\20\76"+
458 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\21\76"+
459 "\1\360\2\76\3\0\1\76\21\0\1\175\4\76\1\176"+
460 "\2\0\10\76\1\361\13\76\3\0\1\76\21\0\1\175"+
461 "\4\76\1\176\2\0\11\76\1\362\12\76\3\0\1\76"+
462 "\21\0\1\175\4\76\1\176\2\0\5\76\1\357\16\76"+
463 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\10\76"+
464 "\1\363\13\76\3\0\1\76\21\0\1\175\4\76\1\176"+
465 "\2\0\2\76\1\364\21\76\3\0\1\76\21\0\1\175"+
466 "\4\76\1\176\2\0\3\76\1\365\20\76\3\0\1\76"+
467 "\21\0\1\175\4\76\1\176\2\0\2\76\1\366\21\76"+
468 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\2\76"+
469 "\1\367\21\76\3\0\1\76\21\0\1\306\34\0\1\307"+
470 "\23\0\1\107\4\7\1\110\2\0\4\7\1\370\17\7"+
471 "\1\0\1\111\1\0\1\7\21\0\1\107\4\7\1\110"+
472 "\2\0\12\7\1\371\11\7\1\0\1\111\1\0\1\7"+
473 "\21\0\1\107\4\7\1\110\2\0\4\7\1\372\17\7"+
474 "\1\0\1\111\1\0\1\7\21\0\1\373\4\7\1\110"+
475 "\2\0\24\7\1\0\1\374\1\0\1\7\21\0\1\107"+
476 "\4\7\1\110\2\0\3\7\1\375\20\7\1\0\1\111"+
477 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\16\7"+
478 "\1\316\5\7\1\0\1\111\1\0\1\7\21\0\1\376"+
479 "\4\7\1\377\2\0\24\7\1\0\1\111\1\0\1\7"+
480 "\21\0\1\107\4\7\1\110\2\0\6\7\1\u0100\15\7"+
481 "\1\0\1\111\1\0\1\7\21\0\1\107\4\7\1\110"+
482 "\2\0\3\7\1\u0101\20\7\1\0\1\111\1\0\1\7"+
483 "\21\0\1\107\4\7\1\110\2\0\1\7\1\u0102\22\7"+
484 "\1\0\1\111\1\0\1\7\21\0\1\107\4\7\1\110"+
485 "\2\0\3\7\1\u0103\20\7\1\0\1\111\1\0\1\7"+
486 "\21\0\1\107\4\7\1\110\2\0\3\7\1\u0104\20\7"+
487 "\1\0\1\111\1\0\1\7\21\0\1\140\4\50\1\141"+
488 "\2\0\4\50\1\u0105\17\50\3\0\1\50\21\0\1\140"+
489 "\4\50\1\141\2\0\12\50\1\u0106\11\50\3\0\1\50"+
490 "\21\0\1\140\4\50\1\141\2\0\4\50\1\u0107\17\50"+
491 "\3\0\1\50\21\0\1\u0108\4\50\1\141\2\0\24\50"+
492 "\1\0\1\374\1\0\1\50\21\0\1\140\4\50\1\141"+
493 "\2\0\3\50\1\u0109\20\50\3\0\1\50\21\0\1\140"+
494 "\4\50\1\141\2\0\16\50\1\332\5\50\3\0\1\50"+
495 "\21\0\1\u010a\4\50\1\u010b\2\0\24\50\3\0\1\50"+
496 "\21\0\1\140\4\50\1\141\2\0\6\50\1\u010c\15\50"+
497 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\3\50"+
498 "\1\u010d\20\50\3\0\1\50\21\0\1\140\4\50\1\141"+
499 "\2\0\1\50\1\u010e\22\50\3\0\1\50\21\0\1\140"+
500 "\4\50\1\141\2\0\3\50\1\u010f\20\50\3\0\1\50"+
501 "\21\0\1\140\4\50\1\141\2\0\3\50\1\u0110\20\50"+
502 "\3\0\1\50\21\0\1\140\4\64\1\141\2\0\4\64"+
503 "\1\u0111\17\64\3\0\1\64\21\0\1\140\4\64\1\141"+
504 "\2\0\12\64\1\u0112\11\64\3\0\1\64\21\0\1\140"+
505 "\4\64\1\141\2\0\4\64\1\u0113\17\64\3\0\1\64"+
506 "\21\0\1\u0108\4\64\1\141\2\0\24\64\1\0\1\374"+
507 "\1\0\1\64\21\0\1\140\4\64\1\141\2\0\3\64"+
508 "\1\u0114\20\64\3\0\1\64\21\0\1\140\4\64\1\141"+
509 "\2\0\16\64\1\346\5\64\3\0\1\64\21\0\1\u010a"+
510 "\4\64\1\u010b\2\0\24\64\3\0\1\64\21\0\1\140"+
511 "\4\64\1\141\2\0\6\64\1\u0115\15\64\3\0\1\64"+
512 "\21\0\1\140\4\64\1\141\2\0\3\64\1\u0116\20\64"+
513 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\1\64"+
514 "\1\u0117\22\64\3\0\1\64\21\0\1\140\4\64\1\141"+
515 "\2\0\3\64\1\u0118\20\64\3\0\1\64\21\0\1\140"+
516 "\4\64\1\141\2\0\3\64\1\u0119\20\64\3\0\1\64"+
517 "\21\0\1\175\4\76\1\176\2\0\4\76\1\u011a\17\76"+
518 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\12\76"+
519 "\1\u011b\11\76\3\0\1\76\21\0\1\175\4\76\1\176"+
520 "\2\0\4\76\1\u011c\17\76\3\0\1\76\21\0\1\u011d"+
521 "\4\76\1\176\2\0\24\76\1\0\1\374\1\0\1\76"+
522 "\21\0\1\175\4\76\1\176\2\0\3\76\1\u011e\20\76"+
523 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\16\76"+
524 "\1\362\5\76\3\0\1\76\21\0\1\u011f\4\76\1\u0120"+
525 "\2\0\24\76\3\0\1\76\21\0\1\175\4\76\1\176"+
526 "\2\0\6\76\1\u0121\15\76\3\0\1\76\21\0\1\175"+
527 "\4\76\1\176\2\0\3\76\1\u0122\20\76\3\0\1\76"+
528 "\21\0\1\175\4\76\1\176\2\0\1\76\1\u0123\22\76"+
529 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\3\76"+
530 "\1\u0124\20\76\3\0\1\76\21\0\1\175\4\76\1\176"+
531 "\2\0\3\76\1\u0125\20\76\3\0\1\76\21\0\1\107"+
532 "\4\7\1\110\2\0\5\7\1\u0126\16\7\1\0\1\111"+
533 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\13\7"+
534 "\1\u0127\10\7\1\0\1\111\1\0\1\7\21\0\1\107"+
535 "\4\7\1\110\2\0\22\7\1\u0128\1\7\1\0\1\111"+
536 "\1\0\1\7\21\0\1\373\4\0\1\110\27\0\1\374"+
537 "\23\0\1\107\4\7\1\110\2\0\1\7\1\224\22\7"+
538 "\1\0\1\111\1\0\1\7\21\0\1\376\4\0\1\377"+
539 "\27\0\1\111\24\0\1\213\3\0\1\u0129\2\0\24\213"+
540 "\3\0\1\213\21\0\1\107\4\7\1\110\2\0\17\7"+
541 "\1\u012a\4\7\1\0\1\111\1\0\1\7\21\0\1\107"+
542 "\4\7\1\110\2\0\1\7\1\u012b\22\7\1\0\1\111"+
543 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\5\7"+
544 "\1\316\16\7\1\0\1\111\1\0\1\7\21\0\1\107"+
545 "\4\7\1\110\2\0\16\7\1\u012a\5\7\1\0\1\111"+
546 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\4\7"+
547 "\1\u012c\17\7\1\0\1\111\1\0\1\7\21\0\1\140"+
548 "\4\50\1\141\2\0\5\50\1\u012d\16\50\3\0\1\50"+
549 "\21\0\1\140\4\50\1\141\2\0\13\50\1\u012e\10\50"+
550 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\22\50"+
551 "\1\u012f\1\50\3\0\1\50\21\0\1\u0108\4\0\1\141"+
552 "\27\0\1\374\23\0\1\140\4\50\1\141\2\0\1\50"+
553 "\1\244\22\50\3\0\1\50\21\0\1\u010a\4\0\1\u010b"+
554 "\60\0\1\u0129\53\0\1\140\4\50\1\141\2\0\17\50"+
555 "\1\u0130\4\50\3\0\1\50\21\0\1\140\4\50\1\141"+
556 "\2\0\1\50\1\u0131\22\50\3\0\1\50\21\0\1\140"+
557 "\4\50\1\141\2\0\5\50\1\332\16\50\3\0\1\50"+
558 "\21\0\1\140\4\50\1\141\2\0\16\50\1\u0130\5\50"+
559 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\4\50"+
560 "\1\u0132\17\50\3\0\1\50\21\0\1\140\4\64\1\141"+
561 "\2\0\5\64\1\u0133\16\64\3\0\1\64\21\0\1\140"+
562 "\4\64\1\141\2\0\13\64\1\u0134\10\64\3\0\1\64"+
563 "\21\0\1\140\4\64\1\141\2\0\22\64\1\u0135\1\64"+
564 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\1\64"+
565 "\1\263\22\64\3\0\1\64\21\0\1\140\4\64\1\141"+
566 "\2\0\17\64\1\u0136\4\64\3\0\1\64\21\0\1\140"+
567 "\4\64\1\141\2\0\1\64\1\u0137\22\64\3\0\1\64"+
568 "\21\0\1\140\4\64\1\141\2\0\5\64\1\346\16\64"+
569 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\16\64"+
570 "\1\u0136\5\64\3\0\1\64\21\0\1\140\4\64\1\141"+
571 "\2\0\4\64\1\u0138\17\64\3\0\1\64\21\0\1\175"+
572 "\4\76\1\176\2\0\5\76\1\u0139\16\76\3\0\1\76"+
573 "\21\0\1\175\4\76\1\176\2\0\13\76\1\u013a\10\76"+
574 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\22\76"+
575 "\1\u013b\1\76\3\0\1\76\21\0\1\u011d\4\0\1\176"+
576 "\27\0\1\374\23\0\1\175\4\76\1\176\2\0\1\76"+
577 "\1\300\22\76\3\0\1\76\21\0\1\u011f\4\0\1\u0120"+
578 "\53\0\1\175\4\76\1\176\2\0\17\76\1\u013c\4\76"+
579 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\1\76"+
580 "\1\u013d\22\76\3\0\1\76\21\0\1\175\4\76\1\176"+
581 "\2\0\5\76\1\362\16\76\3\0\1\76\21\0\1\175"+
582 "\4\76\1\176\2\0\16\76\1\u013c\5\76\3\0\1\76"+
583 "\21\0\1\175\4\76\1\176\2\0\4\76\1\u013e\17\76"+
584 "\3\0\1\76\21\0\1\107\4\7\1\110\2\0\6\7"+
585 "\1\u013f\15\7\1\0\1\111\1\0\1\7\21\0\1\107"+
586 "\4\7\1\110\2\0\14\7\1\u0140\7\7\1\0\1\111"+
587 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\1\u0141"+
588 "\23\7\1\0\1\111\1\0\1\7\21\0\1\107\4\7"+
589 "\1\110\2\0\12\7\1\u0142\11\7\1\0\1\111\1\0"+
590 "\1\7\21\0\1\107\4\7\1\110\2\0\16\7\1\u0143"+
591 "\5\7\1\0\1\111\1\0\1\7\21\0\1\107\4\7"+
592 "\1\110\2\0\4\7\1\u0144\17\7\1\0\1\111\1\0"+
593 "\1\7\21\0\1\140\4\50\1\141\2\0\6\50\1\u0145"+
594 "\15\50\3\0\1\50\21\0\1\140\4\50\1\141\2\0"+
595 "\14\50\1\u0146\7\50\3\0\1\50\21\0\1\140\4\50"+
596 "\1\141\2\0\1\u0147\23\50\3\0\1\50\21\0\1\140"+
597 "\4\50\1\141\2\0\12\50\1\u0148\11\50\3\0\1\50"+
598 "\21\0\1\140\4\50\1\141\2\0\16\50\1\u0149\5\50"+
599 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\4\50"+
600 "\1\u014a\17\50\3\0\1\50\21\0\1\140\4\64\1\141"+
601 "\2\0\6\64\1\u014b\15\64\3\0\1\64\21\0\1\140"+
602 "\4\64\1\141\2\0\14\64\1\u014c\7\64\3\0\1\64"+
603 "\21\0\1\140\4\64\1\141\2\0\1\u014d\23\64\3\0"+
604 "\1\64\21\0\1\140\4\64\1\141\2\0\12\64\1\u014e"+
605 "\11\64\3\0\1\64\21\0\1\140\4\64\1\141\2\0"+
606 "\16\64\1\u014f\5\64\3\0\1\64\21\0\1\140\4\64"+
607 "\1\141\2\0\4\64\1\u0150\17\64\3\0\1\64\21\0"+
608 "\1\175\4\76\1\176\2\0\6\76\1\u0151\15\76\3\0"+
609 "\1\76\21\0\1\175\4\76\1\176\2\0\14\76\1\u0152"+
610 "\7\76\3\0\1\76\21\0\1\175\4\76\1\176\2\0"+
611 "\1\u0153\23\76\3\0\1\76\21\0\1\175\4\76\1\176"+
612 "\2\0\12\76\1\u0154\11\76\3\0\1\76\21\0\1\175"+
613 "\4\76\1\176\2\0\16\76\1\u0155\5\76\3\0\1\76"+
614 "\21\0\1\175\4\76\1\176\2\0\4\76\1\u0156\17\76"+
615 "\3\0\1\76\21\0\1\107\4\7\1\110\2\0\7\7"+
616 "\1\u0157\14\7\1\0\1\111\1\0\1\7\21\0\1\107"+
617 "\4\7\1\110\2\0\5\7\1\u0158\16\7\1\0\1\111"+
618 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\2\7"+
619 "\1\u0158\21\7\1\0\1\111\1\0\1\7\21\0\1\107"+
620 "\4\7\1\110\2\0\1\7\1\u0159\22\7\1\0\1\111"+
621 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\1\u015a"+
622 "\23\7\1\0\1\111\1\0\1\7\21\0\1\107\4\7"+
623 "\1\110\2\0\12\7\1\u015b\11\7\1\0\1\111\1\0"+
624 "\1\7\21\0\1\140\4\50\1\141\2\0\7\50\1\u015c"+
625 "\14\50\3\0\1\50\21\0\1\140\4\50\1\141\2\0"+
626 "\5\50\1\u015d\16\50\3\0\1\50\21\0\1\140\4\50"+
627 "\1\141\2\0\2\50\1\u015d\21\50\3\0\1\50\21\0"+
628 "\1\140\4\50\1\141\2\0\1\50\1\u015e\22\50\3\0"+
629 "\1\50\21\0\1\140\4\50\1\141\2\0\1\u015f\23\50"+
630 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\12\50"+
631 "\1\u0160\11\50\3\0\1\50\21\0\1\140\4\64\1\141"+
632 "\2\0\7\64\1\u0161\14\64\3\0\1\64\21\0\1\140"+
633 "\4\64\1\141\2\0\5\64\1\u0162\16\64\3\0\1\64"+
634 "\21\0\1\140\4\64\1\141\2\0\2\64\1\u0162\21\64"+
635 "\3\0\1\64\21\0\1\140\4\64\1\141\2\0\1\64"+
636 "\1\u0163\22\64\3\0\1\64\21\0\1\140\4\64\1\141"+
637 "\2\0\1\u0164\23\64\3\0\1\64\21\0\1\140\4\64"+
638 "\1\141\2\0\12\64\1\u0165\11\64\3\0\1\64\21\0"+
639 "\1\175\4\76\1\176\2\0\7\76\1\u0166\14\76\3\0"+
640 "\1\76\21\0\1\175\4\76\1\176\2\0\5\76\1\u0167"+
641 "\16\76\3\0\1\76\21\0\1\175\4\76\1\176\2\0"+
642 "\2\76\1\u0167\21\76\3\0\1\76\21\0\1\175\4\76"+
643 "\1\176\2\0\1\76\1\u0168\22\76\3\0\1\76\21\0"+
644 "\1\175\4\76\1\176\2\0\1\u0169\23\76\3\0\1\76"+
645 "\21\0\1\175\4\76\1\176\2\0\12\76\1\u016a\11\76"+
646 "\3\0\1\76\21\0\1\376\3\7\1\u016b\1\377\2\0"+
647 "\24\7\1\0\1\111\1\0\1\7\21\0\1\107\4\7"+
648 "\1\110\2\0\3\7\1\316\20\7\1\0\1\111\1\0"+
649 "\1\7\21\0\1\107\4\7\1\110\2\0\20\7\1\u016c"+
650 "\3\7\1\0\1\111\1\0\1\7\21\0\1\107\4\7"+
651 "\1\110\2\0\1\7\1\u016d\22\7\1\0\1\111\1\0"+
652 "\1\7\21\0\1\107\4\7\1\110\2\0\1\7\1\u016e"+
653 "\22\7\1\0\1\111\1\0\1\7\21\0\1\u010a\3\50"+
654 "\1\u016f\1\u010b\2\0\24\50\3\0\1\50\21\0\1\140"+
655 "\4\50\1\141\2\0\3\50\1\332\20\50\3\0\1\50"+
656 "\21\0\1\140\4\50\1\141\2\0\20\50\1\u0170\3\50"+
657 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\1\50"+
658 "\1\u0171\22\50\3\0\1\50\21\0\1\140\4\50\1\141"+
659 "\2\0\1\50\1\u0172\22\50\3\0\1\50\21\0\1\u010a"+
660 "\3\64\1\u0173\1\u010b\2\0\24\64\3\0\1\64\21\0"+
661 "\1\140\4\64\1\141\2\0\3\64\1\346\20\64\3\0"+
662 "\1\64\21\0\1\140\4\64\1\141\2\0\20\64\1\u0174"+
663 "\3\64\3\0\1\64\21\0\1\140\4\64\1\141\2\0"+
664 "\1\64\1\u0175\22\64\3\0\1\64\21\0\1\140\4\64"+
665 "\1\141\2\0\1\64\1\u0176\22\64\3\0\1\64\21\0"+
666 "\1\u011f\3\76\1\u0177\1\u0120\2\0\24\76\3\0\1\76"+
667 "\21\0\1\175\4\76\1\176\2\0\3\76\1\362\20\76"+
668 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\20\76"+
669 "\1\u0178\3\76\3\0\1\76\21\0\1\175\4\76\1\176"+
670 "\2\0\1\76\1\u0179\22\76\3\0\1\76\21\0\1\175"+
671 "\4\76\1\176\2\0\1\76\1\u017a\22\76\3\0\1\76"+
672 "\21\0\1\107\4\7\1\110\2\0\6\7\1\u017b\15\7"+
673 "\1\0\1\111\1\0\1\7\21\0\1\376\3\7\1\u017c"+
674 "\1\377\2\0\24\7\1\0\1\111\1\0\1\7\21\0"+
675 "\1\107\4\7\1\110\2\0\5\7\1\u0157\16\7\1\0"+
676 "\1\111\1\0\1\7\21\0\1\107\4\7\1\110\2\0"+
677 "\20\7\1\u017d\3\7\1\0\1\111\1\0\1\7\21\0"+
678 "\1\140\4\50\1\141\2\0\6\50\1\u017e\15\50\3\0"+
679 "\1\50\21\0\1\u010a\3\50\1\u017f\1\u010b\2\0\24\50"+
680 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\5\50"+
681 "\1\u015c\16\50\3\0\1\50\21\0\1\140\4\50\1\141"+
682 "\2\0\20\50\1\u0180\3\50\3\0\1\50\21\0\1\140"+
683 "\4\64\1\141\2\0\6\64\1\u0181\15\64\3\0\1\64"+
684 "\21\0\1\u010a\3\64\1\u0182\1\u010b\2\0\24\64\3\0"+
685 "\1\64\21\0\1\140\4\64\1\141\2\0\5\64\1\u0161"+
686 "\16\64\3\0\1\64\21\0\1\140\4\64\1\141\2\0"+
687 "\20\64\1\u0183\3\64\3\0\1\64\21\0\1\175\4\76"+
688 "\1\176\2\0\6\76\1\u0184\15\76\3\0\1\76\21\0"+
689 "\1\u011f\3\76\1\u0185\1\u0120\2\0\24\76\3\0\1\76"+
690 "\21\0\1\175\4\76\1\176\2\0\5\76\1\u0166\16\76"+
691 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\20\76"+
692 "\1\u0186\3\76\3\0\1\76\21\0\1\107\4\7\1\110"+
693 "\2\0\7\7\1\u0187\14\7\1\0\1\111\1\0\1\7"+
694 "\21\0\1\107\4\7\1\110\2\0\4\7\1\u0188\17\7"+
695 "\1\0\1\111\1\0\1\7\21\0\1\107\3\7\1\u0189"+
696 "\1\110\2\0\24\7\1\0\1\111\1\0\1\7\21\0"+
697 "\1\140\4\50\1\141\2\0\7\50\1\u018a\14\50\3\0"+
698 "\1\50\21\0\1\140\4\50\1\141\2\0\4\50\1\u018b"+
699 "\17\50\3\0\1\50\21\0\1\140\3\50\1\u018c\1\141"+
700 "\2\0\24\50\3\0\1\50\21\0\1\140\4\64\1\141"+
701 "\2\0\7\64\1\u018d\14\64\3\0\1\64\21\0\1\140"+
702 "\4\64\1\141\2\0\4\64\1\u018e\17\64\3\0\1\64"+
703 "\21\0\1\140\3\64\1\u018f\1\141\2\0\24\64\3\0"+
704 "\1\64\21\0\1\175\4\76\1\176\2\0\7\76\1\u0190"+
705 "\14\76\3\0\1\76\21\0\1\175\4\76\1\176\2\0"+
706 "\4\76\1\u0191\17\76\3\0\1\76\21\0\1\175\3\76"+
707 "\1\u0192\1\176\2\0\24\76\3\0\1\76\21\0\1\107"+
708 "\3\7\1\u0193\1\110\2\0\24\7\1\0\1\111\1\0"+
709 "\1\7\21\0\1\107\4\7\1\110\2\0\12\7\1\u0194"+
710 "\11\7\1\0\1\111\1\0\1\7\21\0\1\107\4\7"+
711 "\1\110\2\0\12\7\1\u0195\11\7\1\0\1\111\1\0"+
712 "\1\7\21\0\1\140\3\50\1\u0196\1\141\2\0\24\50"+
713 "\3\0\1\50\21\0\1\140\4\50\1\141\2\0\12\50"+
714 "\1\u0197\11\50\3\0\1\50\21\0\1\140\4\50\1\141"+
715 "\2\0\12\50\1\u0198\11\50\3\0\1\50\21\0\1\140"+
716 "\3\64\1\u0199\1\141\2\0\24\64\3\0\1\64\21\0"+
717 "\1\140\4\64\1\141\2\0\12\64\1\u019a\11\64\3\0"+
718 "\1\64\21\0\1\140\4\64\1\141\2\0\12\64\1\u019b"+
719 "\11\64\3\0\1\64\21\0\1\175\3\76\1\u019c\1\176"+
720 "\2\0\24\76\3\0\1\76\21\0\1\175\4\76\1\176"+
721 "\2\0\12\76\1\u019d\11\76\3\0\1\76\21\0\1\175"+
722 "\4\76\1\176\2\0\12\76\1\u019e\11\76\3\0\1\76"+
723 "\21\0\1\107\4\7\1\110\2\0\4\7\1\21\17\7"+
724 "\1\0\1\111\1\0\1\7\21\0\1\107\4\7\1\110"+
725 "\2\0\13\7\1\u019f\10\7\1\0\1\111\1\0\1\7"+
726 "\21\0\1\107\4\7\1\110\2\0\1\7\1\u01a0\22\7"+
727 "\1\0\1\111\1\0\1\7\21\0\1\140\4\50\1\141"+
728 "\2\0\4\50\1\54\17\50\3\0\1\50\21\0\1\140"+
729 "\4\50\1\141\2\0\13\50\1\u01a1\10\50\3\0\1\50"+
730 "\21\0\1\140\4\50\1\141\2\0\1\50\1\u01a2\22\50"+
731 "\3\0\1\50\21\0\1\140\4\64\1\141\2\0\4\64"+
732 "\1\71\17\64\3\0\1\64\21\0\1\140\4\64\1\141"+
733 "\2\0\13\64\1\u01a3\10\64\3\0\1\64\21\0\1\140"+
734 "\4\64\1\141\2\0\1\64\1\u01a4\22\64\3\0\1\64"+
735 "\21\0\1\175\4\76\1\176\2\0\4\76\1\102\17\76"+
736 "\3\0\1\76\21\0\1\175\4\76\1\176\2\0\13\76"+
737 "\1\u01a5\10\76\3\0\1\76\21\0\1\175\4\76\1\176"+
738 "\2\0\1\76\1\u01a6\22\76\3\0\1\76\21\0\1\107"+
739 "\4\7\1\110\2\0\10\7\1\u01a7\13\7\1\0\1\111"+
740 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\4\7"+
741 "\1\u01a8\17\7\1\0\1\111\1\0\1\7\21\0\1\140"+
742 "\4\50\1\141\2\0\10\50\1\u01a9\13\50\3\0\1\50"+
743 "\21\0\1\140\4\50\1\141\2\0\4\50\1\u01aa\17\50"+
744 "\3\0\1\50\21\0\1\140\4\64\1\141\2\0\10\64"+
745 "\1\u01ab\13\64\3\0\1\64\21\0\1\140\4\64\1\141"+
746 "\2\0\4\64\1\u01ac\17\64\3\0\1\64\21\0\1\175"+
747 "\4\76\1\176\2\0\10\76\1\u01ad\13\76\3\0\1\76"+
748 "\21\0\1\175\4\76\1\176\2\0\4\76\1\u01ae\17\76"+
749 "\3\0\1\76\21\0\1\107\4\7\1\110\2\0\12\7"+
750 "\1\u01af\11\7\1\0\1\111\1\0\1\7\21\0\1\107"+
751 "\4\7\1\110\2\0\5\7\1\u01b0\16\7\1\0\1\111"+
752 "\1\0\1\7\21\0\1\140\4\50\1\141\2\0\12\50"+
753 "\1\u01b1\11\50\3\0\1\50\21\0\1\140\4\50\1\141"+
754 "\2\0\5\50\1\u01b2\16\50\3\0\1\50\21\0\1\140"+
755 "\4\64\1\141\2\0\12\64\1\u01b3\11\64\3\0\1\64"+
756 "\21\0\1\140\4\64\1\141\2\0\5\64\1\u01b4\16\64"+
757 "\3\0\1\64\21\0\1\175\4\76\1\176\2\0\12\76"+
758 "\1\u01b5\11\76\3\0\1\76\21\0\1\175\4\76\1\176"+
759 "\2\0\5\76\1\u01b6\16\76\3\0\1\76\21\0\1\107"+
760 "\4\7\1\110\2\0\1\7\1\u01b7\22\7\1\0\1\111"+
761 "\1\0\1\7\21\0\1\107\4\7\1\110\2\0\7\7"+
762 "\1\u01b8\14\7\1\0\1\111\1\0\1\7\21\0\1\140"+
763 "\4\50\1\141\2\0\1\50\1\u01b9\22\50\3\0\1\50"+
764 "\21\0\1\140\4\50\1\141\2\0\7\50\1\u01ba\14\50"+
765 "\3\0\1\50\21\0\1\140\4\64\1\141\2\0\1\64"+
766 "\1\u01bb\22\64\3\0\1\64\21\0\1\140\4\64\1\141"+
767 "\2\0\7\64\1\u01bc\14\64\3\0\1\64\21\0\1\175"+
768 "\4\76\1\176\2\0\1\76\1\u01bd\22\76\3\0\1\76"+
769 "\21\0\1\175\4\76\1\176\2\0\7\76\1\u01be\14\76"+
770 "\3\0\1\76\21\0\1\107\4\7\1\110\2\0\20\7"+
771 "\1\316\3\7\1\0\1\111\1\0\1\7\21\0\1\107"+
772 "\4\7\1\110\2\0\14\7\1\u01bf\7\7\1\0\1\111"+
773 "\1\0\1\7\21\0\1\140\4\50\1\141\2\0\20\50"+
774 "\1\332\3\50\3\0\1\50\21\0\1\140\4\50\1\141"+
775 "\2\0\14\50\1\u01c0\7\50\3\0\1\50\21\0\1\140"+
776 "\4\64\1\141\2\0\20\64\1\346\3\64\3\0\1\64"+
777 "\21\0\1\140\4\64\1\141\2\0\14\64\1\u01c1\7\64"+
778 "\3\0\1\64\21\0\1\175\4\76\1\176\2\0\20\76"+
779 "\1\362\3\76\3\0\1\76\21\0\1\175\4\76\1\176"+
780 "\2\0\14\76\1\u01c2\7\76\3\0\1\76\21\0\1\107"+
781 "\4\7\1\110\2\0\2\7\1\u01c3\21\7\1\0\1\111"+
782 "\1\0\1\7\21\0\1\140\4\50\1\141\2\0\2\50"+
783 "\1\u01c4\21\50\3\0\1\50\21\0\1\140\4\64\1\141"+
784 "\2\0\2\64\1\u01c5\21\64\3\0\1\64\21\0\1\175"+
785 "\4\76\1\176\2\0\2\76\1\u01c6\21\76\3\0\1\76"+
786 "\21\0\1\107\4\7\1\110\2\0\5\7\1\u01c7\16\7"+
787 "\1\0\1\111\1\0\1\7\21\0\1\140\4\50\1\141"+
788 "\2\0\5\50\1\u01c8\16\50\3\0\1\50\21\0\1\140"+
789 "\4\64\1\141\2\0\5\64\1\u01c9\16\64\3\0\1\64"+
790 "\21\0\1\175\4\76\1\176\2\0\5\76\1\u01ca\16\76"+
791 "\3\0\1\76\21\0\1\107\4\7\1\110\2\0\12\7"+
792 "\1\u01cb\11\7\1\0\1\111\1\0\1\7\21\0\1\140"+
793 "\4\50\1\141\2\0\12\50\1\u01cc\11\50\3\0\1\50"+
794 "\21\0\1\140\4\64\1\141\2\0\12\64\1\u01cd\11\64"+
795 "\3\0\1\64\21\0\1\175\4\76\1\176\2\0\12\76"+
796 "\1\u01ce\11\76\3\0\1\76\21\0\1\107\4\7\1\110"+
797 "\2\0\6\7\1\u01cf\15\7\1\0\1\111\1\0\1\7"+
798 "\21\0\1\140\4\50\1\141\2\0\6\50\1\u01d0\15\50"+
799 "\3\0\1\50\21\0\1\140\4\64\1\141\2\0\6\64"+
800 "\1\u01d1\15\64\3\0\1\64\21\0\1\175\4\76\1\176"+
801 "\2\0\6\76\1\u01d2\15\76\3\0\1\76\21\0\1\107"+
802 "\4\7\1\110\2\0\1\7\1\313\22\7\1\0\1\111"+
803 "\1\0\1\7\21\0\1\140\4\50\1\141\2\0\1\50"+
804 "\1\327\22\50\3\0\1\50\21\0\1\140\4\64\1\141"+
805 "\2\0\1\64\1\343\22\64\3\0\1\64\21\0\1\175"+
806 "\4\76\1\176\2\0\1\76\1\357\22\76\3\0\1\76"+
807 "\20\0";
809 private static int [] zzUnpackTrans() {
810 int [] result = new int[21168];
811 int offset = 0;
812 offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
813 return result;
816 private static int zzUnpackTrans(String packed, int offset, int [] result) {
817 int i = 0; /* index in packed string */
818 int j = offset; /* index in unpacked array */
819 int l = packed.length();
820 while (i < l) {
821 int count = packed.charAt(i++);
822 int value = packed.charAt(i++);
823 value--;
824 do result[j++] = value; while (--count > 0);
826 return j;
830 /* error codes */
831 private static final int ZZ_UNKNOWN_ERROR = 0;
832 private static final int ZZ_NO_MATCH = 1;
833 private static final int ZZ_PUSHBACK_2BIG = 2;
834 private static final char[] EMPTY_BUFFER = new char[0];
835 private static final int YYEOF = -1;
836 private static java.io.Reader zzReader = null; // Fake
838 /* error messages for the codes above */
839 private static final String ZZ_ERROR_MSG[] = {
840 "Unkown internal scanner error",
841 "Error: could not match input",
842 "Error: pushback value was too large"
846 * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
848 private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
850 private static final String ZZ_ATTRIBUTE_PACKED_0 =
851 "\4\0\1\11\1\1\1\3\2\1\1\11\3\1\10\3"+
852 "\5\11\1\1\3\11\4\1\5\11\13\3\1\11\1\3"+
853 "\1\1\21\3\2\0\1\15\1\1\3\11\14\3\3\11"+
854 "\2\0\1\11\2\0\33\3\1\0\1\5\14\3\1\0"+
855 "\1\15\15\3\2\0\52\3\1\0\1\15\63\3\1\0"+
856 "\1\15\1\3\2\0\10\3\1\0\1\3\2\0\21\3"+
857 "\1\0\1\3\1\0\1\5\10\3\1\15\251\3";
859 private static int [] zzUnpackAttribute() {
860 int [] result = new int[466];
861 int offset = 0;
862 offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
863 return result;
866 private static int zzUnpackAttribute(String packed, int offset, int [] result) {
867 int i = 0; /* index in packed string */
868 int j = offset; /* index in unpacked array */
869 int l = packed.length();
870 while (i < l) {
871 int count = packed.charAt(i++);
872 int value = packed.charAt(i++);
873 do result[j++] = value; while (--count > 0);
875 return j;
878 /** the current state of the DFA */
879 private int zzState;
881 /** the current lexical state */
882 private int zzLexicalState = YYINITIAL;
884 /** this buffer contains the current text to be matched and is
885 the source of the yytext() string */
886 private CharSequence zzBuffer = "";
888 /** this buffer may contains the current text array to be matched when it is cheap to acquire it */
889 private char[] zzBufferArray;
891 /** the textposition at the last accepting state */
892 private int zzMarkedPos;
894 /** the textposition at the last state to be included in yytext */
895 private int zzPushbackPos;
897 /** the current text position in the buffer */
898 private int zzCurrentPos;
900 /** startRead marks the beginning of the yytext() string in the buffer */
901 private int zzStartRead;
903 /** endRead marks the last character in the buffer, that has been read
904 from input */
905 private int zzEndRead;
908 * zzAtBOL == true <=> the scanner is currently at the beginning of a line
910 private boolean zzAtBOL = true;
912 /** zzAtEOF == true <=> the scanner is at the EOF */
913 private boolean zzAtEOF;
915 /** denotes if the user-EOF-code has already been executed */
916 private boolean zzEOFDone;
919 _XPathLexer(java.io.Reader in) {
920 this.zzReader = in;
924 * Creates a new scanner.
925 * There is also java.io.Reader version of this constructor.
927 * @param in the java.io.Inputstream to read input from.
929 _XPathLexer(java.io.InputStream in) {
930 this(new java.io.InputStreamReader(in));
933 /**
934 * Unpacks the compressed character translation table.
936 * @param packed the packed character translation table
937 * @return the unpacked character translation table
939 private static char [] zzUnpackCMap(String packed) {
940 char [] map = new char[0x10000];
941 int i = 0; /* index in packed string */
942 int j = 0; /* index in unpacked array */
943 while (i < 1298) {
944 int count = packed.charAt(i++);
945 char value = packed.charAt(i++);
946 do map[j++] = value; while (--count > 0);
948 return map;
951 public final int getTokenStart(){
952 return zzStartRead;
955 public final int getTokenEnd(){
956 return getTokenStart() + yylength();
959 public void reset(CharSequence buffer, int start, int end,int initialState){
960 zzBuffer = buffer;
961 zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer);
962 zzCurrentPos = zzMarkedPos = zzStartRead = start;
963 zzPushbackPos = 0;
964 zzAtEOF = false;
965 zzAtBOL = true;
966 zzEndRead = end;
967 yybegin(initialState);
970 // For Demetra compatibility
971 public void reset(CharSequence buffer, int initialState){
972 reset(buffer, 0, buffer.length(), initialState);
976 * Refills the input buffer.
978 * @return <code>false</code>, iff there was new input.
980 * @exception java.io.IOException if any I/O-Error occurs
982 private boolean zzRefill() throws java.io.IOException {
983 return true;
988 * Returns the current lexical state.
990 public final int yystate() {
991 return zzLexicalState;
996 * Enters a new lexical state
998 * @param newState the new lexical state
1000 public final void yybegin(int newState) {
1001 zzLexicalState = newState;
1006 * Returns the text matched by the current regular expression.
1008 public final CharSequence yytext() {
1009 return zzBuffer.subSequence(zzStartRead, zzMarkedPos);
1014 * Returns the character at position <tt>pos</tt> from the
1015 * matched text.
1017 * It is equivalent to yytext().charAt(pos), but faster
1019 * @param pos the position of the character to fetch.
1020 * A value from 0 to yylength()-1.
1022 * @return the character at position pos
1024 public final char yycharat(int pos) {
1025 return zzBufferArray != null ? zzBufferArray[zzStartRead+pos]:zzBuffer.charAt(zzStartRead+pos);
1030 * Returns the length of the matched text region.
1032 public final int yylength() {
1033 return zzMarkedPos-zzStartRead;
1038 * Reports an error that occured while scanning.
1040 * In a wellformed scanner (no or only correct usage of
1041 * yypushback(int) and a match-all fallback rule) this method
1042 * will only be called with things that "Can't Possibly Happen".
1043 * If this method is called, something is seriously wrong
1044 * (e.g. a JFlex bug producing a faulty scanner etc.).
1046 * Usual syntax/scanner level error handling should be done
1047 * in error fallback rules.
1049 * @param errorCode the code of the errormessage to display
1051 private void zzScanError(int errorCode) {
1052 String message;
1053 try {
1054 message = ZZ_ERROR_MSG[errorCode];
1056 catch (ArrayIndexOutOfBoundsException e) {
1057 message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
1060 throw new Error(message);
1065 * Pushes the specified amount of characters back into the input stream.
1067 * They will be read again by then next call of the scanning method
1069 * @param number the number of characters to be read again.
1070 * This number must not be greater than yylength()!
1072 public void yypushback(int number) {
1073 if ( number > yylength() )
1074 zzScanError(ZZ_PUSHBACK_2BIG);
1076 zzMarkedPos -= number;
1081 * Contains user EOF-code, which will be executed exactly once,
1082 * when the end of file is reached
1084 private void zzDoEOF() {
1085 if (!zzEOFDone) {
1086 zzEOFDone = true;
1093 * Resumes scanning until the next regular expression is matched,
1094 * the end of input is encountered or an I/O-Error occurs.
1096 * @return the next token
1097 * @exception java.io.IOException if any I/O-Error occurs
1099 public IElementType advance() throws java.io.IOException {
1100 int zzInput;
1101 int zzAction;
1103 // cached fields:
1104 int zzCurrentPosL;
1105 int zzMarkedPosL;
1106 int zzEndReadL = zzEndRead;
1107 CharSequence zzBufferL = zzBuffer;
1108 char[] zzBufferArrayL = zzBufferArray;
1109 char [] zzCMapL = ZZ_CMAP;
1111 int [] zzTransL = ZZ_TRANS;
1112 int [] zzRowMapL = ZZ_ROWMAP;
1113 int [] zzAttrL = ZZ_ATTRIBUTE;
1114 int zzPushbackPosL = zzPushbackPos = -1;
1115 boolean zzWasPushback;
1117 while (true) {
1118 zzMarkedPosL = zzMarkedPos;
1120 zzAction = -1;
1122 zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
1124 zzState = zzLexicalState;
1126 zzWasPushback = false;
1128 zzForAction: {
1129 while (true) {
1131 if (zzCurrentPosL < zzEndReadL)
1132 zzInput = zzBufferL.charAt(zzCurrentPosL++);
1133 else if (zzAtEOF) {
1134 zzInput = YYEOF;
1135 break zzForAction;
1137 else {
1138 // store back cached positions
1139 zzCurrentPos = zzCurrentPosL;
1140 zzMarkedPos = zzMarkedPosL;
1141 zzPushbackPos = zzPushbackPosL;
1142 boolean eof = zzRefill();
1143 // get translated positions and possibly new buffer
1144 zzCurrentPosL = zzCurrentPos;
1145 zzMarkedPosL = zzMarkedPos;
1146 zzBufferL = zzBuffer;
1147 zzEndReadL = zzEndRead;
1148 zzPushbackPosL = zzPushbackPos;
1149 if (eof) {
1150 zzInput = YYEOF;
1151 break zzForAction;
1153 else {
1154 zzInput = zzBufferL.charAt(zzCurrentPosL++);
1157 int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
1158 if (zzNext == -1) break zzForAction;
1159 zzState = zzNext;
1161 int zzAttributes = zzAttrL[zzState];
1162 if ( (zzAttributes & 2) == 2 )
1163 zzPushbackPosL = zzCurrentPosL;
1165 if ( (zzAttributes & 1) == 1 ) {
1166 zzWasPushback = (zzAttributes & 4) == 4;
1167 zzAction = zzState;
1168 zzMarkedPosL = zzCurrentPosL;
1169 if ( (zzAttributes & 8) == 8 ) break zzForAction;
1175 // store back cached position
1176 zzMarkedPos = zzMarkedPosL;
1177 if (zzWasPushback)
1178 zzMarkedPos = zzPushbackPosL;
1180 switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
1181 case 38:
1182 { yybegin(YYINITIAL); return XPathTokenTypes.AND;
1184 case 44: break;
1185 case 4:
1186 { yybegin(S1); return XPathTokenTypes.NUMBER;
1188 case 45: break;
1189 case 6:
1190 { yybegin(YYINITIAL); return XPathTokenTypes.MINUS;
1192 case 46: break;
1193 case 21:
1194 { yybegin(YYINITIAL); return XPathTokenTypes.LBRACKET;
1196 case 47: break;
1197 case 17:
1198 { yybegin(YYINITIAL); return XPathTokenTypes.EQ;
1200 case 48: break;
1201 case 5:
1202 { yybegin(S1); return XPathTokenTypes.DOT;
1204 case 49: break;
1205 case 15:
1206 { yybegin(YYINITIAL); return XPathTokenTypes.UNION;
1208 case 50: break;
1209 case 26:
1210 { return XPathTokenTypes.FUNCTION_NAME;
1212 case 51: break;
1213 case 16:
1214 { yybegin(YYINITIAL); return XPathTokenTypes.PLUS;
1216 case 52: break;
1217 case 7:
1218 { yybegin(YYINITIAL); return XPathTokenTypes.COL;
1220 case 53: break;
1221 case 33:
1222 { yybegin(YYINITIAL); return XPathTokenTypes.LE;
1224 case 54: break;
1225 case 11:
1226 { yybegin(S1); return XPathTokenTypes.STAR;
1228 case 55: break;
1229 case 1:
1230 { yybegin(YYINITIAL); return XPathTokenTypes.BAD_CHARACTER;
1232 case 56: break;
1233 case 27:
1234 { return XPathTokenTypes.COL;
1236 case 57: break;
1237 case 30:
1238 { yybegin(YYINITIAL); return XPathTokenTypes.COLCOL;
1240 case 58: break;
1241 case 18:
1242 { yybegin(YYINITIAL); return XPathTokenTypes.LT;
1244 case 59: break;
1245 case 14:
1246 { yybegin(YYINITIAL); return XPathTokenTypes.PATH;
1248 case 60: break;
1249 case 31:
1250 { yybegin(YYINITIAL); return XPathTokenTypes.ANY_PATH;
1252 case 61: break;
1253 case 25:
1254 { yybegin(YYINITIAL); return XPathTokenTypes.MULT;
1256 case 62: break;
1257 case 9:
1258 { yybegin(VAR); return XPathTokenTypes.DOLLAR;
1260 case 63: break;
1261 case 28:
1262 { yybegin(S1); return XPathTokenTypes.VARIABLE_NAME;
1264 case 64: break;
1265 case 3:
1266 { yybegin(S1); return XPathTokenTypes.NCNAME;
1268 case 65: break;
1269 case 8:
1270 { yybegin(S1); return XPathTokenTypes.STRING_LITERAL;
1272 case 66: break;
1273 case 2:
1274 { return XPathTokenTypes.WHITESPACE;
1276 case 67: break;
1277 case 37:
1278 { yybegin(S1); return XPathTokenTypes.BAD_AXIS_NAME;
1280 case 68: break;
1281 case 10:
1282 { yybegin(YYINITIAL); return XPathTokenTypes.LPAREN;
1284 case 69: break;
1285 case 43:
1286 { yybegin(S1); return XPathTokenTypes.AXIS_NAME;
1288 case 70: break;
1289 case 12:
1290 { yybegin(YYINITIAL); return XPathTokenTypes.AT;
1292 case 71: break;
1293 case 35:
1294 { yybegin(YYINITIAL); return XPathTokenTypes.OR;
1296 case 72: break;
1297 case 22:
1298 { yybegin(S1); return XPathTokenTypes.RBRACKET;
1300 case 73: break;
1301 case 20:
1302 { yybegin(S1); return XPathTokenTypes.RPAREN;
1304 case 74: break;
1305 case 13:
1306 { yybegin(YYINITIAL); return XPathTokenTypes.COMMA;
1308 case 75: break;
1309 case 34:
1310 { yybegin(YYINITIAL); return XPathTokenTypes.GE;
1312 case 76: break;
1313 case 36:
1314 { return XPathTokenTypes.VARIABLE_PREFIX;
1316 case 77: break;
1317 case 41:
1318 { yybegin(FUNC); return XPathTokenTypes.EXT_PREFIX;
1320 case 78: break;
1321 case 40:
1322 { yybegin(YYINITIAL); return XPathTokenTypes.MOD;
1324 case 79: break;
1325 case 19:
1326 { yybegin(YYINITIAL); return XPathTokenTypes.GT;
1328 case 80: break;
1329 case 42:
1330 { yybegin(S1); return XPathTokenTypes.NODE_TYPE;
1332 case 81: break;
1333 case 23:
1334 { return XPathTokenTypes.LBRACE;
1336 case 82: break;
1337 case 24:
1338 { return XPathTokenTypes.RBRACE;
1340 case 83: break;
1341 case 32:
1342 { yybegin(YYINITIAL); return XPathTokenTypes.NE;
1344 case 84: break;
1345 case 39:
1346 { yybegin(YYINITIAL); return XPathTokenTypes.DIV;
1348 case 85: break;
1349 case 29:
1350 { yybegin(S1); return XPathTokenTypes.DOTDOT;
1352 case 86: break;
1353 default:
1354 if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
1355 zzAtEOF = true;
1356 zzDoEOF();
1357 return null;
1359 else {
1360 zzScanError(ZZ_NO_MATCH);