diff --git a/src/parser/LatexLexer.g4 b/src/parser/LatexLexer.g4 index 7d26edd1..3f45cca0 100644 --- a/src/parser/LatexLexer.g4 +++ b/src/parser/LatexLexer.g4 @@ -65,8 +65,8 @@ CMD_SLASH_LOG_UNDERSCORE_SINGLE_CHAR_ID: '\\log' [ ]* '_' [a-zA-Z] ; COMMENT: '\\text{' .*? '}' -> skip ; -CMD_LEFT: '\\left' -> skip ; -CMD_RIGHT: '\\right' -> skip ; +CMD_LEFT: '\\left' '.'? -> skip ; +CMD_RIGHT: '\\right' '.'? -> skip ; DOUBLE_DOLLAR_SIGN: '$$' -> skip ; diff --git a/src/parser/LatexLexer.ts b/src/parser/LatexLexer.ts index 909adee0..98a0c0ea 100644 --- a/src/parser/LatexLexer.ts +++ b/src/parser/LatexLexer.ts @@ -138,7 +138,8 @@ export default class LatexLexer extends Lexer { null, null, null, null, null, null, null, null, null, null, null, null, - "'1'" ]; + "'1'", null, "'\\left'", + "'\\right'" ]; public static readonly symbolicNames: string[] = [ null, "L_BRACKET", "ALT_L_BRACKET", "SEMICOLON", "L_BRACE", "R_BRACE", "L_PAREN", @@ -230,7 +231,7 @@ export default class LatexLexer extends Lexer { public get modeNames(): string[] { return LatexLexer.modeNames; } - public static readonly _serializedATN: number[] = [4,0,94,1015,6,-1,6,-1, + public static readonly _serializedATN: number[] = [4,0,94,1021,6,-1,6,-1, 2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8, 2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16, 7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7, @@ -269,15 +270,15 @@ export default class LatexLexer extends Lexer { 12,44,504,9,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,5,45,515,8, 45,10,45,12,45,518,9,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,46,1, 46,1,46,5,46,531,8,46,10,46,12,46,534,9,46,1,46,1,46,1,46,1,46,1,47,1,47, - 1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1, - 48,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,51,1,51,1,52,1,52,1,53,1,53,1,54, - 1,54,1,55,1,55,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,58,1,58,1,59,1, - 59,1,59,1,60,1,60,1,60,1,61,4,61,591,8,61,11,61,12,61,592,1,61,1,61,5,61, - 597,8,61,10,61,12,61,600,9,61,1,61,3,61,603,8,61,1,61,1,61,4,61,607,8,61, - 11,61,12,61,608,1,61,3,61,612,8,61,1,61,4,61,615,8,61,11,61,12,61,616,1, - 61,3,61,620,8,61,3,61,622,8,61,1,62,1,62,1,63,1,63,5,63,628,8,63,10,63, - 12,63,631,9,63,1,64,1,64,3,64,635,8,64,1,64,4,64,638,8,64,11,64,12,64,639, - 1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1, + 1,47,1,47,1,47,1,47,1,47,3,47,547,8,47,1,47,1,47,1,48,1,48,1,48,1,48,1, + 48,1,48,1,48,1,48,3,48,559,8,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,50, + 1,50,1,51,1,51,1,52,1,52,1,53,1,53,1,54,1,54,1,55,1,55,1,56,1,56,1,56,1, + 56,1,57,1,57,1,57,1,57,1,58,1,58,1,59,1,59,1,59,1,60,1,60,1,60,1,61,4,61, + 597,8,61,11,61,12,61,598,1,61,1,61,5,61,603,8,61,10,61,12,61,606,9,61,1, + 61,3,61,609,8,61,1,61,1,61,4,61,613,8,61,11,61,12,61,614,1,61,3,61,618, + 8,61,1,61,4,61,621,8,61,11,61,12,61,622,1,61,3,61,626,8,61,3,61,628,8,61, + 1,62,1,62,1,63,1,63,5,63,634,8,63,10,63,12,63,637,9,63,1,64,1,64,3,64,641, + 8,64,1,64,4,64,644,8,64,11,64,12,64,645,1,65,1,65,1,65,1,65,1,65,1,65,1, 65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65, 1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1, 65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65, @@ -286,287 +287,290 @@ export default class LatexLexer extends Lexer { 1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1, 65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65, 1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1, - 65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,3,65,782,8,65,1,66,1,66, - 1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1, - 67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,68, - 1,68,1,69,1,69,1,69,1,70,5,70,820,8,70,10,70,12,70,823,9,70,1,70,1,70,1, - 70,1,70,4,70,829,8,70,11,70,12,70,830,1,70,1,70,5,70,835,8,70,10,70,12, - 70,838,9,70,1,70,1,70,3,70,842,8,70,1,71,1,71,1,71,1,71,1,72,1,72,3,72, - 850,8,72,1,72,3,72,853,8,72,1,73,4,73,856,8,73,11,73,12,73,857,1,73,1,73, - 1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,77,1,77,1, - 77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79, - 1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1,80,1,80,5,80,901,8,80,10,80,12, - 80,904,9,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82, - 1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,85,1,85,1, - 86,1,86,5,86,934,8,86,10,86,12,86,937,9,86,1,87,1,87,1,88,1,88,1,89,1,89, - 1,90,1,90,1,91,1,91,1,92,3,92,950,8,92,1,92,4,92,953,8,92,11,92,12,92,954, - 1,92,1,92,5,92,959,8,92,10,92,12,92,962,9,92,1,92,3,92,965,8,92,1,92,1, - 92,4,92,969,8,92,11,92,12,92,970,1,92,3,92,974,8,92,1,92,4,92,977,8,92, - 11,92,12,92,978,3,92,981,8,92,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1, - 94,1,94,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,96,4,96,1003,8,96, - 11,96,12,96,1004,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,532,0,99, - 2,1,4,2,6,3,8,4,10,5,12,6,14,7,16,8,18,9,20,10,22,11,24,12,26,13,28,14, - 30,15,32,16,34,17,36,18,38,19,40,20,42,21,44,22,46,23,48,24,50,25,52,26, - 54,27,56,28,58,29,60,30,62,31,64,32,66,33,68,34,70,35,72,36,74,37,76,38, - 78,39,80,40,82,41,84,42,86,43,88,44,90,45,92,46,94,47,96,48,98,49,100,50, - 102,51,104,52,106,53,108,54,110,55,112,56,114,57,116,58,118,59,120,60,122, - 61,124,62,126,0,128,0,130,0,132,0,134,63,136,64,138,65,140,66,142,67,144, - 68,146,69,148,70,150,71,152,72,154,73,156,74,158,75,160,76,162,77,164,78, - 166,79,168,80,170,81,172,82,174,83,176,84,178,85,180,86,182,87,184,88,186, - 89,188,0,190,90,192,91,194,92,196,93,198,94,2,0,1,8,1,0,32,32,1,0,48,57, - 2,0,65,90,97,122,1,0,115,115,3,0,48,57,65,90,97,122,2,0,69,69,101,101,2, - 0,43,43,45,45,3,0,9,10,13,13,32,32,1084,0,2,1,0,0,0,0,4,1,0,0,0,0,6,1,0, - 0,0,0,8,1,0,0,0,0,10,1,0,0,0,0,12,1,0,0,0,0,14,1,0,0,0,0,16,1,0,0,0,0,18, - 1,0,0,0,0,20,1,0,0,0,0,22,1,0,0,0,0,24,1,0,0,0,0,26,1,0,0,0,0,28,1,0,0, - 0,0,30,1,0,0,0,0,32,1,0,0,0,0,34,1,0,0,0,0,36,1,0,0,0,0,38,1,0,0,0,0,40, - 1,0,0,0,0,42,1,0,0,0,0,44,1,0,0,0,0,46,1,0,0,0,0,48,1,0,0,0,0,50,1,0,0, - 0,0,52,1,0,0,0,0,54,1,0,0,0,0,56,1,0,0,0,0,58,1,0,0,0,0,60,1,0,0,0,0,62, - 1,0,0,0,0,64,1,0,0,0,0,66,1,0,0,0,0,68,1,0,0,0,0,70,1,0,0,0,0,72,1,0,0, - 0,0,74,1,0,0,0,0,76,1,0,0,0,0,78,1,0,0,0,0,80,1,0,0,0,0,82,1,0,0,0,0,84, - 1,0,0,0,0,86,1,0,0,0,0,88,1,0,0,0,0,90,1,0,0,0,0,92,1,0,0,0,0,94,1,0,0, - 0,0,96,1,0,0,0,0,98,1,0,0,0,0,100,1,0,0,0,0,102,1,0,0,0,0,104,1,0,0,0,0, - 106,1,0,0,0,0,108,1,0,0,0,0,110,1,0,0,0,0,112,1,0,0,0,0,114,1,0,0,0,0,116, - 1,0,0,0,0,118,1,0,0,0,0,120,1,0,0,0,0,122,1,0,0,0,0,124,1,0,0,0,0,134,1, - 0,0,0,0,136,1,0,0,0,0,138,1,0,0,0,0,140,1,0,0,0,0,142,1,0,0,0,0,144,1,0, - 0,0,0,146,1,0,0,0,0,148,1,0,0,0,0,150,1,0,0,0,0,152,1,0,0,0,0,154,1,0,0, - 0,1,156,1,0,0,0,1,158,1,0,0,0,1,160,1,0,0,0,1,162,1,0,0,0,1,164,1,0,0,0, - 1,166,1,0,0,0,1,168,1,0,0,0,1,170,1,0,0,0,1,172,1,0,0,0,1,174,1,0,0,0,1, - 176,1,0,0,0,1,178,1,0,0,0,1,180,1,0,0,0,1,182,1,0,0,0,1,184,1,0,0,0,1,186, - 1,0,0,0,1,190,1,0,0,0,1,192,1,0,0,0,1,194,1,0,0,0,1,196,1,0,0,0,1,198,1, - 0,0,0,2,200,1,0,0,0,4,204,1,0,0,0,6,214,1,0,0,0,8,216,1,0,0,0,10,218,1, - 0,0,0,12,220,1,0,0,0,14,222,1,0,0,0,16,224,1,0,0,0,18,233,1,0,0,0,20,235, - 1,0,0,0,22,237,1,0,0,0,24,241,1,0,0,0,26,246,1,0,0,0,28,259,1,0,0,0,30, - 273,1,0,0,0,32,287,1,0,0,0,34,295,1,0,0,0,36,301,1,0,0,0,38,316,1,0,0,0, - 40,322,1,0,0,0,42,329,1,0,0,0,44,335,1,0,0,0,46,349,1,0,0,0,48,354,1,0, - 0,0,50,362,1,0,0,0,52,375,1,0,0,0,54,389,1,0,0,0,56,391,1,0,0,0,58,409, - 1,0,0,0,60,413,1,0,0,0,62,417,1,0,0,0,64,421,1,0,0,0,66,425,1,0,0,0,68, - 429,1,0,0,0,70,433,1,0,0,0,72,440,1,0,0,0,74,447,1,0,0,0,76,454,1,0,0,0, - 78,459,1,0,0,0,80,464,1,0,0,0,82,469,1,0,0,0,84,474,1,0,0,0,86,477,1,0, - 0,0,88,481,1,0,0,0,90,494,1,0,0,0,92,508,1,0,0,0,94,522,1,0,0,0,96,539, - 1,0,0,0,98,547,1,0,0,0,100,556,1,0,0,0,102,561,1,0,0,0,104,563,1,0,0,0, - 106,565,1,0,0,0,108,567,1,0,0,0,110,569,1,0,0,0,112,571,1,0,0,0,114,573, - 1,0,0,0,116,577,1,0,0,0,118,581,1,0,0,0,120,583,1,0,0,0,122,586,1,0,0,0, - 124,621,1,0,0,0,126,623,1,0,0,0,128,625,1,0,0,0,130,632,1,0,0,0,132,641, - 1,0,0,0,134,783,1,0,0,0,136,799,1,0,0,0,138,813,1,0,0,0,140,815,1,0,0,0, - 142,841,1,0,0,0,144,843,1,0,0,0,146,849,1,0,0,0,148,855,1,0,0,0,150,861, - 1,0,0,0,152,866,1,0,0,0,154,871,1,0,0,0,156,873,1,0,0,0,158,877,1,0,0,0, - 160,887,1,0,0,0,162,893,1,0,0,0,164,908,1,0,0,0,166,914,1,0,0,0,168,921, - 1,0,0,0,170,927,1,0,0,0,172,929,1,0,0,0,174,931,1,0,0,0,176,938,1,0,0,0, - 178,940,1,0,0,0,180,942,1,0,0,0,182,944,1,0,0,0,184,946,1,0,0,0,186,980, - 1,0,0,0,188,982,1,0,0,0,190,984,1,0,0,0,192,992,1,0,0,0,194,1002,1,0,0, - 0,196,1008,1,0,0,0,198,1013,1,0,0,0,200,201,5,91,0,0,201,202,1,0,0,0,202, - 203,6,0,0,0,203,3,1,0,0,0,204,205,5,92,0,0,205,206,5,108,0,0,206,207,5, - 98,0,0,207,208,5,114,0,0,208,209,5,97,0,0,209,210,5,99,0,0,210,211,5,107, - 0,0,211,212,1,0,0,0,212,213,6,1,0,0,213,5,1,0,0,0,214,215,5,59,0,0,215, - 7,1,0,0,0,216,217,5,123,0,0,217,9,1,0,0,0,218,219,5,125,0,0,219,11,1,0, - 0,0,220,221,5,40,0,0,221,13,1,0,0,0,222,223,5,41,0,0,223,15,1,0,0,0,224, - 225,5,124,0,0,225,17,1,0,0,0,226,227,5,124,0,0,227,234,5,124,0,0,228,229, - 5,92,0,0,229,230,5,86,0,0,230,231,5,101,0,0,231,232,5,114,0,0,232,234,5, - 116,0,0,233,226,1,0,0,0,233,228,1,0,0,0,234,19,1,0,0,0,235,236,5,95,0,0, - 236,21,1,0,0,0,237,238,5,92,0,0,238,239,5,112,0,0,239,240,5,105,0,0,240, - 23,1,0,0,0,241,242,5,92,0,0,242,243,5,105,0,0,243,244,5,110,0,0,244,245, - 5,116,0,0,245,25,1,0,0,0,246,247,5,92,0,0,247,248,5,105,0,0,248,249,5,110, - 0,0,249,250,5,116,0,0,250,254,1,0,0,0,251,253,7,0,0,0,252,251,1,0,0,0,253, - 256,1,0,0,0,254,252,1,0,0,0,254,255,1,0,0,0,255,257,1,0,0,0,256,254,1,0, - 0,0,257,258,5,95,0,0,258,27,1,0,0,0,259,260,5,92,0,0,260,261,5,105,0,0, - 261,262,5,110,0,0,262,263,5,116,0,0,263,267,1,0,0,0,264,266,7,0,0,0,265, - 264,1,0,0,0,266,269,1,0,0,0,267,265,1,0,0,0,267,268,1,0,0,0,268,270,1,0, - 0,0,269,267,1,0,0,0,270,271,5,95,0,0,271,272,7,1,0,0,272,29,1,0,0,0,273, - 274,5,92,0,0,274,275,5,105,0,0,275,276,5,110,0,0,276,277,5,116,0,0,277, - 281,1,0,0,0,278,280,7,0,0,0,279,278,1,0,0,0,280,283,1,0,0,0,281,279,1,0, - 0,0,281,282,1,0,0,0,282,284,1,0,0,0,283,281,1,0,0,0,284,285,5,95,0,0,285, - 286,7,2,0,0,286,31,1,0,0,0,287,288,5,92,0,0,288,289,5,109,0,0,289,290,5, - 97,0,0,290,291,5,116,0,0,291,292,5,104,0,0,292,293,5,114,0,0,293,294,5, - 109,0,0,294,33,1,0,0,0,295,296,5,92,0,0,296,297,5,102,0,0,297,298,5,114, - 0,0,298,299,5,97,0,0,299,300,5,99,0,0,300,35,1,0,0,0,301,302,5,92,0,0,302, - 303,5,102,0,0,303,304,5,114,0,0,304,305,5,97,0,0,305,306,5,99,0,0,306,310, - 1,0,0,0,307,309,7,0,0,0,308,307,1,0,0,0,309,312,1,0,0,0,310,308,1,0,0,0, - 310,311,1,0,0,0,311,313,1,0,0,0,312,310,1,0,0,0,313,314,7,1,0,0,314,315, - 7,1,0,0,315,37,1,0,0,0,316,317,5,92,0,0,317,318,5,99,0,0,318,319,5,100, - 0,0,319,320,5,111,0,0,320,321,5,116,0,0,321,39,1,0,0,0,322,323,5,92,0,0, - 323,324,5,116,0,0,324,325,5,105,0,0,325,326,5,109,0,0,326,327,5,101,0,0, - 327,328,5,115,0,0,328,41,1,0,0,0,329,330,5,92,0,0,330,331,5,115,0,0,331, - 332,5,113,0,0,332,333,5,114,0,0,333,334,5,116,0,0,334,43,1,0,0,0,335,336, - 5,92,0,0,336,337,5,115,0,0,337,338,5,113,0,0,338,339,5,114,0,0,339,340, - 5,116,0,0,340,344,1,0,0,0,341,343,7,0,0,0,342,341,1,0,0,0,343,346,1,0,0, - 0,344,342,1,0,0,0,344,345,1,0,0,0,345,347,1,0,0,0,346,344,1,0,0,0,347,348, - 7,1,0,0,348,45,1,0,0,0,349,350,5,92,0,0,350,351,5,115,0,0,351,352,5,105, - 0,0,352,353,5,109,0,0,353,47,1,0,0,0,354,355,5,92,0,0,355,356,5,97,0,0, - 356,357,5,112,0,0,357,358,5,112,0,0,358,359,5,114,0,0,359,360,5,111,0,0, - 360,361,5,120,0,0,361,49,1,0,0,0,362,363,5,92,0,0,363,364,5,112,0,0,364, - 365,5,108,0,0,365,366,5,97,0,0,366,367,5,99,0,0,367,368,5,101,0,0,368,369, - 5,104,0,0,369,370,5,111,0,0,370,371,5,108,0,0,371,372,5,100,0,0,372,373, - 5,101,0,0,373,374,5,114,0,0,374,51,1,0,0,0,375,376,5,94,0,0,376,377,5,123, - 0,0,377,378,5,92,0,0,378,379,5,109,0,0,379,380,5,97,0,0,380,381,5,116,0, - 0,381,382,5,104,0,0,382,383,5,114,0,0,383,384,5,109,0,0,384,385,5,123,0, - 0,385,386,5,84,0,0,386,387,5,125,0,0,387,388,5,125,0,0,388,53,1,0,0,0,389, - 390,5,92,0,0,390,55,1,0,0,0,391,392,5,97,0,0,392,393,5,115,0,0,393,397, - 1,0,0,0,394,398,5,32,0,0,395,396,5,92,0,0,396,398,5,58,0,0,397,394,1,0, - 0,0,397,395,1,0,0,0,398,399,1,0,0,0,399,397,1,0,0,0,399,400,1,0,0,0,400, - 401,1,0,0,0,401,402,5,108,0,0,402,403,5,105,0,0,403,404,5,110,0,0,404,405, - 5,101,0,0,405,407,1,0,0,0,406,408,7,3,0,0,407,406,1,0,0,0,407,408,1,0,0, - 0,408,57,1,0,0,0,409,410,5,115,0,0,410,411,5,105,0,0,411,412,5,110,0,0, - 412,59,1,0,0,0,413,414,5,99,0,0,414,415,5,111,0,0,415,416,5,115,0,0,416, - 61,1,0,0,0,417,418,5,116,0,0,418,419,5,97,0,0,419,420,5,110,0,0,420,63, - 1,0,0,0,421,422,5,99,0,0,422,423,5,111,0,0,423,424,5,116,0,0,424,65,1,0, - 0,0,425,426,5,115,0,0,426,427,5,101,0,0,427,428,5,99,0,0,428,67,1,0,0,0, - 429,430,5,99,0,0,430,431,5,115,0,0,431,432,5,99,0,0,432,69,1,0,0,0,433, - 434,5,97,0,0,434,435,5,114,0,0,435,436,5,99,0,0,436,437,5,115,0,0,437,438, - 5,105,0,0,438,439,5,110,0,0,439,71,1,0,0,0,440,441,5,97,0,0,441,442,5,114, - 0,0,442,443,5,99,0,0,443,444,5,99,0,0,444,445,5,111,0,0,445,446,5,115,0, - 0,446,73,1,0,0,0,447,448,5,97,0,0,448,449,5,114,0,0,449,450,5,99,0,0,450, - 451,5,116,0,0,451,452,5,97,0,0,452,453,5,110,0,0,453,75,1,0,0,0,454,455, - 5,115,0,0,455,456,5,105,0,0,456,457,5,110,0,0,457,458,5,104,0,0,458,77, - 1,0,0,0,459,460,5,99,0,0,460,461,5,111,0,0,461,462,5,115,0,0,462,463,5, - 104,0,0,463,79,1,0,0,0,464,465,5,116,0,0,465,466,5,97,0,0,466,467,5,110, - 0,0,467,468,5,104,0,0,468,81,1,0,0,0,469,470,5,99,0,0,470,471,5,111,0,0, - 471,472,5,116,0,0,472,473,5,104,0,0,473,83,1,0,0,0,474,475,5,108,0,0,475, - 476,5,110,0,0,476,85,1,0,0,0,477,478,5,108,0,0,478,479,5,111,0,0,479,480, - 5,103,0,0,480,87,1,0,0,0,481,482,5,92,0,0,482,483,5,108,0,0,483,484,5,111, - 0,0,484,485,5,103,0,0,485,489,1,0,0,0,486,488,7,0,0,0,487,486,1,0,0,0,488, - 491,1,0,0,0,489,487,1,0,0,0,489,490,1,0,0,0,490,492,1,0,0,0,491,489,1,0, - 0,0,492,493,5,95,0,0,493,89,1,0,0,0,494,495,5,92,0,0,495,496,5,108,0,0, - 496,497,5,111,0,0,497,498,5,103,0,0,498,502,1,0,0,0,499,501,7,0,0,0,500, - 499,1,0,0,0,501,504,1,0,0,0,502,500,1,0,0,0,502,503,1,0,0,0,503,505,1,0, - 0,0,504,502,1,0,0,0,505,506,5,95,0,0,506,507,7,1,0,0,507,91,1,0,0,0,508, - 509,5,92,0,0,509,510,5,108,0,0,510,511,5,111,0,0,511,512,5,103,0,0,512, - 516,1,0,0,0,513,515,7,0,0,0,514,513,1,0,0,0,515,518,1,0,0,0,516,514,1,0, - 0,0,516,517,1,0,0,0,517,519,1,0,0,0,518,516,1,0,0,0,519,520,5,95,0,0,520, - 521,7,2,0,0,521,93,1,0,0,0,522,523,5,92,0,0,523,524,5,116,0,0,524,525,5, - 101,0,0,525,526,5,120,0,0,526,527,5,116,0,0,527,528,5,123,0,0,528,532,1, - 0,0,0,529,531,9,0,0,0,530,529,1,0,0,0,531,534,1,0,0,0,532,533,1,0,0,0,532, - 530,1,0,0,0,533,535,1,0,0,0,534,532,1,0,0,0,535,536,5,125,0,0,536,537,1, - 0,0,0,537,538,6,46,1,0,538,95,1,0,0,0,539,540,5,92,0,0,540,541,5,108,0, - 0,541,542,5,101,0,0,542,543,5,102,0,0,543,544,5,116,0,0,544,545,1,0,0,0, - 545,546,6,47,1,0,546,97,1,0,0,0,547,548,5,92,0,0,548,549,5,114,0,0,549, - 550,5,105,0,0,550,551,5,103,0,0,551,552,5,104,0,0,552,553,5,116,0,0,553, - 554,1,0,0,0,554,555,6,48,1,0,555,99,1,0,0,0,556,557,5,36,0,0,557,558,5, - 36,0,0,558,559,1,0,0,0,559,560,6,49,1,0,560,101,1,0,0,0,561,562,5,43,0, - 0,562,103,1,0,0,0,563,564,5,45,0,0,564,105,1,0,0,0,565,566,5,94,0,0,566, - 107,1,0,0,0,567,568,5,61,0,0,568,109,1,0,0,0,569,570,5,60,0,0,570,111,1, - 0,0,0,571,572,5,62,0,0,572,113,1,0,0,0,573,574,5,92,0,0,574,575,5,108,0, - 0,575,576,5,101,0,0,576,115,1,0,0,0,577,578,5,92,0,0,578,579,5,103,0,0, - 579,580,5,101,0,0,580,117,1,0,0,0,581,582,5,44,0,0,582,119,1,0,0,0,583, - 584,5,94,0,0,584,585,7,1,0,0,585,121,1,0,0,0,586,587,5,94,0,0,587,588,7, - 2,0,0,588,123,1,0,0,0,589,591,3,126,62,0,590,589,1,0,0,0,591,592,1,0,0, - 0,592,590,1,0,0,0,592,593,1,0,0,0,593,594,1,0,0,0,594,598,5,46,0,0,595, - 597,3,126,62,0,596,595,1,0,0,0,597,600,1,0,0,0,598,596,1,0,0,0,598,599, - 1,0,0,0,599,602,1,0,0,0,600,598,1,0,0,0,601,603,3,130,64,0,602,601,1,0, - 0,0,602,603,1,0,0,0,603,622,1,0,0,0,604,606,5,46,0,0,605,607,3,126,62,0, - 606,605,1,0,0,0,607,608,1,0,0,0,608,606,1,0,0,0,608,609,1,0,0,0,609,611, - 1,0,0,0,610,612,3,130,64,0,611,610,1,0,0,0,611,612,1,0,0,0,612,622,1,0, - 0,0,613,615,3,126,62,0,614,613,1,0,0,0,615,616,1,0,0,0,616,614,1,0,0,0, - 616,617,1,0,0,0,617,619,1,0,0,0,618,620,3,130,64,0,619,618,1,0,0,0,619, - 620,1,0,0,0,620,622,1,0,0,0,621,590,1,0,0,0,621,604,1,0,0,0,621,614,1,0, - 0,0,622,125,1,0,0,0,623,624,7,1,0,0,624,127,1,0,0,0,625,629,7,2,0,0,626, - 628,7,4,0,0,627,626,1,0,0,0,628,631,1,0,0,0,629,627,1,0,0,0,629,630,1,0, - 0,0,630,129,1,0,0,0,631,629,1,0,0,0,632,634,7,5,0,0,633,635,7,6,0,0,634, - 633,1,0,0,0,634,635,1,0,0,0,635,637,1,0,0,0,636,638,3,126,62,0,637,636, - 1,0,0,0,638,639,1,0,0,0,639,637,1,0,0,0,639,640,1,0,0,0,640,131,1,0,0,0, - 641,781,5,92,0,0,642,643,5,97,0,0,643,644,5,108,0,0,644,645,5,112,0,0,645, - 646,5,104,0,0,646,782,5,97,0,0,647,648,5,98,0,0,648,649,5,101,0,0,649,650, - 5,116,0,0,650,782,5,97,0,0,651,652,5,103,0,0,652,653,5,97,0,0,653,654,5, - 109,0,0,654,655,5,109,0,0,655,782,5,97,0,0,656,657,5,100,0,0,657,658,5, - 101,0,0,658,659,5,108,0,0,659,660,5,116,0,0,660,782,5,97,0,0,661,662,5, - 101,0,0,662,663,5,112,0,0,663,664,5,115,0,0,664,665,5,105,0,0,665,666,5, - 108,0,0,666,667,5,111,0,0,667,782,5,110,0,0,668,669,5,122,0,0,669,670,5, - 101,0,0,670,671,5,116,0,0,671,782,5,97,0,0,672,673,5,101,0,0,673,674,5, - 116,0,0,674,782,5,97,0,0,675,676,5,116,0,0,676,677,5,104,0,0,677,678,5, - 101,0,0,678,679,5,116,0,0,679,782,5,97,0,0,680,681,5,105,0,0,681,682,5, - 111,0,0,682,683,5,116,0,0,683,782,5,97,0,0,684,685,5,107,0,0,685,686,5, - 97,0,0,686,687,5,112,0,0,687,688,5,112,0,0,688,782,5,97,0,0,689,690,5,108, - 0,0,690,691,5,97,0,0,691,692,5,109,0,0,692,693,5,98,0,0,693,694,5,100,0, - 0,694,782,5,97,0,0,695,696,5,109,0,0,696,782,5,117,0,0,697,698,5,110,0, - 0,698,782,5,117,0,0,699,700,5,120,0,0,700,782,5,105,0,0,701,702,5,114,0, - 0,702,703,5,104,0,0,703,782,5,111,0,0,704,705,5,115,0,0,705,706,5,105,0, - 0,706,707,5,103,0,0,707,708,5,109,0,0,708,782,5,97,0,0,709,710,5,116,0, - 0,710,711,5,97,0,0,711,782,5,117,0,0,712,713,5,117,0,0,713,714,5,112,0, - 0,714,715,5,115,0,0,715,716,5,105,0,0,716,717,5,108,0,0,717,718,5,111,0, - 0,718,782,5,110,0,0,719,720,5,112,0,0,720,721,5,104,0,0,721,782,5,105,0, - 0,722,723,5,99,0,0,723,724,5,104,0,0,724,782,5,105,0,0,725,726,5,112,0, - 0,726,727,5,115,0,0,727,782,5,105,0,0,728,729,5,111,0,0,729,730,5,109,0, - 0,730,731,5,101,0,0,731,732,5,103,0,0,732,782,5,97,0,0,733,734,5,71,0,0, - 734,735,5,97,0,0,735,736,5,109,0,0,736,737,5,109,0,0,737,782,5,97,0,0,738, - 739,5,68,0,0,739,740,5,101,0,0,740,741,5,108,0,0,741,742,5,116,0,0,742, - 782,5,97,0,0,743,744,5,84,0,0,744,745,5,104,0,0,745,746,5,101,0,0,746,747, - 5,116,0,0,747,782,5,97,0,0,748,749,5,76,0,0,749,750,5,97,0,0,750,751,5, - 109,0,0,751,752,5,98,0,0,752,753,5,100,0,0,753,782,5,97,0,0,754,755,5,88, - 0,0,755,782,5,105,0,0,756,757,5,80,0,0,757,782,5,105,0,0,758,759,5,83,0, - 0,759,760,5,105,0,0,760,761,5,103,0,0,761,762,5,109,0,0,762,782,5,97,0, - 0,763,764,5,85,0,0,764,765,5,112,0,0,765,766,5,115,0,0,766,767,5,105,0, - 0,767,768,5,108,0,0,768,769,5,111,0,0,769,782,5,110,0,0,770,771,5,80,0, - 0,771,772,5,104,0,0,772,782,5,105,0,0,773,774,5,80,0,0,774,775,5,115,0, - 0,775,782,5,105,0,0,776,777,5,79,0,0,777,778,5,109,0,0,778,779,5,101,0, - 0,779,780,5,103,0,0,780,782,5,97,0,0,781,642,1,0,0,0,781,647,1,0,0,0,781, - 651,1,0,0,0,781,656,1,0,0,0,781,661,1,0,0,0,781,668,1,0,0,0,781,672,1,0, - 0,0,781,675,1,0,0,0,781,680,1,0,0,0,781,684,1,0,0,0,781,689,1,0,0,0,781, - 695,1,0,0,0,781,697,1,0,0,0,781,699,1,0,0,0,781,701,1,0,0,0,781,704,1,0, - 0,0,781,709,1,0,0,0,781,712,1,0,0,0,781,719,1,0,0,0,781,722,1,0,0,0,781, - 725,1,0,0,0,781,728,1,0,0,0,781,733,1,0,0,0,781,738,1,0,0,0,781,743,1,0, - 0,0,781,748,1,0,0,0,781,754,1,0,0,0,781,756,1,0,0,0,781,758,1,0,0,0,781, - 763,1,0,0,0,781,770,1,0,0,0,781,773,1,0,0,0,781,776,1,0,0,0,782,133,1,0, - 0,0,783,784,5,92,0,0,784,785,5,98,0,0,785,786,5,101,0,0,786,787,5,103,0, - 0,787,788,5,105,0,0,788,789,5,110,0,0,789,790,5,123,0,0,790,791,5,98,0, - 0,791,792,5,109,0,0,792,793,5,97,0,0,793,794,5,116,0,0,794,795,5,114,0, - 0,795,796,5,105,0,0,796,797,5,120,0,0,797,798,5,125,0,0,798,135,1,0,0,0, - 799,800,5,92,0,0,800,801,5,101,0,0,801,802,5,110,0,0,802,803,5,100,0,0, - 803,804,5,123,0,0,804,805,5,98,0,0,805,806,5,109,0,0,806,807,5,97,0,0,807, - 808,5,116,0,0,808,809,5,114,0,0,809,810,5,105,0,0,810,811,5,120,0,0,811, - 812,5,125,0,0,812,137,1,0,0,0,813,814,5,38,0,0,814,139,1,0,0,0,815,816, - 5,92,0,0,816,817,5,92,0,0,817,141,1,0,0,0,818,820,7,0,0,0,819,818,1,0,0, - 0,820,823,1,0,0,0,821,819,1,0,0,0,821,822,1,0,0,0,822,824,1,0,0,0,823,821, - 1,0,0,0,824,825,5,95,0,0,825,826,5,123,0,0,826,828,1,0,0,0,827,829,7,4, - 0,0,828,827,1,0,0,0,829,830,1,0,0,0,830,828,1,0,0,0,830,831,1,0,0,0,831, - 832,1,0,0,0,832,842,5,125,0,0,833,835,7,0,0,0,834,833,1,0,0,0,835,838,1, - 0,0,0,836,834,1,0,0,0,836,837,1,0,0,0,837,839,1,0,0,0,838,836,1,0,0,0,839, - 840,5,95,0,0,840,842,7,4,0,0,841,821,1,0,0,0,841,836,1,0,0,0,842,143,1, - 0,0,0,843,844,5,94,0,0,844,845,7,2,0,0,845,846,3,142,70,0,846,145,1,0,0, - 0,847,850,3,128,63,0,848,850,3,132,65,0,849,847,1,0,0,0,849,848,1,0,0,0, - 850,852,1,0,0,0,851,853,3,142,70,0,852,851,1,0,0,0,852,853,1,0,0,0,853, - 147,1,0,0,0,854,856,7,7,0,0,855,854,1,0,0,0,856,857,1,0,0,0,857,855,1,0, - 0,0,857,858,1,0,0,0,858,859,1,0,0,0,859,860,6,73,1,0,860,149,1,0,0,0,861, - 862,5,92,0,0,862,863,5,32,0,0,863,864,1,0,0,0,864,865,6,74,1,0,865,151, - 1,0,0,0,866,867,5,92,0,0,867,868,5,58,0,0,868,869,1,0,0,0,869,870,6,75, - 1,0,870,153,1,0,0,0,871,872,9,0,0,0,872,155,1,0,0,0,873,874,5,93,0,0,874, - 875,1,0,0,0,875,876,6,77,2,0,876,157,1,0,0,0,877,878,5,92,0,0,878,879,5, - 114,0,0,879,880,5,98,0,0,880,881,5,114,0,0,881,882,5,97,0,0,882,883,5,99, - 0,0,883,884,5,107,0,0,884,885,1,0,0,0,885,886,6,78,2,0,886,159,1,0,0,0, - 887,888,5,92,0,0,888,889,5,102,0,0,889,890,5,114,0,0,890,891,5,97,0,0,891, - 892,5,99,0,0,892,161,1,0,0,0,893,894,5,92,0,0,894,895,5,102,0,0,895,896, - 5,114,0,0,896,897,5,97,0,0,897,898,5,99,0,0,898,902,1,0,0,0,899,901,7,0, - 0,0,900,899,1,0,0,0,901,904,1,0,0,0,902,900,1,0,0,0,902,903,1,0,0,0,903, - 905,1,0,0,0,904,902,1,0,0,0,905,906,7,1,0,0,906,907,7,1,0,0,907,163,1,0, - 0,0,908,909,5,92,0,0,909,910,5,99,0,0,910,911,5,100,0,0,911,912,5,111,0, - 0,912,913,5,116,0,0,913,165,1,0,0,0,914,915,5,92,0,0,915,916,5,116,0,0, - 916,917,5,105,0,0,917,918,5,109,0,0,918,919,5,101,0,0,919,920,5,115,0,0, - 920,167,1,0,0,0,921,922,5,92,0,0,922,923,5,115,0,0,923,924,5,113,0,0,924, - 925,5,114,0,0,925,926,5,116,0,0,926,169,1,0,0,0,927,928,5,44,0,0,928,171, - 1,0,0,0,929,930,5,94,0,0,930,173,1,0,0,0,931,935,7,2,0,0,932,934,7,4,0, - 0,933,932,1,0,0,0,934,937,1,0,0,0,935,933,1,0,0,0,935,936,1,0,0,0,936,175, - 1,0,0,0,937,935,1,0,0,0,938,939,5,40,0,0,939,177,1,0,0,0,940,941,5,41,0, - 0,941,179,1,0,0,0,942,943,5,123,0,0,943,181,1,0,0,0,944,945,5,125,0,0,945, - 183,1,0,0,0,946,947,5,49,0,0,947,185,1,0,0,0,948,950,5,45,0,0,949,948,1, - 0,0,0,949,950,1,0,0,0,950,952,1,0,0,0,951,953,3,188,93,0,952,951,1,0,0, - 0,953,954,1,0,0,0,954,952,1,0,0,0,954,955,1,0,0,0,955,956,1,0,0,0,956,960, - 5,46,0,0,957,959,3,188,93,0,958,957,1,0,0,0,959,962,1,0,0,0,960,958,1,0, - 0,0,960,961,1,0,0,0,961,981,1,0,0,0,962,960,1,0,0,0,963,965,5,45,0,0,964, - 963,1,0,0,0,964,965,1,0,0,0,965,966,1,0,0,0,966,968,5,46,0,0,967,969,3, - 188,93,0,968,967,1,0,0,0,969,970,1,0,0,0,970,968,1,0,0,0,970,971,1,0,0, - 0,971,981,1,0,0,0,972,974,5,45,0,0,973,972,1,0,0,0,973,974,1,0,0,0,974, - 976,1,0,0,0,975,977,3,188,93,0,976,975,1,0,0,0,977,978,1,0,0,0,978,976, - 1,0,0,0,978,979,1,0,0,0,979,981,1,0,0,0,980,949,1,0,0,0,980,964,1,0,0,0, - 980,973,1,0,0,0,981,187,1,0,0,0,982,983,7,1,0,0,983,189,1,0,0,0,984,985, - 5,92,0,0,985,986,5,108,0,0,986,987,5,101,0,0,987,988,5,102,0,0,988,989, - 5,116,0,0,989,990,1,0,0,0,990,991,6,94,1,0,991,191,1,0,0,0,992,993,5,92, - 0,0,993,994,5,114,0,0,994,995,5,105,0,0,995,996,5,103,0,0,996,997,5,104, - 0,0,997,998,5,116,0,0,998,999,1,0,0,0,999,1000,6,95,1,0,1000,193,1,0,0, - 0,1001,1003,7,7,0,0,1002,1001,1,0,0,0,1003,1004,1,0,0,0,1004,1002,1,0,0, - 0,1004,1005,1,0,0,0,1005,1006,1,0,0,0,1006,1007,6,96,1,0,1007,195,1,0,0, - 0,1008,1009,5,92,0,0,1009,1010,5,32,0,0,1010,1011,1,0,0,0,1011,1012,6,97, - 1,0,1012,197,1,0,0,0,1013,1014,9,0,0,0,1014,199,1,0,0,0,45,0,1,233,254, - 267,281,310,344,397,399,407,489,502,516,532,592,598,602,608,611,616,619, - 621,629,634,639,781,821,830,836,841,849,852,857,902,935,949,954,960,964, - 970,973,978,980,1004,3,2,1,0,6,0,0,2,0,0]; + 65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65, + 1,65,1,65,1,65,3,65,788,8,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1, + 66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,1,67, + 1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,69,1,69,1,69,1,70,5,70,826, + 8,70,10,70,12,70,829,9,70,1,70,1,70,1,70,1,70,4,70,835,8,70,11,70,12,70, + 836,1,70,1,70,5,70,841,8,70,10,70,12,70,844,9,70,1,70,1,70,3,70,848,8,70, + 1,71,1,71,1,71,1,71,1,72,1,72,3,72,856,8,72,1,72,3,72,859,8,72,1,73,4,73, + 862,8,73,11,73,12,73,863,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1, + 75,1,75,1,75,1,76,1,76,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78, + 1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1, + 80,1,80,1,80,5,80,907,8,80,10,80,12,80,910,9,80,1,80,1,80,1,80,1,81,1,81, + 1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1, + 83,1,83,1,83,1,84,1,84,1,85,1,85,1,86,1,86,5,86,940,8,86,10,86,12,86,943, + 9,86,1,87,1,87,1,88,1,88,1,89,1,89,1,90,1,90,1,91,1,91,1,92,3,92,956,8, + 92,1,92,4,92,959,8,92,11,92,12,92,960,1,92,1,92,5,92,965,8,92,10,92,12, + 92,968,9,92,1,92,3,92,971,8,92,1,92,1,92,4,92,975,8,92,11,92,12,92,976, + 1,92,3,92,980,8,92,1,92,4,92,983,8,92,11,92,12,92,984,3,92,987,8,92,1,93, + 1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1, + 95,1,95,1,95,1,95,1,96,4,96,1009,8,96,11,96,12,96,1010,1,96,1,96,1,97,1, + 97,1,97,1,97,1,97,1,98,1,98,1,532,0,99,2,1,4,2,6,3,8,4,10,5,12,6,14,7,16, + 8,18,9,20,10,22,11,24,12,26,13,28,14,30,15,32,16,34,17,36,18,38,19,40,20, + 42,21,44,22,46,23,48,24,50,25,52,26,54,27,56,28,58,29,60,30,62,31,64,32, + 66,33,68,34,70,35,72,36,74,37,76,38,78,39,80,40,82,41,84,42,86,43,88,44, + 90,45,92,46,94,47,96,48,98,49,100,50,102,51,104,52,106,53,108,54,110,55, + 112,56,114,57,116,58,118,59,120,60,122,61,124,62,126,0,128,0,130,0,132, + 0,134,63,136,64,138,65,140,66,142,67,144,68,146,69,148,70,150,71,152,72, + 154,73,156,74,158,75,160,76,162,77,164,78,166,79,168,80,170,81,172,82,174, + 83,176,84,178,85,180,86,182,87,184,88,186,89,188,0,190,90,192,91,194,92, + 196,93,198,94,2,0,1,8,1,0,32,32,1,0,48,57,2,0,65,90,97,122,1,0,115,115, + 3,0,48,57,65,90,97,122,2,0,69,69,101,101,2,0,43,43,45,45,3,0,9,10,13,13, + 32,32,1092,0,2,1,0,0,0,0,4,1,0,0,0,0,6,1,0,0,0,0,8,1,0,0,0,0,10,1,0,0,0, + 0,12,1,0,0,0,0,14,1,0,0,0,0,16,1,0,0,0,0,18,1,0,0,0,0,20,1,0,0,0,0,22,1, + 0,0,0,0,24,1,0,0,0,0,26,1,0,0,0,0,28,1,0,0,0,0,30,1,0,0,0,0,32,1,0,0,0, + 0,34,1,0,0,0,0,36,1,0,0,0,0,38,1,0,0,0,0,40,1,0,0,0,0,42,1,0,0,0,0,44,1, + 0,0,0,0,46,1,0,0,0,0,48,1,0,0,0,0,50,1,0,0,0,0,52,1,0,0,0,0,54,1,0,0,0, + 0,56,1,0,0,0,0,58,1,0,0,0,0,60,1,0,0,0,0,62,1,0,0,0,0,64,1,0,0,0,0,66,1, + 0,0,0,0,68,1,0,0,0,0,70,1,0,0,0,0,72,1,0,0,0,0,74,1,0,0,0,0,76,1,0,0,0, + 0,78,1,0,0,0,0,80,1,0,0,0,0,82,1,0,0,0,0,84,1,0,0,0,0,86,1,0,0,0,0,88,1, + 0,0,0,0,90,1,0,0,0,0,92,1,0,0,0,0,94,1,0,0,0,0,96,1,0,0,0,0,98,1,0,0,0, + 0,100,1,0,0,0,0,102,1,0,0,0,0,104,1,0,0,0,0,106,1,0,0,0,0,108,1,0,0,0,0, + 110,1,0,0,0,0,112,1,0,0,0,0,114,1,0,0,0,0,116,1,0,0,0,0,118,1,0,0,0,0,120, + 1,0,0,0,0,122,1,0,0,0,0,124,1,0,0,0,0,134,1,0,0,0,0,136,1,0,0,0,0,138,1, + 0,0,0,0,140,1,0,0,0,0,142,1,0,0,0,0,144,1,0,0,0,0,146,1,0,0,0,0,148,1,0, + 0,0,0,150,1,0,0,0,0,152,1,0,0,0,0,154,1,0,0,0,1,156,1,0,0,0,1,158,1,0,0, + 0,1,160,1,0,0,0,1,162,1,0,0,0,1,164,1,0,0,0,1,166,1,0,0,0,1,168,1,0,0,0, + 1,170,1,0,0,0,1,172,1,0,0,0,1,174,1,0,0,0,1,176,1,0,0,0,1,178,1,0,0,0,1, + 180,1,0,0,0,1,182,1,0,0,0,1,184,1,0,0,0,1,186,1,0,0,0,1,190,1,0,0,0,1,192, + 1,0,0,0,1,194,1,0,0,0,1,196,1,0,0,0,1,198,1,0,0,0,2,200,1,0,0,0,4,204,1, + 0,0,0,6,214,1,0,0,0,8,216,1,0,0,0,10,218,1,0,0,0,12,220,1,0,0,0,14,222, + 1,0,0,0,16,224,1,0,0,0,18,233,1,0,0,0,20,235,1,0,0,0,22,237,1,0,0,0,24, + 241,1,0,0,0,26,246,1,0,0,0,28,259,1,0,0,0,30,273,1,0,0,0,32,287,1,0,0,0, + 34,295,1,0,0,0,36,301,1,0,0,0,38,316,1,0,0,0,40,322,1,0,0,0,42,329,1,0, + 0,0,44,335,1,0,0,0,46,349,1,0,0,0,48,354,1,0,0,0,50,362,1,0,0,0,52,375, + 1,0,0,0,54,389,1,0,0,0,56,391,1,0,0,0,58,409,1,0,0,0,60,413,1,0,0,0,62, + 417,1,0,0,0,64,421,1,0,0,0,66,425,1,0,0,0,68,429,1,0,0,0,70,433,1,0,0,0, + 72,440,1,0,0,0,74,447,1,0,0,0,76,454,1,0,0,0,78,459,1,0,0,0,80,464,1,0, + 0,0,82,469,1,0,0,0,84,474,1,0,0,0,86,477,1,0,0,0,88,481,1,0,0,0,90,494, + 1,0,0,0,92,508,1,0,0,0,94,522,1,0,0,0,96,539,1,0,0,0,98,550,1,0,0,0,100, + 562,1,0,0,0,102,567,1,0,0,0,104,569,1,0,0,0,106,571,1,0,0,0,108,573,1,0, + 0,0,110,575,1,0,0,0,112,577,1,0,0,0,114,579,1,0,0,0,116,583,1,0,0,0,118, + 587,1,0,0,0,120,589,1,0,0,0,122,592,1,0,0,0,124,627,1,0,0,0,126,629,1,0, + 0,0,128,631,1,0,0,0,130,638,1,0,0,0,132,647,1,0,0,0,134,789,1,0,0,0,136, + 805,1,0,0,0,138,819,1,0,0,0,140,821,1,0,0,0,142,847,1,0,0,0,144,849,1,0, + 0,0,146,855,1,0,0,0,148,861,1,0,0,0,150,867,1,0,0,0,152,872,1,0,0,0,154, + 877,1,0,0,0,156,879,1,0,0,0,158,883,1,0,0,0,160,893,1,0,0,0,162,899,1,0, + 0,0,164,914,1,0,0,0,166,920,1,0,0,0,168,927,1,0,0,0,170,933,1,0,0,0,172, + 935,1,0,0,0,174,937,1,0,0,0,176,944,1,0,0,0,178,946,1,0,0,0,180,948,1,0, + 0,0,182,950,1,0,0,0,184,952,1,0,0,0,186,986,1,0,0,0,188,988,1,0,0,0,190, + 990,1,0,0,0,192,998,1,0,0,0,194,1008,1,0,0,0,196,1014,1,0,0,0,198,1019, + 1,0,0,0,200,201,5,91,0,0,201,202,1,0,0,0,202,203,6,0,0,0,203,3,1,0,0,0, + 204,205,5,92,0,0,205,206,5,108,0,0,206,207,5,98,0,0,207,208,5,114,0,0,208, + 209,5,97,0,0,209,210,5,99,0,0,210,211,5,107,0,0,211,212,1,0,0,0,212,213, + 6,1,0,0,213,5,1,0,0,0,214,215,5,59,0,0,215,7,1,0,0,0,216,217,5,123,0,0, + 217,9,1,0,0,0,218,219,5,125,0,0,219,11,1,0,0,0,220,221,5,40,0,0,221,13, + 1,0,0,0,222,223,5,41,0,0,223,15,1,0,0,0,224,225,5,124,0,0,225,17,1,0,0, + 0,226,227,5,124,0,0,227,234,5,124,0,0,228,229,5,92,0,0,229,230,5,86,0,0, + 230,231,5,101,0,0,231,232,5,114,0,0,232,234,5,116,0,0,233,226,1,0,0,0,233, + 228,1,0,0,0,234,19,1,0,0,0,235,236,5,95,0,0,236,21,1,0,0,0,237,238,5,92, + 0,0,238,239,5,112,0,0,239,240,5,105,0,0,240,23,1,0,0,0,241,242,5,92,0,0, + 242,243,5,105,0,0,243,244,5,110,0,0,244,245,5,116,0,0,245,25,1,0,0,0,246, + 247,5,92,0,0,247,248,5,105,0,0,248,249,5,110,0,0,249,250,5,116,0,0,250, + 254,1,0,0,0,251,253,7,0,0,0,252,251,1,0,0,0,253,256,1,0,0,0,254,252,1,0, + 0,0,254,255,1,0,0,0,255,257,1,0,0,0,256,254,1,0,0,0,257,258,5,95,0,0,258, + 27,1,0,0,0,259,260,5,92,0,0,260,261,5,105,0,0,261,262,5,110,0,0,262,263, + 5,116,0,0,263,267,1,0,0,0,264,266,7,0,0,0,265,264,1,0,0,0,266,269,1,0,0, + 0,267,265,1,0,0,0,267,268,1,0,0,0,268,270,1,0,0,0,269,267,1,0,0,0,270,271, + 5,95,0,0,271,272,7,1,0,0,272,29,1,0,0,0,273,274,5,92,0,0,274,275,5,105, + 0,0,275,276,5,110,0,0,276,277,5,116,0,0,277,281,1,0,0,0,278,280,7,0,0,0, + 279,278,1,0,0,0,280,283,1,0,0,0,281,279,1,0,0,0,281,282,1,0,0,0,282,284, + 1,0,0,0,283,281,1,0,0,0,284,285,5,95,0,0,285,286,7,2,0,0,286,31,1,0,0,0, + 287,288,5,92,0,0,288,289,5,109,0,0,289,290,5,97,0,0,290,291,5,116,0,0,291, + 292,5,104,0,0,292,293,5,114,0,0,293,294,5,109,0,0,294,33,1,0,0,0,295,296, + 5,92,0,0,296,297,5,102,0,0,297,298,5,114,0,0,298,299,5,97,0,0,299,300,5, + 99,0,0,300,35,1,0,0,0,301,302,5,92,0,0,302,303,5,102,0,0,303,304,5,114, + 0,0,304,305,5,97,0,0,305,306,5,99,0,0,306,310,1,0,0,0,307,309,7,0,0,0,308, + 307,1,0,0,0,309,312,1,0,0,0,310,308,1,0,0,0,310,311,1,0,0,0,311,313,1,0, + 0,0,312,310,1,0,0,0,313,314,7,1,0,0,314,315,7,1,0,0,315,37,1,0,0,0,316, + 317,5,92,0,0,317,318,5,99,0,0,318,319,5,100,0,0,319,320,5,111,0,0,320,321, + 5,116,0,0,321,39,1,0,0,0,322,323,5,92,0,0,323,324,5,116,0,0,324,325,5,105, + 0,0,325,326,5,109,0,0,326,327,5,101,0,0,327,328,5,115,0,0,328,41,1,0,0, + 0,329,330,5,92,0,0,330,331,5,115,0,0,331,332,5,113,0,0,332,333,5,114,0, + 0,333,334,5,116,0,0,334,43,1,0,0,0,335,336,5,92,0,0,336,337,5,115,0,0,337, + 338,5,113,0,0,338,339,5,114,0,0,339,340,5,116,0,0,340,344,1,0,0,0,341,343, + 7,0,0,0,342,341,1,0,0,0,343,346,1,0,0,0,344,342,1,0,0,0,344,345,1,0,0,0, + 345,347,1,0,0,0,346,344,1,0,0,0,347,348,7,1,0,0,348,45,1,0,0,0,349,350, + 5,92,0,0,350,351,5,115,0,0,351,352,5,105,0,0,352,353,5,109,0,0,353,47,1, + 0,0,0,354,355,5,92,0,0,355,356,5,97,0,0,356,357,5,112,0,0,357,358,5,112, + 0,0,358,359,5,114,0,0,359,360,5,111,0,0,360,361,5,120,0,0,361,49,1,0,0, + 0,362,363,5,92,0,0,363,364,5,112,0,0,364,365,5,108,0,0,365,366,5,97,0,0, + 366,367,5,99,0,0,367,368,5,101,0,0,368,369,5,104,0,0,369,370,5,111,0,0, + 370,371,5,108,0,0,371,372,5,100,0,0,372,373,5,101,0,0,373,374,5,114,0,0, + 374,51,1,0,0,0,375,376,5,94,0,0,376,377,5,123,0,0,377,378,5,92,0,0,378, + 379,5,109,0,0,379,380,5,97,0,0,380,381,5,116,0,0,381,382,5,104,0,0,382, + 383,5,114,0,0,383,384,5,109,0,0,384,385,5,123,0,0,385,386,5,84,0,0,386, + 387,5,125,0,0,387,388,5,125,0,0,388,53,1,0,0,0,389,390,5,92,0,0,390,55, + 1,0,0,0,391,392,5,97,0,0,392,393,5,115,0,0,393,397,1,0,0,0,394,398,5,32, + 0,0,395,396,5,92,0,0,396,398,5,58,0,0,397,394,1,0,0,0,397,395,1,0,0,0,398, + 399,1,0,0,0,399,397,1,0,0,0,399,400,1,0,0,0,400,401,1,0,0,0,401,402,5,108, + 0,0,402,403,5,105,0,0,403,404,5,110,0,0,404,405,5,101,0,0,405,407,1,0,0, + 0,406,408,7,3,0,0,407,406,1,0,0,0,407,408,1,0,0,0,408,57,1,0,0,0,409,410, + 5,115,0,0,410,411,5,105,0,0,411,412,5,110,0,0,412,59,1,0,0,0,413,414,5, + 99,0,0,414,415,5,111,0,0,415,416,5,115,0,0,416,61,1,0,0,0,417,418,5,116, + 0,0,418,419,5,97,0,0,419,420,5,110,0,0,420,63,1,0,0,0,421,422,5,99,0,0, + 422,423,5,111,0,0,423,424,5,116,0,0,424,65,1,0,0,0,425,426,5,115,0,0,426, + 427,5,101,0,0,427,428,5,99,0,0,428,67,1,0,0,0,429,430,5,99,0,0,430,431, + 5,115,0,0,431,432,5,99,0,0,432,69,1,0,0,0,433,434,5,97,0,0,434,435,5,114, + 0,0,435,436,5,99,0,0,436,437,5,115,0,0,437,438,5,105,0,0,438,439,5,110, + 0,0,439,71,1,0,0,0,440,441,5,97,0,0,441,442,5,114,0,0,442,443,5,99,0,0, + 443,444,5,99,0,0,444,445,5,111,0,0,445,446,5,115,0,0,446,73,1,0,0,0,447, + 448,5,97,0,0,448,449,5,114,0,0,449,450,5,99,0,0,450,451,5,116,0,0,451,452, + 5,97,0,0,452,453,5,110,0,0,453,75,1,0,0,0,454,455,5,115,0,0,455,456,5,105, + 0,0,456,457,5,110,0,0,457,458,5,104,0,0,458,77,1,0,0,0,459,460,5,99,0,0, + 460,461,5,111,0,0,461,462,5,115,0,0,462,463,5,104,0,0,463,79,1,0,0,0,464, + 465,5,116,0,0,465,466,5,97,0,0,466,467,5,110,0,0,467,468,5,104,0,0,468, + 81,1,0,0,0,469,470,5,99,0,0,470,471,5,111,0,0,471,472,5,116,0,0,472,473, + 5,104,0,0,473,83,1,0,0,0,474,475,5,108,0,0,475,476,5,110,0,0,476,85,1,0, + 0,0,477,478,5,108,0,0,478,479,5,111,0,0,479,480,5,103,0,0,480,87,1,0,0, + 0,481,482,5,92,0,0,482,483,5,108,0,0,483,484,5,111,0,0,484,485,5,103,0, + 0,485,489,1,0,0,0,486,488,7,0,0,0,487,486,1,0,0,0,488,491,1,0,0,0,489,487, + 1,0,0,0,489,490,1,0,0,0,490,492,1,0,0,0,491,489,1,0,0,0,492,493,5,95,0, + 0,493,89,1,0,0,0,494,495,5,92,0,0,495,496,5,108,0,0,496,497,5,111,0,0,497, + 498,5,103,0,0,498,502,1,0,0,0,499,501,7,0,0,0,500,499,1,0,0,0,501,504,1, + 0,0,0,502,500,1,0,0,0,502,503,1,0,0,0,503,505,1,0,0,0,504,502,1,0,0,0,505, + 506,5,95,0,0,506,507,7,1,0,0,507,91,1,0,0,0,508,509,5,92,0,0,509,510,5, + 108,0,0,510,511,5,111,0,0,511,512,5,103,0,0,512,516,1,0,0,0,513,515,7,0, + 0,0,514,513,1,0,0,0,515,518,1,0,0,0,516,514,1,0,0,0,516,517,1,0,0,0,517, + 519,1,0,0,0,518,516,1,0,0,0,519,520,5,95,0,0,520,521,7,2,0,0,521,93,1,0, + 0,0,522,523,5,92,0,0,523,524,5,116,0,0,524,525,5,101,0,0,525,526,5,120, + 0,0,526,527,5,116,0,0,527,528,5,123,0,0,528,532,1,0,0,0,529,531,9,0,0,0, + 530,529,1,0,0,0,531,534,1,0,0,0,532,533,1,0,0,0,532,530,1,0,0,0,533,535, + 1,0,0,0,534,532,1,0,0,0,535,536,5,125,0,0,536,537,1,0,0,0,537,538,6,46, + 1,0,538,95,1,0,0,0,539,540,5,92,0,0,540,541,5,108,0,0,541,542,5,101,0,0, + 542,543,5,102,0,0,543,544,5,116,0,0,544,546,1,0,0,0,545,547,5,46,0,0,546, + 545,1,0,0,0,546,547,1,0,0,0,547,548,1,0,0,0,548,549,6,47,1,0,549,97,1,0, + 0,0,550,551,5,92,0,0,551,552,5,114,0,0,552,553,5,105,0,0,553,554,5,103, + 0,0,554,555,5,104,0,0,555,556,5,116,0,0,556,558,1,0,0,0,557,559,5,46,0, + 0,558,557,1,0,0,0,558,559,1,0,0,0,559,560,1,0,0,0,560,561,6,48,1,0,561, + 99,1,0,0,0,562,563,5,36,0,0,563,564,5,36,0,0,564,565,1,0,0,0,565,566,6, + 49,1,0,566,101,1,0,0,0,567,568,5,43,0,0,568,103,1,0,0,0,569,570,5,45,0, + 0,570,105,1,0,0,0,571,572,5,94,0,0,572,107,1,0,0,0,573,574,5,61,0,0,574, + 109,1,0,0,0,575,576,5,60,0,0,576,111,1,0,0,0,577,578,5,62,0,0,578,113,1, + 0,0,0,579,580,5,92,0,0,580,581,5,108,0,0,581,582,5,101,0,0,582,115,1,0, + 0,0,583,584,5,92,0,0,584,585,5,103,0,0,585,586,5,101,0,0,586,117,1,0,0, + 0,587,588,5,44,0,0,588,119,1,0,0,0,589,590,5,94,0,0,590,591,7,1,0,0,591, + 121,1,0,0,0,592,593,5,94,0,0,593,594,7,2,0,0,594,123,1,0,0,0,595,597,3, + 126,62,0,596,595,1,0,0,0,597,598,1,0,0,0,598,596,1,0,0,0,598,599,1,0,0, + 0,599,600,1,0,0,0,600,604,5,46,0,0,601,603,3,126,62,0,602,601,1,0,0,0,603, + 606,1,0,0,0,604,602,1,0,0,0,604,605,1,0,0,0,605,608,1,0,0,0,606,604,1,0, + 0,0,607,609,3,130,64,0,608,607,1,0,0,0,608,609,1,0,0,0,609,628,1,0,0,0, + 610,612,5,46,0,0,611,613,3,126,62,0,612,611,1,0,0,0,613,614,1,0,0,0,614, + 612,1,0,0,0,614,615,1,0,0,0,615,617,1,0,0,0,616,618,3,130,64,0,617,616, + 1,0,0,0,617,618,1,0,0,0,618,628,1,0,0,0,619,621,3,126,62,0,620,619,1,0, + 0,0,621,622,1,0,0,0,622,620,1,0,0,0,622,623,1,0,0,0,623,625,1,0,0,0,624, + 626,3,130,64,0,625,624,1,0,0,0,625,626,1,0,0,0,626,628,1,0,0,0,627,596, + 1,0,0,0,627,610,1,0,0,0,627,620,1,0,0,0,628,125,1,0,0,0,629,630,7,1,0,0, + 630,127,1,0,0,0,631,635,7,2,0,0,632,634,7,4,0,0,633,632,1,0,0,0,634,637, + 1,0,0,0,635,633,1,0,0,0,635,636,1,0,0,0,636,129,1,0,0,0,637,635,1,0,0,0, + 638,640,7,5,0,0,639,641,7,6,0,0,640,639,1,0,0,0,640,641,1,0,0,0,641,643, + 1,0,0,0,642,644,3,126,62,0,643,642,1,0,0,0,644,645,1,0,0,0,645,643,1,0, + 0,0,645,646,1,0,0,0,646,131,1,0,0,0,647,787,5,92,0,0,648,649,5,97,0,0,649, + 650,5,108,0,0,650,651,5,112,0,0,651,652,5,104,0,0,652,788,5,97,0,0,653, + 654,5,98,0,0,654,655,5,101,0,0,655,656,5,116,0,0,656,788,5,97,0,0,657,658, + 5,103,0,0,658,659,5,97,0,0,659,660,5,109,0,0,660,661,5,109,0,0,661,788, + 5,97,0,0,662,663,5,100,0,0,663,664,5,101,0,0,664,665,5,108,0,0,665,666, + 5,116,0,0,666,788,5,97,0,0,667,668,5,101,0,0,668,669,5,112,0,0,669,670, + 5,115,0,0,670,671,5,105,0,0,671,672,5,108,0,0,672,673,5,111,0,0,673,788, + 5,110,0,0,674,675,5,122,0,0,675,676,5,101,0,0,676,677,5,116,0,0,677,788, + 5,97,0,0,678,679,5,101,0,0,679,680,5,116,0,0,680,788,5,97,0,0,681,682,5, + 116,0,0,682,683,5,104,0,0,683,684,5,101,0,0,684,685,5,116,0,0,685,788,5, + 97,0,0,686,687,5,105,0,0,687,688,5,111,0,0,688,689,5,116,0,0,689,788,5, + 97,0,0,690,691,5,107,0,0,691,692,5,97,0,0,692,693,5,112,0,0,693,694,5,112, + 0,0,694,788,5,97,0,0,695,696,5,108,0,0,696,697,5,97,0,0,697,698,5,109,0, + 0,698,699,5,98,0,0,699,700,5,100,0,0,700,788,5,97,0,0,701,702,5,109,0,0, + 702,788,5,117,0,0,703,704,5,110,0,0,704,788,5,117,0,0,705,706,5,120,0,0, + 706,788,5,105,0,0,707,708,5,114,0,0,708,709,5,104,0,0,709,788,5,111,0,0, + 710,711,5,115,0,0,711,712,5,105,0,0,712,713,5,103,0,0,713,714,5,109,0,0, + 714,788,5,97,0,0,715,716,5,116,0,0,716,717,5,97,0,0,717,788,5,117,0,0,718, + 719,5,117,0,0,719,720,5,112,0,0,720,721,5,115,0,0,721,722,5,105,0,0,722, + 723,5,108,0,0,723,724,5,111,0,0,724,788,5,110,0,0,725,726,5,112,0,0,726, + 727,5,104,0,0,727,788,5,105,0,0,728,729,5,99,0,0,729,730,5,104,0,0,730, + 788,5,105,0,0,731,732,5,112,0,0,732,733,5,115,0,0,733,788,5,105,0,0,734, + 735,5,111,0,0,735,736,5,109,0,0,736,737,5,101,0,0,737,738,5,103,0,0,738, + 788,5,97,0,0,739,740,5,71,0,0,740,741,5,97,0,0,741,742,5,109,0,0,742,743, + 5,109,0,0,743,788,5,97,0,0,744,745,5,68,0,0,745,746,5,101,0,0,746,747,5, + 108,0,0,747,748,5,116,0,0,748,788,5,97,0,0,749,750,5,84,0,0,750,751,5,104, + 0,0,751,752,5,101,0,0,752,753,5,116,0,0,753,788,5,97,0,0,754,755,5,76,0, + 0,755,756,5,97,0,0,756,757,5,109,0,0,757,758,5,98,0,0,758,759,5,100,0,0, + 759,788,5,97,0,0,760,761,5,88,0,0,761,788,5,105,0,0,762,763,5,80,0,0,763, + 788,5,105,0,0,764,765,5,83,0,0,765,766,5,105,0,0,766,767,5,103,0,0,767, + 768,5,109,0,0,768,788,5,97,0,0,769,770,5,85,0,0,770,771,5,112,0,0,771,772, + 5,115,0,0,772,773,5,105,0,0,773,774,5,108,0,0,774,775,5,111,0,0,775,788, + 5,110,0,0,776,777,5,80,0,0,777,778,5,104,0,0,778,788,5,105,0,0,779,780, + 5,80,0,0,780,781,5,115,0,0,781,788,5,105,0,0,782,783,5,79,0,0,783,784,5, + 109,0,0,784,785,5,101,0,0,785,786,5,103,0,0,786,788,5,97,0,0,787,648,1, + 0,0,0,787,653,1,0,0,0,787,657,1,0,0,0,787,662,1,0,0,0,787,667,1,0,0,0,787, + 674,1,0,0,0,787,678,1,0,0,0,787,681,1,0,0,0,787,686,1,0,0,0,787,690,1,0, + 0,0,787,695,1,0,0,0,787,701,1,0,0,0,787,703,1,0,0,0,787,705,1,0,0,0,787, + 707,1,0,0,0,787,710,1,0,0,0,787,715,1,0,0,0,787,718,1,0,0,0,787,725,1,0, + 0,0,787,728,1,0,0,0,787,731,1,0,0,0,787,734,1,0,0,0,787,739,1,0,0,0,787, + 744,1,0,0,0,787,749,1,0,0,0,787,754,1,0,0,0,787,760,1,0,0,0,787,762,1,0, + 0,0,787,764,1,0,0,0,787,769,1,0,0,0,787,776,1,0,0,0,787,779,1,0,0,0,787, + 782,1,0,0,0,788,133,1,0,0,0,789,790,5,92,0,0,790,791,5,98,0,0,791,792,5, + 101,0,0,792,793,5,103,0,0,793,794,5,105,0,0,794,795,5,110,0,0,795,796,5, + 123,0,0,796,797,5,98,0,0,797,798,5,109,0,0,798,799,5,97,0,0,799,800,5,116, + 0,0,800,801,5,114,0,0,801,802,5,105,0,0,802,803,5,120,0,0,803,804,5,125, + 0,0,804,135,1,0,0,0,805,806,5,92,0,0,806,807,5,101,0,0,807,808,5,110,0, + 0,808,809,5,100,0,0,809,810,5,123,0,0,810,811,5,98,0,0,811,812,5,109,0, + 0,812,813,5,97,0,0,813,814,5,116,0,0,814,815,5,114,0,0,815,816,5,105,0, + 0,816,817,5,120,0,0,817,818,5,125,0,0,818,137,1,0,0,0,819,820,5,38,0,0, + 820,139,1,0,0,0,821,822,5,92,0,0,822,823,5,92,0,0,823,141,1,0,0,0,824,826, + 7,0,0,0,825,824,1,0,0,0,826,829,1,0,0,0,827,825,1,0,0,0,827,828,1,0,0,0, + 828,830,1,0,0,0,829,827,1,0,0,0,830,831,5,95,0,0,831,832,5,123,0,0,832, + 834,1,0,0,0,833,835,7,4,0,0,834,833,1,0,0,0,835,836,1,0,0,0,836,834,1,0, + 0,0,836,837,1,0,0,0,837,838,1,0,0,0,838,848,5,125,0,0,839,841,7,0,0,0,840, + 839,1,0,0,0,841,844,1,0,0,0,842,840,1,0,0,0,842,843,1,0,0,0,843,845,1,0, + 0,0,844,842,1,0,0,0,845,846,5,95,0,0,846,848,7,4,0,0,847,827,1,0,0,0,847, + 842,1,0,0,0,848,143,1,0,0,0,849,850,5,94,0,0,850,851,7,2,0,0,851,852,3, + 142,70,0,852,145,1,0,0,0,853,856,3,128,63,0,854,856,3,132,65,0,855,853, + 1,0,0,0,855,854,1,0,0,0,856,858,1,0,0,0,857,859,3,142,70,0,858,857,1,0, + 0,0,858,859,1,0,0,0,859,147,1,0,0,0,860,862,7,7,0,0,861,860,1,0,0,0,862, + 863,1,0,0,0,863,861,1,0,0,0,863,864,1,0,0,0,864,865,1,0,0,0,865,866,6,73, + 1,0,866,149,1,0,0,0,867,868,5,92,0,0,868,869,5,32,0,0,869,870,1,0,0,0,870, + 871,6,74,1,0,871,151,1,0,0,0,872,873,5,92,0,0,873,874,5,58,0,0,874,875, + 1,0,0,0,875,876,6,75,1,0,876,153,1,0,0,0,877,878,9,0,0,0,878,155,1,0,0, + 0,879,880,5,93,0,0,880,881,1,0,0,0,881,882,6,77,2,0,882,157,1,0,0,0,883, + 884,5,92,0,0,884,885,5,114,0,0,885,886,5,98,0,0,886,887,5,114,0,0,887,888, + 5,97,0,0,888,889,5,99,0,0,889,890,5,107,0,0,890,891,1,0,0,0,891,892,6,78, + 2,0,892,159,1,0,0,0,893,894,5,92,0,0,894,895,5,102,0,0,895,896,5,114,0, + 0,896,897,5,97,0,0,897,898,5,99,0,0,898,161,1,0,0,0,899,900,5,92,0,0,900, + 901,5,102,0,0,901,902,5,114,0,0,902,903,5,97,0,0,903,904,5,99,0,0,904,908, + 1,0,0,0,905,907,7,0,0,0,906,905,1,0,0,0,907,910,1,0,0,0,908,906,1,0,0,0, + 908,909,1,0,0,0,909,911,1,0,0,0,910,908,1,0,0,0,911,912,7,1,0,0,912,913, + 7,1,0,0,913,163,1,0,0,0,914,915,5,92,0,0,915,916,5,99,0,0,916,917,5,100, + 0,0,917,918,5,111,0,0,918,919,5,116,0,0,919,165,1,0,0,0,920,921,5,92,0, + 0,921,922,5,116,0,0,922,923,5,105,0,0,923,924,5,109,0,0,924,925,5,101,0, + 0,925,926,5,115,0,0,926,167,1,0,0,0,927,928,5,92,0,0,928,929,5,115,0,0, + 929,930,5,113,0,0,930,931,5,114,0,0,931,932,5,116,0,0,932,169,1,0,0,0,933, + 934,5,44,0,0,934,171,1,0,0,0,935,936,5,94,0,0,936,173,1,0,0,0,937,941,7, + 2,0,0,938,940,7,4,0,0,939,938,1,0,0,0,940,943,1,0,0,0,941,939,1,0,0,0,941, + 942,1,0,0,0,942,175,1,0,0,0,943,941,1,0,0,0,944,945,5,40,0,0,945,177,1, + 0,0,0,946,947,5,41,0,0,947,179,1,0,0,0,948,949,5,123,0,0,949,181,1,0,0, + 0,950,951,5,125,0,0,951,183,1,0,0,0,952,953,5,49,0,0,953,185,1,0,0,0,954, + 956,5,45,0,0,955,954,1,0,0,0,955,956,1,0,0,0,956,958,1,0,0,0,957,959,3, + 188,93,0,958,957,1,0,0,0,959,960,1,0,0,0,960,958,1,0,0,0,960,961,1,0,0, + 0,961,962,1,0,0,0,962,966,5,46,0,0,963,965,3,188,93,0,964,963,1,0,0,0,965, + 968,1,0,0,0,966,964,1,0,0,0,966,967,1,0,0,0,967,987,1,0,0,0,968,966,1,0, + 0,0,969,971,5,45,0,0,970,969,1,0,0,0,970,971,1,0,0,0,971,972,1,0,0,0,972, + 974,5,46,0,0,973,975,3,188,93,0,974,973,1,0,0,0,975,976,1,0,0,0,976,974, + 1,0,0,0,976,977,1,0,0,0,977,987,1,0,0,0,978,980,5,45,0,0,979,978,1,0,0, + 0,979,980,1,0,0,0,980,982,1,0,0,0,981,983,3,188,93,0,982,981,1,0,0,0,983, + 984,1,0,0,0,984,982,1,0,0,0,984,985,1,0,0,0,985,987,1,0,0,0,986,955,1,0, + 0,0,986,970,1,0,0,0,986,979,1,0,0,0,987,187,1,0,0,0,988,989,7,1,0,0,989, + 189,1,0,0,0,990,991,5,92,0,0,991,992,5,108,0,0,992,993,5,101,0,0,993,994, + 5,102,0,0,994,995,5,116,0,0,995,996,1,0,0,0,996,997,6,94,1,0,997,191,1, + 0,0,0,998,999,5,92,0,0,999,1000,5,114,0,0,1000,1001,5,105,0,0,1001,1002, + 5,103,0,0,1002,1003,5,104,0,0,1003,1004,5,116,0,0,1004,1005,1,0,0,0,1005, + 1006,6,95,1,0,1006,193,1,0,0,0,1007,1009,7,7,0,0,1008,1007,1,0,0,0,1009, + 1010,1,0,0,0,1010,1008,1,0,0,0,1010,1011,1,0,0,0,1011,1012,1,0,0,0,1012, + 1013,6,96,1,0,1013,195,1,0,0,0,1014,1015,5,92,0,0,1015,1016,5,32,0,0,1016, + 1017,1,0,0,0,1017,1018,6,97,1,0,1018,197,1,0,0,0,1019,1020,9,0,0,0,1020, + 199,1,0,0,0,47,0,1,233,254,267,281,310,344,397,399,407,489,502,516,532, + 546,558,598,604,608,614,617,622,625,627,635,640,645,787,827,836,842,847, + 855,858,863,908,941,955,960,966,970,976,979,984,986,1010,3,2,1,0,6,0,0, + 2,0,0]; private static __ATN: ATN; public static get _ATN(): ATN { diff --git a/src/parser/LatexParser.ts b/src/parser/LatexParser.ts index 4bffbb64..f7c891fa 100644 --- a/src/parser/LatexParser.ts +++ b/src/parser/LatexParser.ts @@ -195,7 +195,9 @@ export default class LatexParser extends Parser { null, null, null, null, null, null, - "'1'" ]; + "'1'", null, + "'\\left'", + "'\\right'" ]; public static readonly symbolicNames: (string | null)[] = [ null, "L_BRACKET", "ALT_L_BRACKET", "SEMICOLON",