From 7efce6f110f66aa8ff495ccb2a3beef4c2943d1b Mon Sep 17 00:00:00 2001 From: Matthew Saw Date: Sun, 24 Jan 2016 04:19:53 +0800 Subject: [PATCH] Fixed more shit --- src/grammar.jison | 254 ++++++++++++++----------- src/js-to-webclgl.js | 4 +- src/webclgl-js-parser.js | 394 +++++++++++++++++++++------------------ 3 files changed, 353 insertions(+), 299 deletions(-) diff --git a/src/grammar.jison b/src/grammar.jison index 769e24ac..b8be92a4 100644 --- a/src/grammar.jison +++ b/src/grammar.jison @@ -115,6 +115,124 @@ StringLiteral (\"{DoubleStringCharacter}*\")|(\'{SingleStringCharacter}*\') %start Program /* Define Start Production */ %% /* Define Grammar Productions */ +Statement + : Block + | VariableStatement + | ExpressionStatement + | ForStatement + | IfStatement + | BreakStatement + | ContinueStatement + | ReturnStatement + ; + +Block + : "{" StatementList "}" + { + $$ = new BlockStatementNode($2); + } + ; + +StatementList + : StatementList Statement + { + $$ = $1.concat($2); + } + | + { + $$ = []; + } + ; + +VariableStatement + : "VAR" Variable ";" + { + $$ = new VariableDeclaratorNode($2, null); + } + | "VAR" AssignmentExpression ";" + { + $$ = new VariableDeclaratorNode($2.left, $2.right); + } + ; + +ExpressionStatement + : Expression ";" + { + $$ = new ExpressionStatementNode($1); + } + ; + +ContinueStatement + : "CONTINUE" ";" + { + $$ = new ContinueStatementNode(); + } + ; + +BreakStatement + : "BREAK" ";" + { + $$ = new BreakStatementNode(); + } + ; + +ReturnStatement + : "RETURN" ";" + { + $$ = new ReturnStatementNode(null); + } + | "RETURN" Expression ";" + { + $$ = new ReturnStatementNode($2); + } + ; + +ForStatement + : "FOR" "(" Expression ";" Expression ";" Expression ")" Statement + { + $$ = new ForStatementNode($3, $5, $7, $9); + } + | "FOR" "(" Expression ";" Expression ";" ")" Statement + { + $$ = new ForStatementNode($3, $5, null, $8); + } + | "FOR" "(" Expression ";" ";" Expression ")" Statement + { + $$ = new ForStatementNode($3, null, $6, $8); + } + | "FOR" "(" Expression ";" ";" ")" Statement + { + $$ = new ForStatementNode($3, null, null, $7); + } + | "FOR" "(" ";" Expression ";" Expression ")" Statement + { + $$ = new ForStatementNode(null, $4, $6, $8); + } + | "FOR" "(" ";" Expression ";" ")" Statement + { + $$ = new ForStatementNode(null, $4, null, $7); + } + | "FOR" "(" ";" ";" Expression ")" Statement + { + $$ = new ForStatementNode(null, null, $5, $7); + } + | "FOR" "(" ";" ";" ")" Statement + { + $$ = new ForStatementNode(null, null, null, $6); + } + ; + +IfStatement + : "IF" "(" Expression ")" Statement + { + $$ = new IfStatementNode($3, $5, null); + } + | "IF" "(" Expression ")" Statement "ELSE" Statement + { + $$ = new IfStatementNode($3, $5, $7); + } + ; + Expression : Variable | AssignmentExpression @@ -170,6 +288,10 @@ AssignmentExpression { $$ = new AssignmentExpressionNode("=", $1, $3); } + | Variable "=" FunctionExpression + { + $$ = new AssignmentExpressionNode("=", $1, $3); + } | Variable AssignmentOperator MathExpression { $$ = new AssignmentExpressionNode($2, $1, $3); @@ -242,7 +364,7 @@ MathExpression ; PostfixMathExpression - : NumberLiteral + : NumericLiteral | Variable "++" { $$ = new UpdateExpressionNode("++", $1, false); @@ -371,117 +493,6 @@ UnaryBoolExpr | BooleanLiteral ; -Statement - : Block - | VariableStatement - | ExpressionStatement - | ForStatement - | IfStatement - | BreakStatement - | ContinueStatement - | ReturnStatement - ; - -Block - : "{" StatementList "}" - { - $$ = new BlockStatementNode($2); - } - ; - -StatementList - : StatementList Statement - { - $$ = $1.concat($2); - } - | - { - $$ = []; - } - ; - -VariableStatement - : "VAR" Variable ";" - { - $$ = new VariableDeclaratorNode($2, null); - } - | "VAR" AssignmentExpression ";" - { - $$ = new VariableDeclaratorNode($2.left, $2.right); - } - ; - -ContinueStatement - : "CONTINUE" ";" - { - $$ = new ContinueStatementNode(); - } - ; - -BreakStatement - : "BREAK" ";" - { - $$ = new BreakStatementNode(); - } - ; - -ReturnStatement - : "RETURN" ";" - { - $$ = new ReturnStatementNode(null); - } - | "RETURN" Expression ";" - { - $$ = new ReturnStatementNode($2); - } - ; - -ForStatement - : "FOR" "(" Expression ";" Expression ";" Expression ")" Statement - { - $$ = new ForStatementNode($3, $5, $7, $9); - } - | "FOR" "(" Expression ";" Expression ";" ")" Statement - { - $$ = new ForStatementNode($3, $5, null, $8); - } - | "FOR" "(" Expression ";" ";" Expression ")" Statement - { - $$ = new ForStatementNode($3, null, $6, $8); - } - | "FOR" "(" Expression ";" ";" ")" Statement - { - $$ = new ForStatementNode($3, null, null, $7); - } - | "FOR" "(" ";" Expression ";" Expression ")" Statement - { - $$ = new ForStatementNode(null, $4, $6, $8); - } - | "FOR" "(" ";" Expression ";" ")" Statement - { - $$ = new ForStatementNode(null, $4, null, $7); - } - | "FOR" "(" ";" ";" Expression ")" Statement - { - $$ = new ForStatementNode(null, null, $5, $7); - } - | "FOR" "(" ";" ";" ")" Statement - { - $$ = new ForStatementNode(null, null, null, $6); - } - ; - -IfStatement - : "IF" "(" Expression ")" Statement - { - $$ = new IfStatementNode($3, $5, null); - } - | "IF" "(" Expression ")" Statement "ELSE" Statement - { - $$ = new IfStatementNode($3, $5, $7); - } - ; - Program : SourceElements EOF { @@ -517,6 +528,25 @@ FunctionDeclaration } ; +FunctionExpression + : "FUNCTION" "IDENTIFIER" "(" ")" "{" FunctionBody "}" + { + $$ = new FunctionDeclarationNode(new IdentifierNode($2), [], $6, false, false); + } + | "FUNCTION" "IDENTIFIER" "(" FormalParameterList ")" "{" FunctionBody "}" + { + $$ = new FunctionDeclarationNode(new IdentifierNode($2), $4, $7, false, false); + } + | "FUNCTION" "(" ")" "{" FunctionBody "}" + { + $$ = new FunctionDeclarationNode(null, [], $5, false, false); + } + | "FUNCTION" "(" FormalParameterList ")" "{" FunctionBody "}" + { + $$ = new FunctionDeclarationNode(null, $3, $6, false, false); + } + ; + FormalParameterList : "IDENTIFIER" { diff --git a/src/js-to-webclgl.js b/src/js-to-webclgl.js index 0cd81981..da339c6a 100644 --- a/src/js-to-webclgl.js +++ b/src/js-to-webclgl.js @@ -47,7 +47,7 @@ var GPU_jsStrToWebclglStr = (function() { } // take out the function object, outside the main var declarations - var mainAst = mainObj.body[0].declarations[0].init; + var mainAst = mainObj.body[0].init; // Capture the original statment code stateParam.customMainFunctionName = mainAst.id; @@ -75,7 +75,7 @@ var GPU_jsStrToWebclglStr = (function() { /// @returns the prased openclgl string array function ast_generic(ast, retArr, stateParam ) { switch(ast.type) { - case "FunctionExpression": + case "FunctionDeclaration": return ast_FunctionExpression(ast, retArr, stateParam); case "ReturnStatement": return ast_ReturnStatement(ast, retArr, stateParam); diff --git a/src/webclgl-js-parser.js b/src/webclgl-js-parser.js index 9a3246c8..873b0dfa 100644 --- a/src/webclgl-js-parser.js +++ b/src/webclgl-js-parser.js @@ -74,280 +74,304 @@ var parser = (function(){ var parser = {trace: function trace(){}, yy: {}, -symbols_: {"error":2,"Expression":3,"Variable":4,"AssignmentExpression":5,"MatrixAccess":6,"MathExpression":7,"BooleanExpression":8,"StringLiteral":9,"(":10,")":11,"NullLiteral":12,"NULL":13,"BooleanLiteral":14,"TRUE":15,"FALSE":16,"NumericLiteral":17,"NUMERIC_LITERAL":18,"STRING_LITERAL":19,"IDENTIFIER":20,"=":21,"AssignmentOperator":22,"*=":23,"/=":24,"%=":25,"+=":26,"-=":27,"MatrixIndexList":28,"MatrixIndex":29,"[":30,"]":31,"ContextAccess":32,"THIS":33,"ContextAccessList":34,"ContextAccessObject":35,".":36,"AdditiveExpression":37,"PostfixMathExpression":38,"NumberLiteral":39,"++":40,"--":41,"UnaryMathExpression":42,"UnaryMathExpr":43,"+":44,"-":45,"MultiplicativeExpression":46,"*":47,"UnaryExpression":48,"/":49,"%":50,"RelationalExpression":51,"UnaryBoolExpression":52,"<":53,">":54,"<=":55,">=":56,"EqualityExpression":57,"==":58,"!=":59,"===":60,"!==":61,"LogicalANDExpression":62,"&&":63,"BitwiseORExpression":64,"LogicalORExpression":65,"||":66,"UnaryBoolExpr":67,"!":68,"Statement":69,"Block":70,"VariableStatement":71,"ExpressionStatement":72,"ForStatement":73,"IfStatement":74,"BreakStatement":75,"ContinueStatement":76,"ReturnStatement":77,"{":78,"StatementList":79,"}":80,"VAR":81,";":82,"CONTINUE":83,"BREAK":84,"RETURN":85,"FOR":86,"IF":87,"ELSE":88,"Program":89,"SourceElements":90,"EOF":91,"SourceElement":92,"FunctionDeclaration":93,"FUNCTION":94,"FunctionBody":95,"FormalParameterList":96,",":97,"$accept":0,"$end":1}, -terminals_: {2:"error",8:"BooleanExpression",10:"(",11:")",13:"NULL",15:"TRUE",16:"FALSE",18:"NUMERIC_LITERAL",19:"STRING_LITERAL",20:"IDENTIFIER",21:"=",23:"*=",24:"/=",25:"%=",26:"+=",27:"-=",30:"[",31:"]",33:"THIS",36:".",39:"NumberLiteral",40:"++",41:"--",44:"+",45:"-",47:"*",48:"UnaryExpression",49:"/",50:"%",52:"UnaryBoolExpression",53:"<",54:">",55:"<=",56:">=",58:"==",59:"!=",60:"===",61:"!==",63:"&&",64:"BitwiseORExpression",66:"||",68:"!",72:"ExpressionStatement",78:"{",80:"}",81:"VAR",82:";",83:"CONTINUE",84:"BREAK",85:"RETURN",86:"FOR",87:"IF",88:"ELSE",91:"EOF",94:"FUNCTION",97:","}, -productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,3],[12,1],[14,1],[14,1],[17,1],[9,1],[4,1],[5,3],[5,3],[22,1],[22,1],[22,1],[22,1],[22,1],[6,2],[28,2],[28,1],[29,3],[32,2],[34,2],[34,1],[35,2],[7,1],[38,1],[38,2],[38,2],[42,1],[42,1],[43,2],[43,2],[43,2],[43,2],[46,1],[46,1],[46,3],[46,3],[46,3],[37,1],[37,3],[37,3],[51,1],[51,1],[51,3],[51,3],[51,3],[51,3],[57,1],[57,3],[57,3],[57,3],[57,3],[62,1],[62,3],[65,1],[65,3],[67,2],[67,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[69,1],[70,3],[79,2],[79,0],[71,3],[71,3],[76,2],[75,2],[77,2],[77,3],[73,9],[73,8],[73,8],[73,7],[73,8],[73,7],[73,7],[73,6],[74,5],[74,7],[89,2],[90,2],[90,0],[92,1],[92,1],[93,7],[93,8],[96,1],[96,3],[95,1]], +symbols_: {"error":2,"Statement":3,"Block":4,"VariableStatement":5,"ExpressionStatement":6,"ForStatement":7,"IfStatement":8,"BreakStatement":9,"ContinueStatement":10,"ReturnStatement":11,"{":12,"StatementList":13,"}":14,"VAR":15,"Variable":16,";":17,"AssignmentExpression":18,"Expression":19,"CONTINUE":20,"BREAK":21,"RETURN":22,"FOR":23,"(":24,")":25,"IF":26,"ELSE":27,"MatrixAccess":28,"MathExpression":29,"BooleanExpression":30,"StringLiteral":31,"NullLiteral":32,"NULL":33,"BooleanLiteral":34,"TRUE":35,"FALSE":36,"NumericLiteral":37,"NUMERIC_LITERAL":38,"STRING_LITERAL":39,"IDENTIFIER":40,"=":41,"FunctionExpression":42,"AssignmentOperator":43,"*=":44,"/=":45,"%=":46,"+=":47,"-=":48,"MatrixIndexList":49,"MatrixIndex":50,"[":51,"]":52,"ContextAccess":53,"THIS":54,"ContextAccessList":55,"ContextAccessObject":56,".":57,"AdditiveExpression":58,"PostfixMathExpression":59,"++":60,"--":61,"UnaryMathExpression":62,"UnaryMathExpr":63,"+":64,"-":65,"MultiplicativeExpression":66,"*":67,"UnaryExpression":68,"/":69,"%":70,"RelationalExpression":71,"UnaryBoolExpression":72,"<":73,">":74,"<=":75,">=":76,"EqualityExpression":77,"==":78,"!=":79,"===":80,"!==":81,"LogicalANDExpression":82,"&&":83,"BitwiseORExpression":84,"LogicalORExpression":85,"||":86,"UnaryBoolExpr":87,"!":88,"Program":89,"SourceElements":90,"EOF":91,"SourceElement":92,"FunctionDeclaration":93,"FUNCTION":94,"FunctionBody":95,"FormalParameterList":96,",":97,"$accept":0,"$end":1}, +terminals_: {2:"error",12:"{",14:"}",15:"VAR",17:";",20:"CONTINUE",21:"BREAK",22:"RETURN",23:"FOR",24:"(",25:")",26:"IF",27:"ELSE",30:"BooleanExpression",33:"NULL",35:"TRUE",36:"FALSE",38:"NUMERIC_LITERAL",39:"STRING_LITERAL",40:"IDENTIFIER",41:"=",44:"*=",45:"/=",46:"%=",47:"+=",48:"-=",51:"[",52:"]",54:"THIS",57:".",60:"++",61:"--",64:"+",65:"-",67:"*",68:"UnaryExpression",69:"/",70:"%",72:"UnaryBoolExpression",73:"<",74:">",75:"<=",76:">=",78:"==",79:"!=",80:"===",81:"!==",83:"&&",84:"BitwiseORExpression",86:"||",88:"!",91:"EOF",94:"FUNCTION",97:","}, +productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[4,3],[13,2],[13,0],[5,3],[5,3],[6,2],[10,2],[9,2],[11,2],[11,3],[7,9],[7,8],[7,8],[7,7],[7,8],[7,7],[7,7],[7,6],[8,5],[8,7],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,3],[32,1],[34,1],[34,1],[37,1],[31,1],[16,1],[18,3],[18,3],[18,3],[43,1],[43,1],[43,1],[43,1],[43,1],[28,2],[49,2],[49,1],[50,3],[53,2],[55,2],[55,1],[56,2],[29,1],[59,1],[59,2],[59,2],[62,1],[62,1],[63,2],[63,2],[63,2],[63,2],[66,1],[66,1],[66,3],[66,3],[66,3],[58,1],[58,3],[58,3],[71,1],[71,1],[71,3],[71,3],[71,3],[71,3],[77,1],[77,3],[77,3],[77,3],[77,3],[82,1],[82,3],[85,1],[85,3],[87,2],[87,1],[89,2],[90,2],[90,0],[92,1],[92,1],[93,7],[93,8],[42,7],[42,8],[42,6],[42,7],[96,1],[96,3],[95,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */ /**/) { /* this == yyval */ var $0 = $$.length - 1; switch (yystate) { -case 8: - this.$ = new LiteralNode(null); - -break; case 9: - this.$ = new LiteralNode(true); - -break; -case 10: - this.$ = new LiteralNode(false); - -break; -case 11: - this.$ = new LiteralNode(parseNumericLiteral($$[$0])); - -break; -case 12: - this.$ = new LiteralNode($$[$0]); - -break; -case 13: - this.$ = new IdentifierNode($$[$0]); - -break; -case 14: - this.$ = new AssignmentExpressionNode("=", $$[$0-2], $$[$0]); - -break; -case 15: - this.$ = new AssignmentExpressionNode($$[$0-1], $$[$0-2], $$[$0]); - -break; -case 21: - this.$ = new MatrixAccessNode($$[$0-1], $$[$0]); - -break; -case 22: - this.$ = $$[$0-1].concat($$[$0]); - -break; -case 23: - this.$ = [$$[$0]]; - -break; -case 24: - this.$ = $$[$0-2]; - -break; -case 25: - this.$ = new ContextAccessNode($$[$0]); - -break; -case 26: - this.$ = $$[$0-1].concat($$[$0]); - -break; -case 27: - this.$ = [$$[$0]]; - -break; -case 28: - this.$ = $$[$0]; - -break; -case 29: - this.$ = new MathExpressionNode($$[$0]); - -break; -case 31: - this.$ = new UpdateExpressionNode("++", $$[$0-1], false); - -break; -case 32: - this.$ = new UpdateExpressionNode("--", $$[$0-1], false); - -break; -case 35: - this.$ = new UpdateExpressionNode("++", $$[$0], true); - -break; -case 36: - this.$ = new UpdateExpressionNode("--", $$[$0], true); - -break; -case 37: - this.$ = new UnaryExpressionNode("+", true, $$[$0]); - -break; -case 38: - this.$ = new UnaryExpressionNode("-", true, $$[$0]); - -break; -case 41: - this.$ = new BinaryExpressionNode("*", $$[$0-2], $$[$0]); - -break; -case 42: - this.$ = new BinaryExpressionNode("/", $$[$0-2], $$[$0]); - -break; -case 43: - this.$ = new BinaryExpressionNode("%", $$[$0-2], $$[$0]); - -break; -case 45: - this.$ = new BinaryExpressionNode("+", $$[$0-2], $$[$0]); - -break; -case 46: - this.$ = new BinaryExpressionNode("-", $$[$0-2], $$[$0]); - -break; -case 49: - this.$ = new BinaryExpressionNode("<", $$[$0-2], $$[$0]); - -break; -case 50: - this.$ = new BinaryExpressionNode(">", $$[$0-2], $$[$0]); - -break; -case 51: - this.$ = new BinaryExpressionNode("<=", $$[$0-2], $$[$0]); - -break; -case 52: - this.$ = new BinaryExpressionNode(">=", $$[$0-2], $$[$0]); - -break; -case 54: - this.$ = new BinaryExpressionNode("==", $$[$0-2], $$[$0]); - -break; -case 55: - this.$ = new BinaryExpressionNode("!=", $$[$0-2], $$[$0]); - -break; -case 56: - this.$ = new BinaryExpressionNode("===", $$[$0-2], $$[$0]); - -break; -case 57: - this.$ = new BinaryExpressionNode("!==", $$[$0-2], $$[$0]); - -break; -case 59: - this.$ = new LogicalExpressionNode("&&", $$[$0-2], $$[$0]); - -break; -case 61: - this.$ = new LogicalExpressionNode("||", $$[$0-2], $$[$0]); - -break; -case 62: - this.$ = new UnaryExpressionNode("!", true, $$[$0]); - -break; -case 72: this.$ = new BlockStatementNode($$[$0-1]); break; -case 73: +case 10: this.$ = $$[$0-1].concat($$[$0]); break; -case 74: +case 11: this.$ = []; break; -case 75: +case 12: this.$ = new VariableDeclaratorNode($$[$0-1], null); break; -case 76: +case 13: this.$ = new VariableDeclaratorNode($$[$0-1].left, $$[$0-1].right); break; -case 77: +case 14: + this.$ = new ExpressionStatementNode($$[$0-1]); + +break; +case 15: this.$ = new ContinueStatementNode(); break; -case 78: +case 16: this.$ = new BreakStatementNode(); break; -case 79: +case 17: this.$ = new ReturnStatementNode(null); break; -case 80: +case 18: this.$ = new ReturnStatementNode($$[$0-1]); break; -case 81: +case 19: this.$ = new ForStatementNode($$[$0-6], $$[$0-4], $$[$0-2], $$[$0]); break; -case 82: +case 20: this.$ = new ForStatementNode($$[$0-5], $$[$0-3], null, $$[$0]); break; -case 83: +case 21: this.$ = new ForStatementNode($$[$0-5], null, $$[$0-2], $$[$0]); break; -case 84: +case 22: this.$ = new ForStatementNode($$[$0-4], null, null, $$[$0]); break; -case 85: +case 23: this.$ = new ForStatementNode(null, $$[$0-4], $$[$0-2], $$[$0]); break; -case 86: +case 24: this.$ = new ForStatementNode(null, $$[$0-3], null, $$[$0]); break; -case 87: +case 25: this.$ = new ForStatementNode(null, null, $$[$0-2], $$[$0]); break; -case 88: +case 26: this.$ = new ForStatementNode(null, null, null, $$[$0]); break; -case 89: +case 27: this.$ = new IfStatementNode($$[$0-2], $$[$0], null); break; -case 90: +case 28: this.$ = new IfStatementNode($$[$0-4], $$[$0-2], $$[$0]); +break; +case 36: + this.$ = new LiteralNode(null); + +break; +case 37: + this.$ = new LiteralNode(true); + +break; +case 38: + this.$ = new LiteralNode(false); + +break; +case 39: + this.$ = new LiteralNode(parseNumericLiteral($$[$0])); + +break; +case 40: + this.$ = new LiteralNode($$[$0]); + +break; +case 41: + this.$ = new IdentifierNode($$[$0]); + +break; +case 42: + this.$ = new AssignmentExpressionNode("=", $$[$0-2], $$[$0]); + +break; +case 43: + this.$ = new AssignmentExpressionNode("=", $$[$0-2], $$[$0]); + +break; +case 44: + this.$ = new AssignmentExpressionNode($$[$0-1], $$[$0-2], $$[$0]); + +break; +case 50: + this.$ = new MatrixAccessNode($$[$0-1], $$[$0]); + +break; +case 51: + this.$ = $$[$0-1].concat($$[$0]); + +break; +case 52: + this.$ = [$$[$0]]; + +break; +case 53: + this.$ = $$[$0-2]; + +break; +case 54: + this.$ = new ContextAccessNode($$[$0]); + +break; +case 55: + this.$ = $$[$0-1].concat($$[$0]); + +break; +case 56: + this.$ = [$$[$0]]; + +break; +case 57: + this.$ = $$[$0]; + +break; +case 58: + this.$ = new MathExpressionNode($$[$0]); + +break; +case 60: + this.$ = new UpdateExpressionNode("++", $$[$0-1], false); + +break; +case 61: + this.$ = new UpdateExpressionNode("--", $$[$0-1], false); + +break; +case 64: + this.$ = new UpdateExpressionNode("++", $$[$0], true); + +break; +case 65: + this.$ = new UpdateExpressionNode("--", $$[$0], true); + +break; +case 66: + this.$ = new UnaryExpressionNode("+", true, $$[$0]); + +break; +case 67: + this.$ = new UnaryExpressionNode("-", true, $$[$0]); + +break; +case 70: + this.$ = new BinaryExpressionNode("*", $$[$0-2], $$[$0]); + +break; +case 71: + this.$ = new BinaryExpressionNode("/", $$[$0-2], $$[$0]); + +break; +case 72: + this.$ = new BinaryExpressionNode("%", $$[$0-2], $$[$0]); + +break; +case 74: + this.$ = new BinaryExpressionNode("+", $$[$0-2], $$[$0]); + +break; +case 75: + this.$ = new BinaryExpressionNode("-", $$[$0-2], $$[$0]); + +break; +case 78: + this.$ = new BinaryExpressionNode("<", $$[$0-2], $$[$0]); + +break; +case 79: + this.$ = new BinaryExpressionNode(">", $$[$0-2], $$[$0]); + +break; +case 80: + this.$ = new BinaryExpressionNode("<=", $$[$0-2], $$[$0]); + +break; +case 81: + this.$ = new BinaryExpressionNode(">=", $$[$0-2], $$[$0]); + +break; +case 83: + this.$ = new BinaryExpressionNode("==", $$[$0-2], $$[$0]); + +break; +case 84: + this.$ = new BinaryExpressionNode("!=", $$[$0-2], $$[$0]); + +break; +case 85: + this.$ = new BinaryExpressionNode("===", $$[$0-2], $$[$0]); + +break; +case 86: + this.$ = new BinaryExpressionNode("!==", $$[$0-2], $$[$0]); + +break; +case 88: + this.$ = new LogicalExpressionNode("&&", $$[$0-2], $$[$0]); + +break; +case 90: + this.$ = new LogicalExpressionNode("||", $$[$0-2], $$[$0]); + break; case 91: + this.$ = new UnaryExpressionNode("!", true, $$[$0]); + +break; +case 93: this.$ = new ProgramNode($$[$0-1]); return this.$; break; -case 92: +case 94: this.$ = $$[$0-1].concat($$[$0]); break; -case 93: +case 95: this.$ = []; break; -case 96: +case 98: this.$ = new FunctionDeclarationNode(new IdentifierNode($$[$0-5]), [], $$[$0-1], false, false); break; -case 97: +case 99: this.$ = new FunctionDeclarationNode(new IdentifierNode($$[$0-6]), $$[$0-4], $$[$0-1], false, false); break; -case 98: +case 100: + this.$ = new FunctionDeclarationNode(new IdentifierNode($$[$0-5]), [], $$[$0-1], false, false); + +break; +case 101: + this.$ = new FunctionDeclarationNode(new IdentifierNode($$[$0-6]), $$[$0-4], $$[$0-1], false, false); + +break; +case 102: + this.$ = new FunctionDeclarationNode(null, [], $$[$0-1], false, false); + +break; +case 103: + this.$ = new FunctionDeclarationNode(null, $$[$0-4], $$[$0-1], false, false); + +break; +case 104: this.$ = [new IdentifierNode($$[$0])]; break; -case 99: +case 105: this.$ = $$[$0-2].concat(new IdentifierNode($$[$0])); break; } }, -table: [{72:[2,93],78:[2,93],81:[2,93],83:[2,93],84:[2,93],85:[2,93],86:[2,93],87:[2,93],89:1,90:2,91:[2,93],94:[2,93]},{1:[3]},{69:5,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19],91:[1,3],92:4,93:6,94:[1,15]},{1:[2,91]},{72:[2,92],78:[2,92],80:[2,92],81:[2,92],83:[2,92],84:[2,92],85:[2,92],86:[2,92],87:[2,92],91:[2,92],94:[2,92]},{72:[2,94],78:[2,94],80:[2,94],81:[2,94],83:[2,94],84:[2,94],85:[2,94],86:[2,94],87:[2,94],91:[2,94],94:[2,94]},{72:[2,95],78:[2,95],80:[2,95],81:[2,95],83:[2,95],84:[2,95],85:[2,95],86:[2,95],87:[2,95],91:[2,95],94:[2,95]},{72:[2,64],78:[2,64],80:[2,64],81:[2,64],83:[2,64],84:[2,64],85:[2,64],86:[2,64],87:[2,64],88:[2,64],91:[2,64],94:[2,64]},{72:[2,65],78:[2,65],80:[2,65],81:[2,65],83:[2,65],84:[2,65],85:[2,65],86:[2,65],87:[2,65],88:[2,65],91:[2,65],94:[2,65]},{72:[2,66],78:[2,66],80:[2,66],81:[2,66],83:[2,66],84:[2,66],85:[2,66],86:[2,66],87:[2,66],88:[2,66],91:[2,66],94:[2,66]},{72:[2,67],78:[2,67],80:[2,67],81:[2,67],83:[2,67],84:[2,67],85:[2,67],86:[2,67],87:[2,67],88:[2,67],91:[2,67],94:[2,67]},{72:[2,68],78:[2,68],80:[2,68],81:[2,68],83:[2,68],84:[2,68],85:[2,68],86:[2,68],87:[2,68],88:[2,68],91:[2,68],94:[2,68]},{72:[2,69],78:[2,69],80:[2,69],81:[2,69],83:[2,69],84:[2,69],85:[2,69],86:[2,69],87:[2,69],88:[2,69],91:[2,69],94:[2,69]},{72:[2,70],78:[2,70],80:[2,70],81:[2,70],83:[2,70],84:[2,70],85:[2,70],86:[2,70],87:[2,70],88:[2,70],91:[2,70],94:[2,70]},{72:[2,71],78:[2,71],80:[2,71],81:[2,71],83:[2,71],84:[2,71],85:[2,71],86:[2,71],87:[2,71],88:[2,71],91:[2,71],94:[2,71]},{20:[1,23]},{72:[2,74],78:[2,74],79:24,80:[2,74],81:[2,74],83:[2,74],84:[2,74],85:[2,74],86:[2,74],87:[2,74]},{4:25,5:26,20:[1,27]},{10:[1,28]},{10:[1,29]},{82:[1,30]},{82:[1,31]},{3:33,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43,82:[1,32]},{10:[1,54]},{69:56,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],80:[1,55],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{21:[1,58],22:59,23:[1,60],24:[1,61],25:[1,62],26:[1,63],27:[1,64],82:[1,57]},{82:[1,65]},{11:[2,13],21:[2,13],23:[2,13],24:[2,13],25:[2,13],26:[2,13],27:[2,13],30:[2,13],40:[2,13],41:[2,13],82:[2,13]},{3:66,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43,82:[1,67]},{3:68,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43},{72:[2,78],78:[2,78],80:[2,78],81:[2,78],83:[2,78],84:[2,78],85:[2,78],86:[2,78],87:[2,78],88:[2,78],91:[2,78],94:[2,78]},{72:[2,77],78:[2,77],80:[2,77],81:[2,77],83:[2,77],84:[2,77],85:[2,77],86:[2,77],87:[2,77],88:[2,77],91:[2,77],94:[2,77]},{72:[2,79],78:[2,79],80:[2,79],81:[2,79],83:[2,79],84:[2,79],85:[2,79],86:[2,79],87:[2,79],88:[2,79],91:[2,79],94:[2,79]},{82:[1,69]},{11:[2,1],21:[1,58],22:59,23:[1,60],24:[1,61],25:[1,62],26:[1,63],27:[1,64],28:70,29:73,30:[1,74],40:[1,71],41:[1,72],82:[2,1]},{11:[2,2],82:[2,2]},{11:[2,3],82:[2,3]},{11:[2,4],82:[2,4]},{11:[2,5],82:[2,5]},{11:[2,6],82:[2,6]},{3:75,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43},{11:[2,29],31:[2,29],44:[1,76],45:[1,77],82:[2,29]},{11:[2,12],82:[2,12]},{11:[2,44],31:[2,44],44:[2,44],45:[2,44],47:[1,78],49:[1,79],50:[1,80],82:[2,44]},{11:[2,39],31:[2,39],44:[2,39],45:[2,39],47:[2,39],49:[2,39],50:[2,39],82:[2,39]},{11:[2,40],31:[2,40],44:[2,40],45:[2,40],47:[2,40],49:[2,40],50:[2,40],82:[2,40]},{11:[2,33],31:[2,33],44:[2,33],45:[2,33],47:[2,33],49:[2,33],50:[2,33],82:[2,33]},{11:[2,34],31:[2,34],44:[2,34],45:[2,34],47:[2,34],49:[2,34],50:[2,34],82:[2,34]},{34:81,35:82,36:[1,83]},{11:[2,30],31:[2,30],44:[2,30],45:[2,30],47:[2,30],49:[2,30],50:[2,30],82:[2,30]},{4:85,20:[1,27],38:46,39:[1,49],40:[1,50],41:[1,51],42:84,43:47,44:[1,52],45:[1,53]},{4:85,20:[1,27],38:46,39:[1,49],40:[1,50],41:[1,51],42:86,43:47,44:[1,52],45:[1,53]},{4:85,20:[1,27],38:46,39:[1,49],40:[1,50],41:[1,51],42:87,43:47,44:[1,52],45:[1,53]},{4:85,20:[1,27],38:46,39:[1,49],40:[1,50],41:[1,51],42:88,43:47,44:[1,52],45:[1,53]},{11:[1,89],20:[1,91],96:90},{72:[2,72],78:[2,72],80:[2,72],81:[2,72],83:[2,72],84:[2,72],85:[2,72],86:[2,72],87:[2,72],88:[2,72],91:[2,72],94:[2,72]},{72:[2,73],78:[2,73],80:[2,73],81:[2,73],83:[2,73],84:[2,73],85:[2,73],86:[2,73],87:[2,73]},{72:[2,75],78:[2,75],80:[2,75],81:[2,75],83:[2,75],84:[2,75],85:[2,75],86:[2,75],87:[2,75],88:[2,75],91:[2,75],94:[2,75]},{4:85,7:92,20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43},{4:85,7:93,20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43},{20:[2,16],33:[2,16],39:[2,16],40:[2,16],41:[2,16],44:[2,16],45:[2,16]},{20:[2,17],33:[2,17],39:[2,17],40:[2,17],41:[2,17],44:[2,17],45:[2,17]},{20:[2,18],33:[2,18],39:[2,18],40:[2,18],41:[2,18],44:[2,18],45:[2,18]},{20:[2,19],33:[2,19],39:[2,19],40:[2,19],41:[2,19],44:[2,19],45:[2,19]},{20:[2,20],33:[2,20],39:[2,20],40:[2,20],41:[2,20],44:[2,20],45:[2,20]},{72:[2,76],78:[2,76],80:[2,76],81:[2,76],83:[2,76],84:[2,76],85:[2,76],86:[2,76],87:[2,76],88:[2,76],91:[2,76],94:[2,76]},{82:[1,94]},{3:95,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43,82:[1,96]},{11:[1,97]},{72:[2,80],78:[2,80],80:[2,80],81:[2,80],83:[2,80],84:[2,80],85:[2,80],86:[2,80],87:[2,80],88:[2,80],91:[2,80],94:[2,80]},{11:[2,21],29:98,30:[1,74],82:[2,21]},{11:[2,31],31:[2,31],44:[2,31],45:[2,31],47:[2,31],49:[2,31],50:[2,31],82:[2,31]},{11:[2,32],31:[2,32],44:[2,32],45:[2,32],47:[2,32],49:[2,32],50:[2,32],82:[2,32]},{11:[2,23],30:[2,23],82:[2,23]},{4:85,7:99,20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43},{11:[1,100]},{4:85,20:[1,27],32:45,33:[1,48],38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:101},{4:85,20:[1,27],32:45,33:[1,48],38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:102},{48:[1,103]},{48:[1,104]},{48:[1,105]},{11:[2,25],31:[2,25],35:106,36:[1,83],44:[2,25],45:[2,25],47:[2,25],49:[2,25],50:[2,25],82:[2,25]},{11:[2,27],31:[2,27],36:[2,27],44:[2,27],45:[2,27],47:[2,27],49:[2,27],50:[2,27],82:[2,27]},{20:[1,107]},{11:[2,35],31:[2,35],44:[2,35],45:[2,35],47:[2,35],49:[2,35],50:[2,35],82:[2,35]},{40:[1,71],41:[1,72]},{11:[2,36],31:[2,36],44:[2,36],45:[2,36],47:[2,36],49:[2,36],50:[2,36],82:[2,36]},{11:[2,37],31:[2,37],44:[2,37],45:[2,37],47:[2,37],49:[2,37],50:[2,37],82:[2,37]},{11:[2,38],31:[2,38],44:[2,38],45:[2,38],47:[2,38],49:[2,38],50:[2,38],82:[2,38]},{78:[1,108]},{11:[1,109],97:[1,110]},{11:[2,98],97:[2,98]},{11:[2,14],82:[2,14]},{11:[2,15],82:[2,15]},{3:111,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43,82:[1,112]},{82:[1,113]},{3:114,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],11:[1,115],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43},{69:116,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{11:[2,22],30:[2,22],82:[2,22]},{31:[1,117]},{11:[2,7],82:[2,7]},{11:[2,45],31:[2,45],44:[2,45],45:[2,45],47:[1,78],49:[1,79],50:[1,80],82:[2,45]},{11:[2,46],31:[2,46],44:[2,46],45:[2,46],47:[1,78],49:[1,79],50:[1,80],82:[2,46]},{11:[2,41],31:[2,41],44:[2,41],45:[2,41],47:[2,41],49:[2,41],50:[2,41],82:[2,41]},{11:[2,42],31:[2,42],44:[2,42],45:[2,42],47:[2,42],49:[2,42],50:[2,42],82:[2,42]},{11:[2,43],31:[2,43],44:[2,43],45:[2,43],47:[2,43],49:[2,43],50:[2,43],82:[2,43]},{11:[2,26],31:[2,26],36:[2,26],44:[2,26],45:[2,26],47:[2,26],49:[2,26],50:[2,26],82:[2,26]},{11:[2,28],31:[2,28],36:[2,28],44:[2,28],45:[2,28],47:[2,28],49:[2,28],50:[2,28],82:[2,28]},{72:[2,93],78:[2,93],80:[2,93],81:[2,93],83:[2,93],84:[2,93],85:[2,93],86:[2,93],87:[2,93],90:119,94:[2,93],95:118},{78:[1,120]},{20:[1,121]},{82:[1,122]},{3:123,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],11:[1,124],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43},{3:125,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],11:[1,126],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43},{11:[1,127]},{69:128,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{72:[2,89],78:[2,89],80:[2,89],81:[2,89],83:[2,89],84:[2,89],85:[2,89],86:[2,89],87:[2,89],88:[1,129],91:[2,89],94:[2,89]},{11:[2,24],30:[2,24],82:[2,24]},{80:[1,130]},{69:5,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],80:[2,100],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19],92:4,93:6,94:[1,15]},{72:[2,93],78:[2,93],80:[2,93],81:[2,93],83:[2,93],84:[2,93],85:[2,93],86:[2,93],87:[2,93],90:119,94:[2,93],95:131},{11:[2,99],97:[2,99]},{3:132,4:34,5:35,6:36,7:37,8:[1,38],9:39,10:[1,40],11:[1,133],19:[1,42],20:[1,27],32:45,33:[1,48],37:41,38:46,39:[1,49],40:[1,50],41:[1,51],42:44,43:47,44:[1,52],45:[1,53],46:43},{11:[1,134]},{69:135,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{11:[1,136]},{69:137,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{69:138,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{72:[2,88],78:[2,88],80:[2,88],81:[2,88],83:[2,88],84:[2,88],85:[2,88],86:[2,88],87:[2,88],88:[2,88],91:[2,88],94:[2,88]},{69:139,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{72:[2,96],78:[2,96],80:[2,96],81:[2,96],83:[2,96],84:[2,96],85:[2,96],86:[2,96],87:[2,96],91:[2,96],94:[2,96]},{80:[1,140]},{11:[1,141]},{69:142,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{69:143,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{72:[2,84],78:[2,84],80:[2,84],81:[2,84],83:[2,84],84:[2,84],85:[2,84],86:[2,84],87:[2,84],88:[2,84],91:[2,84],94:[2,84]},{69:144,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{72:[2,86],78:[2,86],80:[2,86],81:[2,86],83:[2,86],84:[2,86],85:[2,86],86:[2,86],87:[2,86],88:[2,86],91:[2,86],94:[2,86]},{72:[2,87],78:[2,87],80:[2,87],81:[2,87],83:[2,87],84:[2,87],85:[2,87],86:[2,87],87:[2,87],88:[2,87],91:[2,87],94:[2,87]},{72:[2,90],78:[2,90],80:[2,90],81:[2,90],83:[2,90],84:[2,90],85:[2,90],86:[2,90],87:[2,90],88:[2,90],91:[2,90],94:[2,90]},{72:[2,97],78:[2,97],80:[2,97],81:[2,97],83:[2,97],84:[2,97],85:[2,97],86:[2,97],87:[2,97],91:[2,97],94:[2,97]},{69:145,70:7,71:8,72:[1,9],73:10,74:11,75:12,76:13,77:14,78:[1,16],81:[1,17],83:[1,21],84:[1,20],85:[1,22],86:[1,18],87:[1,19]},{72:[2,82],78:[2,82],80:[2,82],81:[2,82],83:[2,82],84:[2,82],85:[2,82],86:[2,82],87:[2,82],88:[2,82],91:[2,82],94:[2,82]},{72:[2,83],78:[2,83],80:[2,83],81:[2,83],83:[2,83],84:[2,83],85:[2,83],86:[2,83],87:[2,83],88:[2,83],91:[2,83],94:[2,83]},{72:[2,85],78:[2,85],80:[2,85],81:[2,85],83:[2,85],84:[2,85],85:[2,85],86:[2,85],87:[2,85],88:[2,85],91:[2,85],94:[2,85]},{72:[2,81],78:[2,81],80:[2,81],81:[2,81],83:[2,81],84:[2,81],85:[2,81],86:[2,81],87:[2,81],88:[2,81],91:[2,81],94:[2,81]}], -defaultActions: {3:[2,91]}, +table: [{12:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],89:1,90:2,91:[2,95],94:[2,95]},{1:[3]},{3:5,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34,91:[1,3],92:4,93:6,94:[1,15]},{1:[2,93]},{12:[2,94],14:[2,94],15:[2,94],20:[2,94],21:[2,94],22:[2,94],23:[2,94],24:[2,94],26:[2,94],30:[2,94],38:[2,94],39:[2,94],40:[2,94],54:[2,94],60:[2,94],61:[2,94],64:[2,94],65:[2,94],91:[2,94],94:[2,94]},{12:[2,96],14:[2,96],15:[2,96],20:[2,96],21:[2,96],22:[2,96],23:[2,96],24:[2,96],26:[2,96],30:[2,96],38:[2,96],39:[2,96],40:[2,96],54:[2,96],60:[2,96],61:[2,96],64:[2,96],65:[2,96],91:[2,96],94:[2,96]},{12:[2,97],14:[2,97],15:[2,97],20:[2,97],21:[2,97],22:[2,97],23:[2,97],24:[2,97],26:[2,97],30:[2,97],38:[2,97],39:[2,97],40:[2,97],54:[2,97],60:[2,97],61:[2,97],64:[2,97],65:[2,97],91:[2,97],94:[2,97]},{12:[2,1],14:[2,1],15:[2,1],20:[2,1],21:[2,1],22:[2,1],23:[2,1],24:[2,1],26:[2,1],27:[2,1],30:[2,1],38:[2,1],39:[2,1],40:[2,1],54:[2,1],60:[2,1],61:[2,1],64:[2,1],65:[2,1],91:[2,1],94:[2,1]},{12:[2,2],14:[2,2],15:[2,2],20:[2,2],21:[2,2],22:[2,2],23:[2,2],24:[2,2],26:[2,2],27:[2,2],30:[2,2],38:[2,2],39:[2,2],40:[2,2],54:[2,2],60:[2,2],61:[2,2],64:[2,2],65:[2,2],91:[2,2],94:[2,2]},{12:[2,3],14:[2,3],15:[2,3],20:[2,3],21:[2,3],22:[2,3],23:[2,3],24:[2,3],26:[2,3],27:[2,3],30:[2,3],38:[2,3],39:[2,3],40:[2,3],54:[2,3],60:[2,3],61:[2,3],64:[2,3],65:[2,3],91:[2,3],94:[2,3]},{12:[2,4],14:[2,4],15:[2,4],20:[2,4],21:[2,4],22:[2,4],23:[2,4],24:[2,4],26:[2,4],27:[2,4],30:[2,4],38:[2,4],39:[2,4],40:[2,4],54:[2,4],60:[2,4],61:[2,4],64:[2,4],65:[2,4],91:[2,4],94:[2,4]},{12:[2,5],14:[2,5],15:[2,5],20:[2,5],21:[2,5],22:[2,5],23:[2,5],24:[2,5],26:[2,5],27:[2,5],30:[2,5],38:[2,5],39:[2,5],40:[2,5],54:[2,5],60:[2,5],61:[2,5],64:[2,5],65:[2,5],91:[2,5],94:[2,5]},{12:[2,6],14:[2,6],15:[2,6],20:[2,6],21:[2,6],22:[2,6],23:[2,6],24:[2,6],26:[2,6],27:[2,6],30:[2,6],38:[2,6],39:[2,6],40:[2,6],54:[2,6],60:[2,6],61:[2,6],64:[2,6],65:[2,6],91:[2,6],94:[2,6]},{12:[2,7],14:[2,7],15:[2,7],20:[2,7],21:[2,7],22:[2,7],23:[2,7],24:[2,7],26:[2,7],27:[2,7],30:[2,7],38:[2,7],39:[2,7],40:[2,7],54:[2,7],60:[2,7],61:[2,7],64:[2,7],65:[2,7],91:[2,7],94:[2,7]},{12:[2,8],14:[2,8],15:[2,8],20:[2,8],21:[2,8],22:[2,8],23:[2,8],24:[2,8],26:[2,8],27:[2,8],30:[2,8],38:[2,8],39:[2,8],40:[2,8],54:[2,8],60:[2,8],61:[2,8],64:[2,8],65:[2,8],91:[2,8],94:[2,8]},{40:[1,46]},{12:[2,11],13:47,14:[2,11],15:[2,11],20:[2,11],21:[2,11],22:[2,11],23:[2,11],24:[2,11],26:[2,11],30:[2,11],38:[2,11],39:[2,11],40:[2,11],54:[2,11],60:[2,11],61:[2,11],64:[2,11],65:[2,11]},{16:48,18:49,40:[1,31]},{17:[1,50]},{24:[1,51]},{24:[1,52]},{17:[1,53]},{17:[1,54]},{16:24,17:[1,55],18:25,19:56,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[2,29],25:[2,29],41:[1,57],43:58,44:[1,62],45:[1,63],46:[1,64],47:[1,65],48:[1,66],49:59,50:67,51:[1,68],60:[1,60],61:[1,61]},{17:[2,30],25:[2,30]},{17:[2,31],25:[2,31]},{17:[2,32],25:[2,32]},{17:[2,33],25:[2,33]},{17:[2,34],25:[2,34]},{16:24,18:25,19:69,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[2,41],25:[2,41],41:[2,41],44:[2,41],45:[2,41],46:[2,41],47:[2,41],48:[2,41],51:[2,41],60:[2,41],61:[2,41]},{17:[2,58],25:[2,58],52:[2,58],64:[1,70],65:[1,71]},{17:[2,40],25:[2,40]},{17:[2,73],25:[2,73],52:[2,73],64:[2,73],65:[2,73],67:[1,72],69:[1,73],70:[1,74]},{17:[2,68],25:[2,68],52:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68]},{17:[2,69],25:[2,69],52:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69]},{17:[2,62],25:[2,62],52:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62]},{17:[2,63],25:[2,63],52:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63]},{55:75,56:76,57:[1,77]},{17:[2,59],25:[2,59],52:[2,59],64:[2,59],65:[2,59],67:[2,59],69:[2,59],70:[2,59]},{16:79,37:40,38:[1,45],40:[1,31],59:37,60:[1,41],61:[1,42],62:78,63:38,64:[1,43],65:[1,44]},{16:79,37:40,38:[1,45],40:[1,31],59:37,60:[1,41],61:[1,42],62:80,63:38,64:[1,43],65:[1,44]},{16:79,37:40,38:[1,45],40:[1,31],59:37,60:[1,41],61:[1,42],62:81,63:38,64:[1,43],65:[1,44]},{16:79,37:40,38:[1,45],40:[1,31],59:37,60:[1,41],61:[1,42],62:82,63:38,64:[1,43],65:[1,44]},{17:[2,39],25:[2,39],52:[2,39],64:[2,39],65:[2,39],67:[2,39],69:[2,39],70:[2,39]},{24:[1,83]},{3:85,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],14:[1,84],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[1,86],41:[1,57],43:58,44:[1,62],45:[1,63],46:[1,64],47:[1,65],48:[1,66]},{17:[1,87]},{12:[2,14],14:[2,14],15:[2,14],20:[2,14],21:[2,14],22:[2,14],23:[2,14],24:[2,14],26:[2,14],27:[2,14],30:[2,14],38:[2,14],39:[2,14],40:[2,14],54:[2,14],60:[2,14],61:[2,14],64:[2,14],65:[2,14],91:[2,14],94:[2,14]},{16:24,17:[1,89],18:25,19:88,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{16:24,18:25,19:90,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,16],14:[2,16],15:[2,16],20:[2,16],21:[2,16],22:[2,16],23:[2,16],24:[2,16],26:[2,16],27:[2,16],30:[2,16],38:[2,16],39:[2,16],40:[2,16],54:[2,16],60:[2,16],61:[2,16],64:[2,16],65:[2,16],91:[2,16],94:[2,16]},{12:[2,15],14:[2,15],15:[2,15],20:[2,15],21:[2,15],22:[2,15],23:[2,15],24:[2,15],26:[2,15],27:[2,15],30:[2,15],38:[2,15],39:[2,15],40:[2,15],54:[2,15],60:[2,15],61:[2,15],64:[2,15],65:[2,15],91:[2,15],94:[2,15]},{12:[2,17],14:[2,17],15:[2,17],20:[2,17],21:[2,17],22:[2,17],23:[2,17],24:[2,17],26:[2,17],27:[2,17],30:[2,17],38:[2,17],39:[2,17],40:[2,17],54:[2,17],60:[2,17],61:[2,17],64:[2,17],65:[2,17],91:[2,17],94:[2,17]},{17:[1,91]},{16:79,29:92,37:40,38:[1,45],40:[1,31],42:93,53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34,94:[1,94]},{16:79,29:95,37:40,38:[1,45],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[2,50],25:[2,50],50:96,51:[1,68]},{17:[2,60],25:[2,60],52:[2,60],64:[2,60],65:[2,60],67:[2,60],69:[2,60],70:[2,60]},{17:[2,61],25:[2,61],52:[2,61],64:[2,61],65:[2,61],67:[2,61],69:[2,61],70:[2,61]},{38:[2,45],40:[2,45],54:[2,45],60:[2,45],61:[2,45],64:[2,45],65:[2,45]},{38:[2,46],40:[2,46],54:[2,46],60:[2,46],61:[2,46],64:[2,46],65:[2,46]},{38:[2,47],40:[2,47],54:[2,47],60:[2,47],61:[2,47],64:[2,47],65:[2,47]},{38:[2,48],40:[2,48],54:[2,48],60:[2,48],61:[2,48],64:[2,48],65:[2,48]},{38:[2,49],40:[2,49],54:[2,49],60:[2,49],61:[2,49],64:[2,49],65:[2,49]},{17:[2,52],25:[2,52],51:[2,52]},{16:79,29:97,37:40,38:[1,45],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,98]},{16:79,37:40,38:[1,45],40:[1,31],53:36,54:[1,39],59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:99},{16:79,37:40,38:[1,45],40:[1,31],53:36,54:[1,39],59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:100},{68:[1,101]},{68:[1,102]},{68:[1,103]},{17:[2,54],25:[2,54],52:[2,54],56:104,57:[1,77],64:[2,54],65:[2,54],67:[2,54],69:[2,54],70:[2,54]},{17:[2,56],25:[2,56],52:[2,56],57:[2,56],64:[2,56],65:[2,56],67:[2,56],69:[2,56],70:[2,56]},{40:[1,105]},{17:[2,64],25:[2,64],52:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64]},{60:[1,60],61:[1,61]},{17:[2,65],25:[2,65],52:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65]},{17:[2,66],25:[2,66],52:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66]},{17:[2,67],25:[2,67],52:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67]},{25:[1,106],40:[1,108],96:107},{12:[2,9],14:[2,9],15:[2,9],20:[2,9],21:[2,9],22:[2,9],23:[2,9],24:[2,9],26:[2,9],27:[2,9],30:[2,9],38:[2,9],39:[2,9],40:[2,9],54:[2,9],60:[2,9],61:[2,9],64:[2,9],65:[2,9],91:[2,9],94:[2,9]},{12:[2,10],14:[2,10],15:[2,10],20:[2,10],21:[2,10],22:[2,10],23:[2,10],24:[2,10],26:[2,10],30:[2,10],38:[2,10],39:[2,10],40:[2,10],54:[2,10],60:[2,10],61:[2,10],64:[2,10],65:[2,10]},{12:[2,12],14:[2,12],15:[2,12],20:[2,12],21:[2,12],22:[2,12],23:[2,12],24:[2,12],26:[2,12],27:[2,12],30:[2,12],38:[2,12],39:[2,12],40:[2,12],54:[2,12],60:[2,12],61:[2,12],64:[2,12],65:[2,12],91:[2,12],94:[2,12]},{12:[2,13],14:[2,13],15:[2,13],20:[2,13],21:[2,13],22:[2,13],23:[2,13],24:[2,13],26:[2,13],27:[2,13],30:[2,13],38:[2,13],39:[2,13],40:[2,13],54:[2,13],60:[2,13],61:[2,13],64:[2,13],65:[2,13],91:[2,13],94:[2,13]},{17:[1,109]},{16:24,17:[1,111],18:25,19:110,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,112]},{12:[2,18],14:[2,18],15:[2,18],20:[2,18],21:[2,18],22:[2,18],23:[2,18],24:[2,18],26:[2,18],27:[2,18],30:[2,18],38:[2,18],39:[2,18],40:[2,18],54:[2,18],60:[2,18],61:[2,18],64:[2,18],65:[2,18],91:[2,18],94:[2,18]},{17:[2,42],25:[2,42]},{17:[2,43],25:[2,43]},{24:[1,114],40:[1,113]},{17:[2,44],25:[2,44]},{17:[2,51],25:[2,51],51:[2,51]},{52:[1,115]},{17:[2,35],25:[2,35]},{17:[2,74],25:[2,74],52:[2,74],64:[2,74],65:[2,74],67:[1,72],69:[1,73],70:[1,74]},{17:[2,75],25:[2,75],52:[2,75],64:[2,75],65:[2,75],67:[1,72],69:[1,73],70:[1,74]},{17:[2,70],25:[2,70],52:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70]},{17:[2,71],25:[2,71],52:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71]},{17:[2,72],25:[2,72],52:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72]},{17:[2,55],25:[2,55],52:[2,55],57:[2,55],64:[2,55],65:[2,55],67:[2,55],69:[2,55],70:[2,55]},{17:[2,57],25:[2,57],52:[2,57],57:[2,57],64:[2,57],65:[2,57],67:[2,57],69:[2,57],70:[2,57]},{12:[1,116]},{25:[1,117],97:[1,118]},{25:[2,104],97:[2,104]},{16:24,17:[1,120],18:25,19:119,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[1,121]},{16:24,18:25,19:122,24:[1,30],25:[1,123],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{3:124,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{24:[1,125]},{25:[1,126],40:[1,108],96:127},{17:[2,53],25:[2,53],51:[2,53]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:128},{12:[1,130]},{40:[1,131]},{17:[1,132]},{16:24,18:25,19:133,24:[1,30],25:[1,134],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{16:24,18:25,19:135,24:[1,30],25:[1,136],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,137]},{3:138,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,27],14:[2,27],15:[2,27],20:[2,27],21:[2,27],22:[2,27],23:[2,27],24:[2,27],26:[2,27],27:[1,139],30:[2,27],38:[2,27],39:[2,27],40:[2,27],54:[2,27],60:[2,27],61:[2,27],64:[2,27],65:[2,27],91:[2,27],94:[2,27]},{25:[1,140],40:[1,108],96:141},{12:[1,142]},{25:[1,143],97:[1,118]},{14:[1,144]},{3:5,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],14:[2,106],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34,92:4,93:6,94:[1,15]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:145},{25:[2,105],97:[2,105]},{16:24,18:25,19:146,24:[1,30],25:[1,147],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,148]},{3:149,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,150]},{3:151,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{3:152,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,26],14:[2,26],15:[2,26],20:[2,26],21:[2,26],22:[2,26],23:[2,26],24:[2,26],26:[2,26],27:[2,26],30:[2,26],38:[2,26],39:[2,26],40:[2,26],54:[2,26],60:[2,26],61:[2,26],64:[2,26],65:[2,26],91:[2,26],94:[2,26]},{3:153,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[1,154]},{25:[1,155],97:[1,118]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:156},{12:[1,157]},{12:[2,98],14:[2,98],15:[2,98],20:[2,98],21:[2,98],22:[2,98],23:[2,98],24:[2,98],26:[2,98],30:[2,98],38:[2,98],39:[2,98],40:[2,98],54:[2,98],60:[2,98],61:[2,98],64:[2,98],65:[2,98],91:[2,98],94:[2,98]},{14:[1,158]},{25:[1,159]},{3:160,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{3:161,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,22],14:[2,22],15:[2,22],20:[2,22],21:[2,22],22:[2,22],23:[2,22],24:[2,22],26:[2,22],27:[2,22],30:[2,22],38:[2,22],39:[2,22],40:[2,22],54:[2,22],60:[2,22],61:[2,22],64:[2,22],65:[2,22],91:[2,22],94:[2,22]},{3:162,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,24],14:[2,24],15:[2,24],20:[2,24],21:[2,24],22:[2,24],23:[2,24],24:[2,24],26:[2,24],27:[2,24],30:[2,24],38:[2,24],39:[2,24],40:[2,24],54:[2,24],60:[2,24],61:[2,24],64:[2,24],65:[2,24],91:[2,24],94:[2,24]},{12:[2,25],14:[2,25],15:[2,25],20:[2,25],21:[2,25],22:[2,25],23:[2,25],24:[2,25],26:[2,25],27:[2,25],30:[2,25],38:[2,25],39:[2,25],40:[2,25],54:[2,25],60:[2,25],61:[2,25],64:[2,25],65:[2,25],91:[2,25],94:[2,25]},{12:[2,28],14:[2,28],15:[2,28],20:[2,28],21:[2,28],22:[2,28],23:[2,28],24:[2,28],26:[2,28],27:[2,28],30:[2,28],38:[2,28],39:[2,28],40:[2,28],54:[2,28],60:[2,28],61:[2,28],64:[2,28],65:[2,28],91:[2,28],94:[2,28]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:163},{12:[1,164]},{14:[1,165]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:166},{12:[2,99],14:[2,99],15:[2,99],20:[2,99],21:[2,99],22:[2,99],23:[2,99],24:[2,99],26:[2,99],30:[2,99],38:[2,99],39:[2,99],40:[2,99],54:[2,99],60:[2,99],61:[2,99],64:[2,99],65:[2,99],91:[2,99],94:[2,99]},{3:167,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,20],14:[2,20],15:[2,20],20:[2,20],21:[2,20],22:[2,20],23:[2,20],24:[2,20],26:[2,20],27:[2,20],30:[2,20],38:[2,20],39:[2,20],40:[2,20],54:[2,20],60:[2,20],61:[2,20],64:[2,20],65:[2,20],91:[2,20],94:[2,20]},{12:[2,21],14:[2,21],15:[2,21],20:[2,21],21:[2,21],22:[2,21],23:[2,21],24:[2,21],26:[2,21],27:[2,21],30:[2,21],38:[2,21],39:[2,21],40:[2,21],54:[2,21],60:[2,21],61:[2,21],64:[2,21],65:[2,21],91:[2,21],94:[2,21]},{12:[2,23],14:[2,23],15:[2,23],20:[2,23],21:[2,23],22:[2,23],23:[2,23],24:[2,23],26:[2,23],27:[2,23],30:[2,23],38:[2,23],39:[2,23],40:[2,23],54:[2,23],60:[2,23],61:[2,23],64:[2,23],65:[2,23],91:[2,23],94:[2,23]},{14:[1,168]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:169},{17:[2,102],25:[2,102]},{14:[1,170]},{12:[2,19],14:[2,19],15:[2,19],20:[2,19],21:[2,19],22:[2,19],23:[2,19],24:[2,19],26:[2,19],27:[2,19],30:[2,19],38:[2,19],39:[2,19],40:[2,19],54:[2,19],60:[2,19],61:[2,19],64:[2,19],65:[2,19],91:[2,19],94:[2,19]},{17:[2,100],25:[2,100]},{14:[1,171]},{17:[2,103],25:[2,103]},{17:[2,101],25:[2,101]}], +defaultActions: {3:[2,93]}, parseError: function parseError(str,hash){if(hash.recoverable){this.trace(str)}else{throw new Error(str)}}, parse: function parse(input) { var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;