Fix lexer for pragma's.

This commit is contained in:
Rik van der Kleij 2019-02-24 21:41:55 +01:00
parent 3c80ba881a
commit a6d5851c32
2 changed files with 481 additions and 377 deletions

View File

@ -224,7 +224,7 @@ nhaddock_start = {left_brace}{dash}{white_char}?{vertical_bar}
{hash} { return HS_HASH; }
{white_space} { return com.intellij.psi.TokenType.WHITE_SPACE; }
[\-a-zA-Z0-9_=\(\):<>*/|'!?\.+\^&%$#@\[\];,~]+ {
[\-a-zA-Z0-9_=\(\):<>*/|'!?\.+\^&%$#@\[\];,~\\]+ {
return HS_ONE_PRAGMA;
}

View File

@ -93,20 +93,20 @@ public class _HaskellLexer implements FlexLexer {
"\1\41\1\42\1\41\1\0\1\43\1\44\5\0\1\45" +
"\1\46\3\5\1\47\4\5\1\50\2\5\3\0\1\51" +
"\5\0\1\21\1\52\4\0\1\53\1\54\4\5\1\55" +
"\1\56\1\57\1\60\1\61\3\0\1\62\2\41\1\63" +
"\1\56\1\57\1\60\1\61\3\0\1\62\3\41\1\63" +
"\6\0\11\5\1\64\2\5\1\0\1\65\1\0\1\65" +
"\3\51\1\66\1\67\1\70\17\0\1\21\20\0\1\71" +
"\1\72\4\5\1\73\1\70\1\63\7\0\6\5\1\74" +
"\1\75\2\5\1\76\1\0\1\51\1\77\1\51\27\0" +
"\1\100\1\101\2\5\1\63\3\0\1\102\6\5\1\103" +
"\4\0\1\5\1\104\1\0\1\105\1\106\1\5\1\107" +
"\4\5\5\0\1\110\2\5\1\111\1\5\1\112\2\0" +
"\1\77\2\0\1\113\1\0\1\114\2\0\2\77\23\0" +
"\1\115\2\0\1\51\5\0\1\116\1\117\1\120\3\0" +
"\1\77";
"\1\72\4\5\1\73\1\70\17\41\1\63\7\0\6\5" +
"\1\74\1\75\2\5\1\76\1\0\1\51\1\77\1\51" +
"\27\0\1\100\1\101\2\5\15\41\1\63\3\0\1\102" +
"\6\5\1\103\4\0\1\5\1\104\1\0\1\105\1\106" +
"\1\5\1\107\4\5\5\0\1\110\2\5\1\111\1\5" +
"\1\112\2\0\1\77\2\0\1\113\1\0\1\114\2\0" +
"\2\77\23\0\1\115\2\0\1\51\5\0\1\116\1\117" +
"\1\120\3\0\1\77";
private static int[] zzUnpackAction() {
int[] result = new int[325];
int[] result = new int[354];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@ -148,33 +148,37 @@ public class _HaskellLexer implements FlexLexer {
"\0\u01db\0\u01db\0\u01db\0\u1e0f\0\u1054\0\u1e6e\0\u01db\0\u1ecd" +
"\0\u1f2c\0\u1f8b\0\u1fea\0\u2049\0\u20a8\0\u2107\0\u2166\0\u21c5" +
"\0\u2224\0\u2283\0\u22e2\0\u2341\0\u23a0\0\u23ff\0\u245e\0\u24bd" +
"\0\u251c\0\u0591\0\u257b\0\u25da\0\u2639\0\u2698\0\u2698\0\u26f7" +
"\0\u2756\0\u27b5\0\u2814\0\u193c\0\u199b\0\u01db\0\u2873\0\u28d2" +
"\0\u251c\0\u257b\0\u0591\0\u25da\0\u2639\0\u2698\0\u26f7\0\u26f7" +
"\0\u2756\0\u27b5\0\u2814\0\u2873\0\u193c\0\u199b\0\u01db\0\u28d2" +
"\0\u2931\0\u2990\0\u29ef\0\u2a4e\0\u2aad\0\u2b0c\0\u2b6b\0\u2bca" +
"\0\u2c29\0\u2c88\0\u2ce7\0\u2d46\0\u2da5\0\u2e04\0\u2e63\0\u2ec2" +
"\0\u2f21\0\u2f80\0\u2fdf\0\u303e\0\u309d\0\u30fc\0\u315b\0\u31ba" +
"\0\u3219\0\u3278\0\u32d7\0\u3336\0\u3395\0\u33f4\0\u01db\0\u01db" +
"\0\u3453\0\u34b2\0\u3511\0\u3570\0\u01db\0\u1112\0\u35cf\0\u362e" +
"\0\u3219\0\u3278\0\u32d7\0\u3336\0\u3395\0\u33f4\0\u3453\0\u01db" +
"\0\u01db\0\u34b2\0\u3511\0\u3570\0\u35cf\0\u01db\0\u1112\0\u362e" +
"\0\u368d\0\u36ec\0\u374b\0\u37aa\0\u3809\0\u3868\0\u38c7\0\u3926" +
"\0\u3985\0\u39e4\0\u3a43\0\u3aa2\0\u0591\0\u0591\0\u3b01\0\u3b60" +
"\0\u0591\0\u3bbf\0\u3c1e\0\u3c7d\0\u3cdc\0\u3d3b\0\u3d9a\0\u3df9" +
"\0\u3e58\0\u3eb7\0\u3f16\0\u3f75\0\u3fd4\0\u4033\0\u4092\0\u40f1" +
"\0\u4150\0\u41af\0\u420e\0\u426d\0\u42cc\0\u432b\0\u438a\0\u43e9" +
"\0\u4448\0\u44a7\0\u4506\0\u4565\0\u45c4\0\u0591\0\u4623\0\u4682" +
"\0\u46e1\0\u4740\0\u479f\0\u47fe\0\u485d\0\u48bc\0\u491b\0\u497a" +
"\0\u49d9\0\u4a38\0\u4a97\0\u0591\0\u4af6\0\u4b55\0\u4bb4\0\u4c13" +
"\0\u4c72\0\u0591\0\u4cd1\0\u0591\0\u0591\0\u4d30\0\u0591\0\u4d8f" +
"\0\u4dee\0\u4e4d\0\u4eac\0\u4f0b\0\u4f6a\0\u4fc9\0\u5028\0\u5087" +
"\0\u0591\0\u50e6\0\u5145\0\u0591\0\u51a4\0\u0591\0\u5203\0\u5262" +
"\0\u52c1\0\u5320\0\u537f\0\u0591\0\u53de\0\u0591\0\u543d\0\u549c" +
"\0\u54fb\0\u555a\0\u55b9\0\u5618\0\u5677\0\u56d6\0\u5735\0\u5794" +
"\0\u57f3\0\u5852\0\u58b1\0\u5910\0\u596f\0\u59ce\0\u5a2d\0\u5a8c" +
"\0\u5aeb\0\u5b4a\0\u5ba9\0\u5c08\0\u5c67\0\u01db\0\u5cc6\0\u5d25" +
"\0\u01db\0\u5d84\0\u5de3\0\u5e42\0\u5ea1\0\u5f00\0\u01db\0\u01db" +
"\0\u01db\0\u5f5f\0\u5fbe\0\u601d\0\u607c";
"\0\u3985\0\u39e4\0\u3a43\0\u3aa2\0\u3b01\0\u3b60\0\u3bbf\0\u3c1e" +
"\0\u3c7d\0\u3cdc\0\u3d3b\0\u3d9a\0\u3df9\0\u3e58\0\u3eb7\0\u3f16" +
"\0\u3f75\0\u3fd4\0\u4033\0\u4092\0\u0591\0\u0591\0\u40f1\0\u4150" +
"\0\u0591\0\u41af\0\u420e\0\u426d\0\u42cc\0\u432b\0\u438a\0\u43e9" +
"\0\u4448\0\u44a7\0\u4506\0\u4565\0\u45c4\0\u4623\0\u4682\0\u46e1" +
"\0\u4740\0\u479f\0\u47fe\0\u485d\0\u48bc\0\u491b\0\u497a\0\u49d9" +
"\0\u4a38\0\u4a97\0\u4af6\0\u4b55\0\u4bb4\0\u0591\0\u4c13\0\u4c72" +
"\0\u4cd1\0\u4d30\0\u4d8f\0\u4dee\0\u4e4d\0\u4eac\0\u4f0b\0\u4f6a" +
"\0\u4fc9\0\u5028\0\u5087\0\u50e6\0\u5145\0\u51a4\0\u5203\0\u5262" +
"\0\u52c1\0\u5320\0\u537f\0\u53de\0\u543d\0\u549c\0\u54fb\0\u555a" +
"\0\u0591\0\u55b9\0\u5618\0\u5677\0\u56d6\0\u5735\0\u0591\0\u5794" +
"\0\u0591\0\u0591\0\u57f3\0\u0591\0\u5852\0\u58b1\0\u5910\0\u596f" +
"\0\u59ce\0\u5a2d\0\u5a8c\0\u5aeb\0\u5b4a\0\u0591\0\u5ba9\0\u5c08" +
"\0\u0591\0\u5c67\0\u0591\0\u5cc6\0\u5d25\0\u5d84\0\u5de3\0\u5e42" +
"\0\u0591\0\u5ea1\0\u0591\0\u5f00\0\u5f5f\0\u5fbe\0\u601d\0\u607c" +
"\0\u60db\0\u613a\0\u6199\0\u61f8\0\u6257\0\u62b6\0\u6315\0\u6374" +
"\0\u63d3\0\u6432\0\u6491\0\u64f0\0\u654f\0\u65ae\0\u660d\0\u666c" +
"\0\u66cb\0\u672a\0\u01db\0\u6789\0\u67e8\0\u01db\0\u6847\0\u68a6" +
"\0\u6905\0\u6964\0\u69c3\0\u01db\0\u01db\0\u01db\0\u6a22\0\u6a81" +
"\0\u6ae0\0\u6b3f";
private static int[] zzUnpackRowMap() {
int[] result = new int[325];
int[] result = new int[354];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@ -209,349 +213,450 @@ public class _HaskellLexer implements FlexLexer {
"\1\21\1\71\1\72\25\71\1\73\72\71\1\74\5\71" +
"\1\0\7\71\1\72\25\71\1\75\72\71\1\76\5\71" +
"\1\0\7\71\1\72\103\71\1\77\12\71\1\100\7\71" +
"\1\0\6\71\1\0\1\7\1\10\1\11\1\101\13\102" +
"\1\0\1\102\1\0\1\102\1\0\1\102\1\0\1\103" +
"\10\102\1\11\31\102\1\104\1\105\1\102\1\0\1\102" +
"\1\0\10\102\4\0\2\102\1\106\2\102\1\0\2\107" +
"\2\0\2\102\1\0\6\102\140\0\1\11\1\10\1\11" +
"\34\0\1\11\77\0\1\11\1\0\1\11\34\0\1\11" +
"\77\0\1\110\1\0\1\110\1\36\1\111\1\0\1\112" +
"\1\113\6\0\1\114\1\36\6\0\1\36\7\0\1\36" +
"\1\110\3\0\1\36\1\0\1\36\25\0\14\36\34\0" +
"\1\21\1\115\2\21\1\116\6\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\3\21\1\117\2\21\5\0" +
"\10\21\1\120\2\21\1\0\6\21\1\0\7\21\2\0" +
"\1\0\6\71\1\0\1\7\1\10\1\11\1\101\15\102" +
"\1\0\1\102\1\0\1\102\1\0\1\103\10\102\1\11" +
"\31\102\1\104\1\105\1\102\1\0\1\102\1\0\10\102" +
"\4\0\2\102\1\106\2\102\1\0\2\107\2\0\2\102" +
"\1\0\6\102\140\0\1\11\1\10\1\11\34\0\1\11" +
"\77\0\1\11\1\0\1\11\34\0\1\11\77\0\1\110" +
"\1\0\1\110\1\36\1\111\1\0\1\112\1\113\6\0" +
"\1\114\1\36\6\0\1\36\7\0\1\36\1\110\3\0" +
"\1\36\1\0\1\36\25\0\14\36\34\0\1\21\1\115" +
"\2\21\1\116\6\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\3\21\1\121\4\21\1\122" +
"\2\21\1\0\6\21\1\0\1\123\6\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\6\21\5\0\5\21\1\124\5\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\3\21" +
"\1\125\7\21\1\0\6\21\1\0\7\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\6\21\5\0\3\21\1\126\7\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\13\21" +
"\2\21\1\0\3\21\1\117\2\21\5\0\10\21\1\120" +
"\2\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\3\21\1\121\4\21\1\122\2\21\1\0" +
"\6\21\1\0\1\123\6\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\5\21\1\124\5\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\3\21\1\125\7\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\1\21\1\127\11\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\5\21\1\130\5\21" +
"\1\0\6\21\1\0\1\131\6\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\4\0\1\36\13\0\1\36\6\0\1\36\7\0" +
"\1\36\4\0\1\36\1\0\1\36\25\0\14\36\16\0" +
"\1\132\15\0\13\25\1\0\6\25\1\0\7\25\2\0" +
"\1\25\1\0\1\25\1\0\1\25\1\0\24\25\33\0" +
"\2\25\1\0\6\25\10\0\1\133\14\0\1\26\1\27" +
"\3\0\1\26\2\0\1\26\1\0\1\134\1\0\1\133" +
"\24\0\1\26\75\0\2\27\3\0\1\27\2\0\1\27" +
"\30\0\1\27\54\0\1\36\13\0\1\36\4\0\1\26" +
"\1\27\1\135\2\0\1\26\2\0\1\26\1\0\1\36" +
"\1\136\3\0\1\36\1\0\1\36\17\0\1\26\5\0" +
"\5\36\1\53\6\36\37\0\1\133\4\0\1\137\7\0" +
"\1\26\1\27\3\0\1\26\2\140\1\26\1\137\1\134" +
"\1\0\1\133\24\0\1\26\51\0\1\11\1\0\1\11" +
"\33\0\1\134\1\11\102\0\1\36\13\0\1\36\6\0" +
"\1\36\7\0\1\36\4\0\1\36\1\0\1\36\25\0" +
"\14\36\27\0\2\141\1\0\15\141\1\142\51\141\1\0" +
"\14\141\1\143\27\141\2\105\1\144\15\105\1\145\52\105" +
"\1\144\43\105\4\0\1\36\13\0\1\36\4\0\1\26" +
"\1\27\1\36\2\0\1\26\2\0\1\26\1\0\1\36" +
"\1\136\3\0\1\36\1\0\1\36\17\0\1\26\5\0" +
"\14\36\33\0\1\36\13\0\1\36\6\0\1\52\7\0" +
"\1\36\4\0\1\36\1\0\1\36\25\0\14\36\33\0" +
"\1\36\13\21\1\36\2\21\4\0\1\36\1\21\2\0" +
"\1\21\3\0\1\36\3\0\1\21\1\36\1\21\1\36" +
"\25\0\14\36\16\0\2\21\1\0\6\21\4\0\1\36" +
"\13\0\1\36\6\0\1\36\7\0\1\36\4\0\1\36" +
"\1\0\1\36\25\0\5\36\1\54\6\36\33\0\1\36" +
"\13\0\1\36\6\0\1\36\7\0\1\36\4\0\1\36" +
"\1\0\1\36\25\0\13\36\1\51\34\0\13\146\1\0" +
"\4\146\3\0\2\146\1\0\2\146\1\0\1\146\1\147" +
"\1\0\1\146\1\0\1\146\1\0\1\146\1\0\17\146" +
"\1\0\3\146\5\0\1\147\2\0\1\150\2\0\1\151" +
"\20\0\2\146\1\0\6\146\27\0\1\152\114\0\13\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\1\21" +
"\1\153\3\21\1\154\5\0\10\21\1\155\2\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\13\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\5\21\1\156\2\0\1\71\257\0\1\157\42\0\1\160" +
"\232\0\1\161\42\0\1\162\151\0\1\163\101\0\13\164" +
"\1\0\4\164\3\0\2\164\1\0\2\164\1\0\1\164" +
"\1\165\1\0\1\164\1\0\1\164\1\0\1\164\1\0" +
"\17\164\1\0\3\164\5\0\1\165\2\0\1\166\2\0" +
"\1\167\20\0\2\164\1\0\6\164\4\0\14\102\1\0" +
"\1\102\1\0\1\102\1\0\1\102\1\0\1\170\10\102" +
"\1\0\32\102\1\0\1\102\1\0\1\102\1\0\10\102" +
"\4\0\5\102\5\0\2\102\1\0\6\102\4\0\14\102" +
"\1\0\1\102\1\0\1\102\1\0\1\102\1\0\11\102" +
"\1\0\32\102\1\0\1\102\1\0\1\102\1\0\10\102" +
"\4\0\5\102\5\0\2\102\1\0\6\102\2\141\1\0" +
"\1\141\14\171\1\142\1\171\1\141\1\171\1\141\1\171" +
"\1\141\11\171\1\141\31\171\1\102\1\141\1\171\1\141" +
"\1\171\1\141\10\171\4\141\5\171\5\141\2\171\1\141" +
"\6\171\1\0\1\110\1\0\1\110\1\0\1\111\1\0" +
"\1\112\1\113\6\0\1\114\20\0\1\110\104\0\1\172" +
"\2\0\1\173\135\0\1\174\137\0\1\175\1\176\1\0" +
"\1\177\133\0\1\200\132\0\1\21\1\201\4\21\1\202" +
"\4\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\13\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\2\21\1\203\3\21\5\0\7\21\1\204" +
"\3\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\1\21\1\205\5\21\1\206\3\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\13\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\1\207\5\21\5\0\6\21\1\210\4\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\13\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\4\21" +
"\1\211\1\21\5\0\13\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\1\212\5\21\5\0\13\21\1\0" +
"\6\21\1\0\1\213\6\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\6\21\1\214\4\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\10\0\1\215\153\0\1\216" +
"\1\0\1\217\2\0\1\216\2\0\1\216\30\0\1\216" +
"\7\0\1\217\65\0\1\220\4\0\1\220\2\0\1\220" +
"\30\0\1\220\50\0\1\221\1\222\1\0\1\223\1\36" +
"\32\221\1\36\1\223\3\221\1\36\27\221\1\36\1\221" +
"\1\36\1\221\5\36\20\221\1\0\11\221\37\0\1\134" +
"\131\0\1\224\2\0\1\224\30\0\1\224\56\0\3\225" +
"\5\0\1\225\6\0\1\225\2\0\3\225\2\0\1\225" +
"\3\0\1\225\14\0\2\225\1\0\2\225\3\0\1\225" +
"\37\0\1\225\102\0\1\226\52\0\1\141\2\0\1\141" +
"\2\0\1\141\1\227\2\0\1\141\4\0\2\230\1\0" +
"\1\141\1\231\1\230\1\232\1\0\1\230\3\0\1\233" +
"\2\0\2\141\1\234\1\235\1\236\1\237\1\240\1\241" +
"\2\0\1\242\1\243\1\0\1\244\1\245\1\241\1\236" +
"\1\0\1\230\2\0\1\236\2\141\32\0\1\141\2\0" +
"\1\141\11\0\1\246\13\0\1\246\6\0\1\246\7\0" +
"\1\246\4\0\1\246\1\0\1\246\23\0\1\226\1\0" +
"\14\246\30\0\3\247\2\0\1\105\2\0\1\105\2\0" +
"\1\105\1\250\2\0\1\105\4\0\2\105\1\0\1\105" +
"\1\251\1\105\1\252\1\0\1\105\2\0\1\247\1\253" +
"\2\0\2\105\1\254\1\255\1\256\1\257\1\260\1\261" +
"\2\0\1\262\1\263\1\0\1\264\1\265\1\261\1\256" +
"\1\0\1\105\2\0\1\256\2\105\32\0\1\105\2\0" +
"\1\105\12\0\13\146\1\0\6\146\1\0\7\146\1\147" +
"\1\0\1\146\1\0\1\146\1\0\1\146\1\0\24\146" +
"\4\0\1\147\2\0\1\150\2\0\1\151\20\0\2\146" +
"\1\0\6\146\5\0\13\146\1\0\2\146\5\0\1\146" +
"\2\0\1\146\7\0\1\146\1\0\1\146\60\0\2\146" +
"\1\0\6\146\1\0\1\266\1\0\1\266\1\267\33\0" +
"\1\266\44\0\1\270\36\0\13\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\2\21\1\271\3\21\5\0" +
"\3\21\1\272\7\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\2\21\1\273\10\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\3\21\1\274\7\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\13\164\1\0\6\164\1\0" +
"\7\164\1\165\1\0\1\164\1\0\1\164\1\0\1\164" +
"\1\0\24\164\4\0\1\165\2\0\1\166\2\0\1\167" +
"\20\0\2\164\1\0\6\164\5\0\13\164\1\0\2\164" +
"\5\0\1\164\2\0\1\164\7\0\1\164\1\0\1\164" +
"\60\0\2\164\1\0\6\164\4\0\14\102\1\0\1\102" +
"\1\0\1\102\1\0\1\102\1\0\11\102\1\0\32\102" +
"\1\0\1\102\1\0\1\102\1\0\10\102\4\0\5\102" +
"\2\0\1\275\2\0\2\102\1\0\6\102\4\0\14\102" +
"\1\0\1\102\1\0\1\102\1\0\1\102\1\0\11\102" +
"\1\0\31\102\1\276\1\0\1\102\1\0\1\102\1\0" +
"\10\102\4\0\5\102\5\0\2\102\1\0\6\102\1\172" +
"\2\0\15\172\1\277\116\172\16\0\1\300\126\0\1\301" +
"\137\0\1\302\134\0\1\303\5\0\1\304\137\0\1\305" +
"\131\0\1\306\134\0\1\307\12\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\13\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\1\310\5\21" +
"\5\0\10\21\1\311\2\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\3\21\1\312\7\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\13\21\1\0\6\21\1\0\1\313\6\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\1\314\12\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\13\21" +
"\1\0\6\21\1\0\1\315\6\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\3\21\1\316\7\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\13\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\1\317\5\21" +
"\5\0\6\21\1\320\4\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\3\21\1\321\7\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\127\0\1\322\34\0\1\216\4\0\1\216\2\0\1\216" +
"\30\0\1\216\60\0\1\133\14\0\1\220\4\0\1\220" +
"\2\0\1\220\3\0\1\133\24\0\1\220\50\0\1\221" +
"\2\0\134\221\1\0\1\323\1\0\1\323\34\0\1\323" +
"\5\0\1\324\36\0\1\324\31\0\1\221\1\323\1\0" +
"\1\325\34\221\1\325\5\221\1\324\36\221\1\324\31\221" +
"\32\0\1\326\2\0\1\326\30\0\1\326\75\0\2\230" +
"\3\0\1\230\2\0\1\230\30\0\1\230\3\0\1\226" +
"\105\0\1\327\7\0\1\330\5\0\1\331\65\0\3\332" +
"\5\0\1\332\6\0\1\332\2\0\3\332\2\0\1\332" +
"\3\0\1\332\14\0\2\332\1\0\2\332\3\0\1\332" +
"\37\0\1\332\46\0\1\241\10\0\1\333\2\0\1\334" +
"\1\0\1\335\13\0\1\141\66\0\1\141\2\0\2\141" +
"\4\0\1\141\2\0\1\141\1\0\1\141\2\0\3\141" +
"\2\0\20\141\1\0\3\141\12\0\1\141\13\0\1\141" +
"\66\0\1\327\5\0\1\336\132\0\1\141\146\0\1\141" +
"\112\0\1\337\11\0\1\340\3\0\1\341\10\0\1\141" +
"\1\0\1\342\123\0\1\141\141\0\1\336\135\0\1\342" +
"\5\0\1\141\113\0\1\327\10\0\1\141\136\0\1\141" +
"\7\0\1\141\60\0\1\246\13\0\1\246\6\0\1\246" +
"\7\0\1\246\4\0\1\246\1\0\1\246\25\0\14\246" +
"\30\0\3\247\14\0\1\105\17\0\1\247\130\0\1\105" +
"\2\0\1\105\30\0\1\105\111\0\1\343\7\0\1\344" +
"\5\0\1\345\65\0\3\105\5\0\1\105\6\0\1\105" +
"\2\0\3\105\2\0\1\105\3\0\1\105\14\0\2\105" +
"\1\0\2\105\3\0\1\105\37\0\1\105\46\0\1\261" +
"\10\0\1\346\2\0\1\347\1\0\1\350\13\0\1\105" +
"\66\0\1\105\2\0\2\105\4\0\1\105\2\0\1\105" +
"\1\0\1\105\2\0\3\105\2\0\20\105\1\0\3\105" +
"\12\0\1\105\13\0\1\105\66\0\1\343\5\0\1\351" +
"\132\0\1\105\146\0\1\105\112\0\1\105\11\0\1\352" +
"\3\0\1\353\10\0\1\105\1\0\1\354\123\0\1\105" +
"\141\0\1\351\135\0\1\354\5\0\1\105\113\0\1\343" +
"\10\0\1\105\136\0\1\105\7\0\1\105\161\0\1\270" +
"\36\0\3\21\1\355\7\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\4\21\1\356\6\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\12\21\1\357\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\7\21\1\360\3\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\1\172" +
"\1\361\16\172\1\277\116\172\12\0\1\362\131\0\1\363" +
"\136\0\1\303\137\0\1\172\140\0\1\172\143\0\1\364" +
"\131\0\1\303\133\0\13\21\1\0\6\21\1\0\3\21" +
"\1\365\3\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\13\21" +
"\1\0\6\21\1\0\1\366\6\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\7\21\1\367\3\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\1\370\12\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\12\21\1\371\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\13\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\372\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\13\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\1\21\1\373" +
"\4\21\5\0\6\21\1\374\4\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\1\375\132\0" +
"\1\323\1\0\1\323\34\0\1\323\76\0\1\324\1\376" +
"\1\377\134\324\1\221\1\323\1\0\1\325\34\221\1\325" +
"\76\221\32\0\1\326\2\0\1\326\30\0\1\326\3\0" +
"\1\226\115\0\1\141\126\0\1\141\163\0\1\141\56\0" +
"\3\332\5\0\1\332\6\0\1\332\2\0\3\332\2\0" +
"\1\332\3\0\1\332\14\0\2\332\1\0\2\332\3\0" +
"\1\332\3\0\1\226\33\0\1\332\65\0\1\141\140\0" +
"\1\141\113\0\1\141\24\0\1\141\135\0\1\141\131\0" +
"\1\141\16\0\1\226\125\0\1\141\111\0\1\141\151\0" +
"\1\141\140\0\1\105\126\0\1\105\163\0\1\105\125\0" +
"\1\105\140\0\1\105\113\0\1\105\24\0\1\105\135\0" +
"\1\105\137\0\1\105\111\0\1\105\151\0\1\105\74\0" +
"\13\21\1\0\6\21\1\0\7\21\1\0\1\u0100\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\6\21\5\0\5\21\1\u0101\5\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\3\21" +
"\1\u0102\7\21\1\0\6\21\1\0\7\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\6\21\1\172\1\0\16\172\1\277\116\172\17\0" +
"\1\u0103\130\0\1\304\141\0\1\172\127\0\5\21\1\u0104" +
"\1\21\1\u0105\3\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\4\21\1\u0106\6\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\13\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\1\u0107\5\21\5\0\13\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\1\21\1\u0108\1\0\6\21\5\0\5\21\1\u0109" +
"\5\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\1\u010a\12\21\1\0\6\21\1\0\7\21" +
"\5\0\3\21\1\126\7\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\13\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\2\21\1\u010b\3\21" +
"\11\0\1\u010c\126\0\3\377\14\0\1\u010d\6\0\1\u010e" +
"\10\0\1\377\77\0\1\377\1\0\1\377\14\0\1\u010d" +
"\6\0\1\u010e\10\0\1\377\103\0\1\u010f\1\u0110\135\0" +
"\3\21\1\u0111\7\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\7\0\1\304\134\0\11\21\1\u0112" +
"\1\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\4\21\1\u0113\6\21\1\0\6\21\1\0" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\1\21" +
"\1\127\11\21\1\0\6\21\1\0\7\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\6\21\5\0\5\21\1\130\5\21\1\0\6\21" +
"\1\0\1\131\6\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\4\0" +
"\1\36\13\0\1\36\6\0\1\36\7\0\1\36\4\0" +
"\1\36\1\0\1\36\25\0\14\36\16\0\1\132\15\0" +
"\13\25\1\0\6\25\1\0\7\25\2\0\1\25\1\0" +
"\1\25\1\0\1\25\1\0\24\25\33\0\2\25\1\0" +
"\6\25\10\0\1\133\14\0\1\26\1\27\3\0\1\26" +
"\2\0\1\26\1\0\1\134\1\0\1\133\24\0\1\26" +
"\75\0\2\27\3\0\1\27\2\0\1\27\30\0\1\27" +
"\54\0\1\36\13\0\1\36\4\0\1\26\1\27\1\135" +
"\2\0\1\26\2\0\1\26\1\0\1\36\1\136\3\0" +
"\1\36\1\0\1\36\17\0\1\26\5\0\5\36\1\53" +
"\6\36\37\0\1\133\4\0\1\137\7\0\1\26\1\27" +
"\3\0\1\26\2\140\1\26\1\137\1\134\1\0\1\133" +
"\24\0\1\26\51\0\1\11\1\0\1\11\33\0\1\134" +
"\1\11\102\0\1\36\13\0\1\36\6\0\1\36\7\0" +
"\1\36\4\0\1\36\1\0\1\36\25\0\14\36\27\0" +
"\2\141\1\0\15\141\1\142\51\141\1\0\14\141\1\143" +
"\27\141\2\105\1\144\15\105\1\145\52\105\1\144\43\105" +
"\4\0\1\36\13\0\1\36\4\0\1\26\1\27\1\36" +
"\2\0\1\26\2\0\1\26\1\0\1\36\1\136\3\0" +
"\1\36\1\0\1\36\17\0\1\26\5\0\14\36\33\0" +
"\1\36\13\0\1\36\6\0\1\52\7\0\1\36\4\0" +
"\1\36\1\0\1\36\25\0\14\36\33\0\1\36\13\21" +
"\1\36\2\21\4\0\1\36\1\21\2\0\1\21\3\0" +
"\1\36\3\0\1\21\1\36\1\21\1\36\25\0\14\36" +
"\16\0\2\21\1\0\6\21\4\0\1\36\13\0\1\36" +
"\6\0\1\36\7\0\1\36\4\0\1\36\1\0\1\36" +
"\25\0\5\36\1\54\6\36\33\0\1\36\13\0\1\36" +
"\6\0\1\36\7\0\1\36\4\0\1\36\1\0\1\36" +
"\25\0\13\36\1\51\34\0\13\146\1\0\4\146\3\0" +
"\2\146\1\0\2\146\1\0\1\146\1\147\1\0\1\146" +
"\1\0\1\146\1\0\1\146\1\0\17\146\1\0\3\146" +
"\5\0\1\147\2\0\1\150\2\0\1\151\20\0\2\146" +
"\1\0\6\146\27\0\1\152\114\0\13\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\1\21\1\153\3\21" +
"\1\154\5\0\10\21\1\155\2\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\13\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\1\u0114\5\21" +
"\5\0\4\21\1\u0115\6\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\3\21\1\u0116\7\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\122\0\1\u0117\142\0\1\u0118\37\0\1\u0119\120\0\1\u011a" +
"\155\0\1\u011b\113\0\3\21\1\u011c\7\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\13\21" +
"\1\0\6\21\1\0\7\21\1\0\1\u011d\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\5\21\1\156" +
"\2\0\1\71\257\0\1\157\42\0\1\160\232\0\1\161" +
"\42\0\1\162\151\0\1\163\101\0\13\164\1\0\4\164" +
"\3\0\2\164\1\0\2\164\1\0\1\164\1\165\1\0" +
"\1\164\1\0\1\164\1\0\1\164\1\0\17\164\1\0" +
"\3\164\5\0\1\165\2\0\1\166\2\0\1\167\20\0" +
"\2\164\1\0\6\164\4\0\16\102\1\0\1\102\1\0" +
"\1\102\1\0\1\170\10\102\1\0\32\102\1\0\1\102" +
"\1\0\1\102\1\0\10\102\4\0\5\102\5\0\2\102" +
"\1\0\6\102\4\0\16\102\1\0\1\102\1\0\1\102" +
"\1\0\11\102\1\0\32\102\1\0\1\102\1\0\1\102" +
"\1\0\10\102\4\0\5\102\5\0\2\102\1\0\6\102" +
"\2\141\1\0\1\141\14\171\1\172\1\171\1\141\1\171" +
"\1\141\1\171\1\141\11\171\1\141\31\171\1\102\1\141" +
"\1\171\1\141\1\171\1\141\10\171\4\141\5\171\5\141" +
"\2\171\1\141\6\171\1\0\1\110\1\0\1\110\1\0" +
"\1\111\1\0\1\112\1\113\6\0\1\114\20\0\1\110" +
"\104\0\1\173\2\0\1\174\135\0\1\175\137\0\1\176" +
"\1\177\1\0\1\200\133\0\1\201\132\0\1\21\1\202" +
"\4\21\1\203\4\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\13\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\2\21\1\204\3\21\5\0" +
"\7\21\1\205\3\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\1\21\1\206\5\21\1\207" +
"\3\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\13\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\1\21\1\u011e\1\0\6\21\16\0\1\u011f\130\0\1\u0120" +
"\126\0\1\324\1\u0121\1\377\1\u0122\1\0\32\324\1\0" +
"\1\u0122\3\324\1\0\27\324\1\0\1\324\1\0\1\324" +
"\5\0\20\324\1\0\11\324\13\0\1\u0123\257\0\1\u0124" +
"\7\0\1\u0125\2\0\1\u0126\143\0\1\u0127\250\0\1\u0128" +
"\10\0\1\u0121\1\377\1\u0121\14\0\1\u010d\6\0\1\u010e" +
"\10\0\1\u0121\76\0\1\324\1\u0121\1\377\1\u0122\34\324" +
"\1\u0122\76\324\131\0\1\u0129\12\0\1\u012a\265\0\1\u012b" +
"\35\0\1\u012c\112\0\1\u012d\134\0\1\u012e\161\0\1\u012f" +
"\120\0\1\u0130\257\0\1\u0131\136\0\1\u0132\13\0\1\u0133" +
"\137\0\1\u0134\136\0\1\u0135\257\0\1\u0136\21\0\1\u0137" +
"\136\0\1\u0138\244\0\1\u0139\135\0\1\u013a\32\0\1\u013b" +
"\134\0\1\u013c\136\0\1\u013d\140\0\1\u013e\130\0\1\u013f" +
"\257\0\1\u0140\136\0\1\u0141\22\0\1\u0142\130\0\1\u0143" +
"\137\0\1\u0144\251\0\1\u0145\14\0\1\376\1\377\134\0";
"\2\21\1\0\1\210\5\21\5\0\6\21\1\211\4\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\13\21\1\0\6\21\1\0\7\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\4\21\1\212\1\21\5\0\13\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\1\213\5\21\5\0" +
"\13\21\1\0\6\21\1\0\1\214\6\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\6\21\5\0\6\21\1\215\4\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\10\0\1\216" +
"\153\0\1\217\1\0\1\220\2\0\1\217\2\0\1\217" +
"\30\0\1\217\7\0\1\220\65\0\1\221\4\0\1\221" +
"\2\0\1\221\30\0\1\221\50\0\1\222\1\223\1\0" +
"\1\224\1\36\32\222\1\36\1\224\3\222\1\36\27\222" +
"\1\36\1\222\1\36\1\222\5\36\20\222\1\0\11\222" +
"\37\0\1\134\131\0\1\225\2\0\1\225\30\0\1\225" +
"\56\0\3\226\5\0\1\226\6\0\1\226\2\0\3\226" +
"\2\0\1\226\3\0\1\226\14\0\2\226\1\0\2\226" +
"\3\0\1\226\37\0\1\226\102\0\1\227\52\0\1\141" +
"\2\0\1\141\2\0\1\141\1\230\2\0\1\141\4\0" +
"\2\231\1\0\1\141\1\232\1\231\1\233\1\0\1\231" +
"\3\0\1\234\2\0\2\141\1\235\1\236\1\237\1\240" +
"\1\241\1\242\2\0\1\243\1\244\1\0\1\245\1\246" +
"\1\242\1\237\1\0\1\231\2\0\1\237\2\141\32\0" +
"\1\141\2\0\1\141\11\0\1\247\13\0\1\247\6\0" +
"\1\247\7\0\1\247\4\0\1\247\1\0\1\247\23\0" +
"\1\227\1\0\14\247\30\0\3\250\2\0\1\105\2\0" +
"\1\105\2\0\1\105\1\251\2\0\1\105\4\0\2\105" +
"\1\0\1\105\1\252\1\105\1\253\1\0\1\105\2\0" +
"\1\250\1\254\2\0\2\105\1\255\1\256\1\257\1\260" +
"\1\261\1\262\2\0\1\263\1\264\1\0\1\265\1\266" +
"\1\262\1\257\1\0\1\105\2\0\1\257\2\105\32\0" +
"\1\105\2\0\1\105\12\0\13\146\1\0\6\146\1\0" +
"\7\146\1\147\1\0\1\146\1\0\1\146\1\0\1\146" +
"\1\0\24\146\4\0\1\147\2\0\1\150\2\0\1\151" +
"\20\0\2\146\1\0\6\146\5\0\13\146\1\0\2\146" +
"\5\0\1\146\2\0\1\146\7\0\1\146\1\0\1\146" +
"\60\0\2\146\1\0\6\146\1\0\1\267\1\0\1\267" +
"\1\270\33\0\1\267\44\0\1\271\36\0\13\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\2\21\1\272" +
"\3\21\5\0\3\21\1\273\7\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\2\21\1\274" +
"\10\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\3\21\1\275\7\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\13\164\1\0" +
"\6\164\1\0\7\164\1\165\1\0\1\164\1\0\1\164" +
"\1\0\1\164\1\0\24\164\4\0\1\165\2\0\1\166" +
"\2\0\1\167\20\0\2\164\1\0\6\164\5\0\13\164" +
"\1\0\2\164\5\0\1\164\2\0\1\164\7\0\1\164" +
"\1\0\1\164\60\0\2\164\1\0\6\164\4\0\16\102" +
"\1\0\1\102\1\0\1\102\1\0\11\102\1\0\32\102" +
"\1\0\1\102\1\0\1\102\1\0\10\102\4\0\5\102" +
"\2\0\1\276\2\0\2\102\1\0\6\102\4\0\16\102" +
"\1\0\1\102\1\0\1\102\1\0\11\102\1\0\31\102" +
"\1\277\1\0\1\102\1\0\1\102\1\0\10\102\4\0" +
"\5\102\5\0\2\102\1\0\6\102\4\0\2\102\1\171" +
"\2\102\1\171\2\102\1\171\1\300\2\102\1\171\1\102" +
"\1\0\1\102\1\0\1\301\1\231\1\102\1\171\1\302" +
"\1\301\1\303\1\102\1\301\2\102\1\0\1\304\2\102" +
"\2\171\1\305\1\306\1\307\1\310\1\311\1\312\2\102" +
"\1\313\1\314\1\102\1\315\1\316\1\312\1\307\1\102" +
"\1\301\2\102\1\307\1\171\1\141\1\102\1\0\1\102" +
"\1\0\10\102\4\0\5\102\5\0\1\171\1\102\1\0" +
"\1\171\5\102\1\173\2\0\15\173\1\317\116\173\16\0" +
"\1\320\126\0\1\321\137\0\1\322\134\0\1\323\5\0" +
"\1\324\137\0\1\325\131\0\1\326\134\0\1\327\12\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\13\21\1\0\6\21\1\0\7\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\1\330\5\21\5\0\10\21\1\331\2\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\3\21\1\332\7\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\13\21\1\0\6\21\1\0" +
"\1\333\6\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\1\334" +
"\12\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\13\21\1\0\6\21\1\0\1\335\6\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\3\21\1\336\7\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\13\21\1\0\6\21\1\0\7\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\1\337\5\21\5\0\6\21\1\340\4\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\3\21\1\341\7\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\127\0\1\342\34\0\1\217\4\0" +
"\1\217\2\0\1\217\30\0\1\217\60\0\1\133\14\0" +
"\1\221\4\0\1\221\2\0\1\221\3\0\1\133\24\0" +
"\1\221\50\0\1\222\2\0\134\222\1\0\1\343\1\0" +
"\1\343\34\0\1\343\5\0\1\344\36\0\1\344\31\0" +
"\1\222\1\343\1\0\1\345\34\222\1\345\5\222\1\344" +
"\36\222\1\344\31\222\32\0\1\346\2\0\1\346\30\0" +
"\1\346\75\0\2\231\3\0\1\231\2\0\1\231\30\0" +
"\1\231\3\0\1\227\105\0\1\347\7\0\1\350\5\0" +
"\1\351\65\0\3\352\5\0\1\352\6\0\1\352\2\0" +
"\3\352\2\0\1\352\3\0\1\352\14\0\2\352\1\0" +
"\2\352\3\0\1\352\37\0\1\352\46\0\1\242\10\0" +
"\1\353\2\0\1\354\1\0\1\355\13\0\1\141\66\0" +
"\1\141\2\0\2\141\4\0\1\141\2\0\1\141\1\0" +
"\1\141\2\0\3\141\2\0\20\141\1\0\3\141\12\0" +
"\1\141\13\0\1\141\66\0\1\347\5\0\1\356\132\0" +
"\1\141\146\0\1\141\112\0\1\357\11\0\1\360\3\0" +
"\1\361\10\0\1\141\1\0\1\362\123\0\1\141\141\0" +
"\1\356\135\0\1\362\5\0\1\141\113\0\1\347\10\0" +
"\1\141\136\0\1\141\7\0\1\141\60\0\1\247\13\0" +
"\1\247\6\0\1\247\7\0\1\247\4\0\1\247\1\0" +
"\1\247\25\0\14\247\30\0\3\250\14\0\1\105\17\0" +
"\1\250\130\0\1\105\2\0\1\105\30\0\1\105\111\0" +
"\1\363\7\0\1\364\5\0\1\365\65\0\3\105\5\0" +
"\1\105\6\0\1\105\2\0\3\105\2\0\1\105\3\0" +
"\1\105\14\0\2\105\1\0\2\105\3\0\1\105\37\0" +
"\1\105\46\0\1\262\10\0\1\366\2\0\1\367\1\0" +
"\1\370\13\0\1\105\66\0\1\105\2\0\2\105\4\0" +
"\1\105\2\0\1\105\1\0\1\105\2\0\3\105\2\0" +
"\20\105\1\0\3\105\12\0\1\105\13\0\1\105\66\0" +
"\1\363\5\0\1\371\132\0\1\105\146\0\1\105\112\0" +
"\1\105\11\0\1\372\3\0\1\373\10\0\1\105\1\0" +
"\1\374\123\0\1\105\141\0\1\371\135\0\1\374\5\0" +
"\1\105\113\0\1\363\10\0\1\105\136\0\1\105\7\0" +
"\1\105\161\0\1\271\36\0\3\21\1\375\7\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\4\21\1\376\6\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\12\21\1\377\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\7\21" +
"\1\u0100\3\21\1\0\6\21\1\0\7\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\6\21\4\0\16\102\1\0\1\102\1\0\1\102" +
"\1\0\3\102\1\u0101\2\102\1\u0101\2\102\1\0\25\102" +
"\1\u0101\4\102\1\0\1\102\1\0\1\102\1\0\10\102" +
"\4\0\5\102\5\0\2\102\1\0\6\102\4\0\16\102" +
"\1\0\1\102\1\0\1\301\1\231\3\102\1\301\2\102" +
"\1\301\2\102\1\0\25\102\1\301\3\102\1\277\1\0" +
"\1\102\1\0\1\102\1\0\10\102\4\0\5\102\5\0" +
"\2\102\1\0\6\102\4\0\16\102\1\0\1\102\1\0" +
"\1\102\1\0\11\102\1\0\1\u0102\7\102\1\u0103\5\102" +
"\1\u0104\13\102\1\0\1\102\1\0\1\102\1\0\10\102" +
"\4\0\5\102\5\0\2\102\1\0\6\102\4\0\2\102" +
"\3\u0105\5\102\1\u0105\3\102\1\0\1\102\1\0\1\u0105" +
"\1\0\1\102\3\u0105\2\102\1\u0105\2\102\1\0\1\u0105" +
"\14\102\2\u0105\1\102\2\u0105\3\102\1\u0105\4\102\1\0" +
"\1\102\1\0\1\102\1\0\10\102\4\0\5\102\5\0" +
"\1\u0105\1\102\1\0\6\102\4\0\16\102\1\0\1\102" +
"\1\0\1\102\1\0\7\102\1\312\1\102\1\0\6\102" +
"\1\u0106\2\102\1\u0107\1\102\1\u0108\13\102\1\171\2\102" +
"\1\0\1\102\1\0\1\102\1\0\10\102\4\0\5\102" +
"\5\0\2\102\1\0\6\102\4\0\14\102\1\171\1\102" +
"\1\0\1\171\1\141\1\102\1\0\2\102\1\171\2\102" +
"\1\171\1\102\1\171\1\102\1\0\3\171\2\102\20\171" +
"\1\102\3\171\1\102\1\0\1\102\1\0\1\102\1\0" +
"\4\102\1\171\3\102\4\0\4\102\1\171\5\0\2\102" +
"\1\0\6\102\4\0\16\102\1\0\1\102\1\0\1\102" +
"\1\0\11\102\1\0\7\102\1\u0102\5\102\1\u0109\14\102" +
"\1\0\1\102\1\0\1\102\1\0\10\102\4\0\5\102" +
"\5\0\2\102\1\0\6\102\4\0\16\102\1\0\1\102" +
"\1\0\1\102\1\0\11\102\1\0\11\102\1\171\20\102" +
"\1\0\1\102\1\0\1\102\1\0\10\102\4\0\5\102" +
"\5\0\2\102\1\0\6\102\4\0\16\102\1\0\1\102" +
"\1\0\1\102\1\0\11\102\1\0\21\102\1\171\10\102" +
"\1\0\1\102\1\0\1\102\1\0\10\102\4\0\5\102" +
"\5\0\2\102\1\0\6\102\4\0\16\102\1\0\1\102" +
"\1\0\1\102\1\0\7\102\1\u010a\1\102\1\0\7\102" +
"\1\u010b\3\102\1\u010c\10\102\1\171\1\102\1\u010d\3\102" +
"\1\0\1\102\1\0\1\102\1\0\10\102\4\0\5\102" +
"\5\0\2\102\1\0\6\102\4\0\16\102\1\0\1\102" +
"\1\0\1\102\1\0\11\102\1\0\13\102\1\171\16\102" +
"\1\0\1\102\1\0\1\102\1\0\10\102\4\0\5\102" +
"\5\0\2\102\1\0\6\102\4\0\16\102\1\0\1\102" +
"\1\0\1\102\1\0\11\102\1\0\16\102\1\u0109\13\102" +
"\1\0\1\102\1\0\1\102\1\0\10\102\4\0\5\102" +
"\5\0\2\102\1\0\6\102\4\0\16\102\1\0\1\102" +
"\1\0\1\102\1\0\11\102\1\0\15\102\1\u010d\5\102" +
"\1\171\6\102\1\0\1\102\1\0\1\102\1\0\10\102" +
"\4\0\5\102\5\0\2\102\1\0\6\102\4\0\16\102" +
"\1\0\1\102\1\0\1\102\1\0\11\102\1\0\1\u0102" +
"\10\102\1\171\20\102\1\0\1\102\1\0\1\102\1\0" +
"\10\102\4\0\5\102\5\0\2\102\1\0\6\102\4\0" +
"\16\102\1\0\1\102\1\0\1\102\1\0\11\102\1\0" +
"\11\102\1\171\7\102\1\171\10\102\1\0\1\102\1\0" +
"\1\102\1\0\10\102\4\0\5\102\5\0\2\102\1\0" +
"\6\102\1\173\1\u010e\16\173\1\317\116\173\12\0\1\u010f" +
"\131\0\1\u0110\136\0\1\323\137\0\1\173\140\0\1\173" +
"\143\0\1\u0111\131\0\1\323\133\0\13\21\1\0\6\21" +
"\1\0\3\21\1\u0112\3\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\13\21\1\0\6\21\1\0\1\u0113\6\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\7\21\1\u0114\3\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\1\u0115\12\21\1\0\6\21\1\0\7\21\2\0\1\21" +
"\1\0\1\21\1\0\1\21\1\0\24\21\33\0\2\21" +
"\1\0\6\21\5\0\12\21\1\u0116\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\13\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\u0117\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\13\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\1\21\1\u0118\4\21\5\0\6\21\1\u0119\4\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\1\u011a\132\0\1\343\1\0\1\343\34\0\1\343\76\0" +
"\1\344\1\u011b\1\u011c\134\344\1\222\1\343\1\0\1\345" +
"\34\222\1\345\76\222\32\0\1\346\2\0\1\346\30\0" +
"\1\346\3\0\1\227\115\0\1\141\126\0\1\141\163\0" +
"\1\141\56\0\3\352\5\0\1\352\6\0\1\352\2\0" +
"\3\352\2\0\1\352\3\0\1\352\14\0\2\352\1\0" +
"\2\352\3\0\1\352\3\0\1\227\33\0\1\352\65\0" +
"\1\141\140\0\1\141\113\0\1\141\24\0\1\141\135\0" +
"\1\141\131\0\1\141\16\0\1\227\125\0\1\141\111\0" +
"\1\141\151\0\1\141\140\0\1\105\126\0\1\105\163\0" +
"\1\105\125\0\1\105\140\0\1\105\113\0\1\105\24\0" +
"\1\105\135\0\1\105\137\0\1\105\111\0\1\105\151\0" +
"\1\105\74\0\13\21\1\0\6\21\1\0\7\21\1\0" +
"\1\u011d\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\5\21\1\u011e\5\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\5\0\3\21\1\u011f\7\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\4\0\16\102\1\0\1\102" +
"\1\0\1\102\1\0\3\102\1\u0101\2\102\1\u0101\2\102" +
"\1\0\25\102\1\u0101\3\102\1\277\1\0\1\102\1\0" +
"\1\102\1\0\10\102\4\0\5\102\5\0\2\102\1\0" +
"\6\102\4\0\16\102\1\0\1\102\1\0\1\102\1\0" +
"\11\102\1\0\10\102\1\171\21\102\1\0\1\102\1\0" +
"\1\102\1\0\10\102\4\0\5\102\5\0\2\102\1\0" +
"\6\102\4\0\16\102\1\0\1\102\1\0\1\102\1\0" +
"\11\102\1\0\1\171\31\102\1\0\1\102\1\0\1\102" +
"\1\0\10\102\4\0\5\102\5\0\2\102\1\0\6\102" +
"\4\0\16\102\1\0\1\102\1\0\1\102\1\0\11\102" +
"\1\0\25\102\1\171\4\102\1\0\1\102\1\0\1\102" +
"\1\0\10\102\4\0\5\102\5\0\2\102\1\0\6\102" +
"\4\0\2\102\3\u0105\5\102\1\u0105\3\102\1\0\1\102" +
"\1\0\1\u0105\1\0\1\102\3\u0105\2\102\1\u0105\2\102" +
"\1\0\1\u0105\14\102\2\u0105\1\102\2\u0105\3\102\1\u0105" +
"\3\102\1\277\1\0\1\102\1\0\1\102\1\0\10\102" +
"\4\0\5\102\5\0\1\u0105\1\102\1\0\6\102\4\0" +
"\16\102\1\0\1\102\1\0\1\102\1\0\11\102\1\0" +
"\14\102\1\171\15\102\1\0\1\102\1\0\1\102\1\0" +
"\10\102\4\0\5\102\5\0\2\102\1\0\6\102\4\0" +
"\16\102\1\0\1\102\1\0\1\102\1\0\11\102\1\0" +
"\16\102\1\171\13\102\1\0\1\102\1\0\1\102\1\0" +
"\10\102\4\0\5\102\5\0\2\102\1\0\6\102\4\0" +
"\16\102\1\0\1\102\1\0\1\102\1\0\5\102\1\171" +
"\3\102\1\0\20\102\1\171\11\102\1\0\1\102\1\0" +
"\1\102\1\0\10\102\4\0\5\102\5\0\2\102\1\0" +
"\6\102\4\0\16\102\1\0\1\102\1\0\1\102\1\0" +
"\11\102\1\0\17\102\1\171\12\102\1\0\1\102\1\0" +
"\1\102\1\0\10\102\4\0\5\102\5\0\2\102\1\0" +
"\6\102\4\0\16\102\1\0\1\102\1\0\1\102\1\0" +
"\11\102\1\0\12\102\1\171\16\102\1\277\1\0\1\102" +
"\1\0\1\102\1\0\10\102\4\0\5\102\5\0\2\102" +
"\1\0\6\102\4\0\16\102\1\0\1\102\1\0\1\102" +
"\1\0\11\102\1\0\20\102\1\171\11\102\1\0\1\102" +
"\1\0\1\102\1\0\10\102\4\0\5\102\5\0\2\102" +
"\1\0\6\102\4\0\16\102\1\0\1\102\1\0\1\102" +
"\1\0\5\102\1\171\3\102\1\0\32\102\1\0\1\102" +
"\1\0\1\102\1\0\10\102\4\0\5\102\5\0\2\102" +
"\1\0\6\102\4\0\16\102\1\0\1\102\1\0\1\102" +
"\1\0\11\102\1\0\6\102\1\171\23\102\1\0\1\102" +
"\1\0\1\102\1\0\10\102\4\0\5\102\5\0\2\102" +
"\1\0\6\102\1\173\1\0\16\173\1\317\116\173\17\0" +
"\1\u0120\130\0\1\324\141\0\1\173\127\0\5\21\1\u0121" +
"\1\21\1\u0122\3\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\5\0\4\21\1\u0123\6\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\6\21\5\0" +
"\13\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\1\u0124\5\21\5\0\13\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\1\21\1\u0125\1\0\6\21\5\0\5\21\1\u0126" +
"\5\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\1\u0127\12\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\13\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\2\21\1\u0128\3\21" +
"\11\0\1\u0129\126\0\3\u011c\14\0\1\u012a\6\0\1\u012b" +
"\10\0\1\u011c\77\0\1\u011c\1\0\1\u011c\14\0\1\u012a" +
"\6\0\1\u012b\10\0\1\u011c\103\0\1\u012c\1\u012d\135\0" +
"\3\21\1\u012e\7\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\2\21\1\0\6\21\7\0\1\324\134\0\11\21\1\u012f" +
"\1\21\1\0\6\21\1\0\7\21\2\0\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\4\21\1\u0130\6\21\1\0\6\21\1\0" +
"\7\21\2\0\1\21\1\0\1\21\1\0\1\21\1\0" +
"\24\21\33\0\2\21\1\0\6\21\5\0\13\21\1\0" +
"\6\21\1\0\7\21\2\0\1\21\1\0\1\21\1\0" +
"\1\21\1\0\24\21\33\0\2\21\1\0\1\u0131\5\21" +
"\5\0\4\21\1\u0132\6\21\1\0\6\21\1\0\7\21" +
"\2\0\1\21\1\0\1\21\1\0\1\21\1\0\24\21" +
"\33\0\2\21\1\0\6\21\5\0\3\21\1\u0133\7\21" +
"\1\0\6\21\1\0\7\21\2\0\1\21\1\0\1\21" +
"\1\0\1\21\1\0\24\21\33\0\2\21\1\0\6\21" +
"\122\0\1\u0134\142\0\1\u0135\37\0\1\u0136\120\0\1\u0137" +
"\155\0\1\u0138\113\0\3\21\1\u0139\7\21\1\0\6\21" +
"\1\0\7\21\2\0\1\21\1\0\1\21\1\0\1\21" +
"\1\0\24\21\33\0\2\21\1\0\6\21\5\0\13\21" +
"\1\0\6\21\1\0\7\21\1\0\1\u013a\1\21\1\0" +
"\1\21\1\0\1\21\1\0\24\21\33\0\2\21\1\0" +
"\6\21\5\0\13\21\1\0\6\21\1\0\7\21\2\0" +
"\1\21\1\0\1\21\1\0\1\21\1\0\24\21\33\0" +
"\1\21\1\u013b\1\0\6\21\16\0\1\u013c\130\0\1\u013d" +
"\126\0\1\344\1\u013e\1\u011c\1\u013f\1\0\32\344\1\0" +
"\1\u013f\3\344\1\0\27\344\1\0\1\344\1\0\1\344" +
"\5\0\20\344\1\0\11\344\13\0\1\u0140\257\0\1\u0141" +
"\7\0\1\u0142\2\0\1\u0143\143\0\1\u0144\250\0\1\u0145" +
"\10\0\1\u013e\1\u011c\1\u013e\14\0\1\u012a\6\0\1\u012b" +
"\10\0\1\u013e\76\0\1\344\1\u013e\1\u011c\1\u013f\34\344" +
"\1\u013f\76\344\131\0\1\u0146\12\0\1\u0147\265\0\1\u0148" +
"\35\0\1\u0149\112\0\1\u014a\134\0\1\u014b\161\0\1\u014c" +
"\120\0\1\u014d\257\0\1\u014e\136\0\1\u014f\13\0\1\u0150" +
"\137\0\1\u0151\136\0\1\u0152\257\0\1\u0153\21\0\1\u0154" +
"\136\0\1\u0155\244\0\1\u0156\135\0\1\u0157\32\0\1\u0158" +
"\134\0\1\u0159\136\0\1\u015a\140\0\1\u015b\130\0\1\u015c" +
"\257\0\1\u015d\136\0\1\u015e\22\0\1\u015f\130\0\1\u0160" +
"\137\0\1\u0161\251\0\1\u0162\14\0\1\u011b\1\u011c\134\0";
private static int[] zzUnpackTrans() {
int[] result = new int[24795];
int[] result = new int[27550];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@ -593,15 +698,15 @@ public class _HaskellLexer implements FlexLexer {
"\20\1\4\11\1\1\1\11\1\1\2\11\3\1\1\11" +
"\13\1\1\0\1\1\1\11\5\0\15\1\3\0\1\1" +
"\5\0\1\1\1\11\4\0\1\11\5\1\5\11\3\0" +
"\1\11\3\1\6\0\14\1\1\0\1\1\1\0\6\1" +
"\1\11\17\0\1\1\20\0\2\11\4\1\1\11\2\1" +
"\7\0\13\1\1\0\3\1\27\0\5\1\3\0\10\1" +
"\1\11\4\1\6\0\14\1\1\0\1\1\1\0\6\1" +
"\1\11\17\0\1\1\20\0\2\11\4\1\1\11\21\1" +
"\7\0\13\1\1\0\3\1\27\0\22\1\3\0\10\1" +
"\4\0\2\1\1\0\10\1\5\0\6\1\2\0\1\1" +
"\2\0\1\1\1\0\1\1\2\0\2\1\23\0\1\11" +
"\2\0\1\11\5\0\3\11\3\0\1\1";
private static int[] zzUnpackAttribute() {
int[] result = new int[325];
int[] result = new int[354];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@ -935,7 +1040,7 @@ public class _HaskellLexer implements FlexLexer {
zzStartRead = commentStart;
return HS_NOT_TERMINATED_COMMENT;
} // fall though
case 326:
case 355:
break;
case NHADDOCK: {
int state = yystate();
@ -943,7 +1048,7 @@ public class _HaskellLexer implements FlexLexer {
zzStartRead = haddockStart;
return HS_NOT_TERMINATED_COMMENT;
} // fall though
case 327:
case 356:
break;
case QQ: {
int state = yystate();
@ -951,13 +1056,13 @@ public class _HaskellLexer implements FlexLexer {
zzStartRead = qqStart;
return HS_QUASIQUOTE;
} // fall though
case 328:
case 357:
break;
case OPTIONS_GHC: {
yybegin(YYINITIAL);
return com.intellij.psi.TokenType.BAD_CHARACTER;
} // fall though
case 329:
case 358:
break;
default:
return null;
@ -1461,14 +1566,13 @@ public class _HaskellLexer implements FlexLexer {
// fall through
case 158:
break;
case 79: {
return HS_FOREIGN_IMPORT;
}
// fall through
case 159:
break;
case 80: {
return HS_FOREIGN_EXPORT;
case 79:
{ return HS_FOREIGN_IMPORT;
}
// fall through
case 159: break;
case 80:
{ return HS_FOREIGN_EXPORT;
}
// fall through
case 160: break;