From cb7a1033fa9aa00779022ce3e6fb328be1d485f2 Mon Sep 17 00:00:00 2001 From: Jeremy Ashkenas Date: Tue, 2 Feb 2010 20:36:46 -0500 Subject: [PATCH] adding @property for this.property --- .../Syntaxes/CoffeeScript.tmLanguage | 6 + lib/coffee_script/grammar.y | 7 + lib/coffee_script/nodes.rb | 12 + lib/coffee_script/parser.rb | 2447 +++++++++-------- test/fixtures/execution/test_literals.coffee | 13 +- 5 files changed, 1307 insertions(+), 1178 deletions(-) diff --git a/extras/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage b/extras/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage index 49082c8a..1f8ab952 100644 --- a/extras/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage +++ b/extras/CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage @@ -72,6 +72,12 @@ name constant.numeric.coffee + + match + (@)[a-zA-Z_$]\w* + name + variable.other.readwrite.instance.coffee + name string.quoted.heredoc.coffee diff --git a/lib/coffee_script/grammar.y b/lib/coffee_script/grammar.y index 174a498d..c9fb2802 100644 --- a/lib/coffee_script/grammar.y +++ b/lib/coffee_script/grammar.y @@ -238,6 +238,7 @@ rule | Object { result = ValueNode.new(val[0]) } | Parenthetical { result = ValueNode.new(val[0]) } | Range { result = ValueNode.new(val[0]) } + | This { result = ValueNode.new(val[0]) } | Value Accessor { result = val[0] << val[1] } | Invocation Accessor { result = ValueNode.new(val[0], [val[1]]) } ; @@ -300,6 +301,12 @@ rule SUPER CALL_START ArgList CALL_END { result = CallNode.new(Value.new('super'), val[2]) } ; + # This references, either naked or to a property. + This: + '@' { result = ThisNode.new } + | '@' IDENTIFIER { result = ThisNode.new(val[1]) } + ; + # The range literal. Range: "[" Expression diff --git a/lib/coffee_script/nodes.rb b/lib/coffee_script/nodes.rb index 7e759b7c..1fa5680a 100644 --- a/lib/coffee_script/nodes.rb +++ b/lib/coffee_script/nodes.rb @@ -429,6 +429,18 @@ module CoffeeScript end end + # A this-reference, using '@'. + class ThisNode < Node + def initialize(property=nil) + @property = property + end + + def compile_node(o) + prop = @property ? ".#{@property}" : '' + write("this#{prop}") + end + end + # A range literal. Ranges can be used to extract portions (slices) of arrays, # or to specify a range for array comprehensions. class RangeNode < Node diff --git a/lib/coffee_script/parser.rb b/lib/coffee_script/parser.rb index 9b342e4b..b87861d6 100644 --- a/lib/coffee_script/parser.rb +++ b/lib/coffee_script/parser.rb @@ -10,7 +10,7 @@ module CoffeeScript class Parser < Racc::Parser -module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 459) +module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 466) # Lex and parse a CoffeeScript. def parse(code) # Uncomment the following line to enable grammar debugging, in combination @@ -34,318 +34,349 @@ module_eval(<<'...end grammar.y/module_eval...', 'grammar.y', 459) ##### State transition tables begin ### clist = [ -'128,59,136,28,31,33,38,42,47,51,56,61,64,92,93,95,175,92,93,95,284,285', -'90,276,91,296,90,59,91,59,57,65,124,130,59,155,288,144,287,261,169,158', -'143,147,164,44,155,49,54,309,193,155,173,143,147,150,153,157,143,147', -'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126', -'131,134,138,141,145,148,151,154,159,121,125,129,133,137,140,166,11,174', -'13,17,191,29,262,34,11,40,198,28,31,33,38,42,47,51,56,61,64,206,207', -'203,155,1,59,100,21,25,193,-183,-183,193,43,98,291,52,57,65,66,13,17', -'206,207,6,12,59,22,59,32,35,267,44,280,49,54,13,17,188,59,189,73,4,9', -'15,19,24,13,17,49,37,46,118,261,13,17,191,13,17,191,192,49,11,278,293', -'28,31,33,38,42,47,51,56,61,64,277,13,17,188,1,2,7,21,25,275,29,59,34', -'43,40,75,52,57,65,66,100,255,13,17,6,12,114,22,98,32,35,155,44,169,49', -'54,200,201,143,147,261,73,4,9,15,19,24,100,49,155,37,46,100,100,182', -'98,-183,-183,13,17,98,98,11,49,59,28,31,33,38,42,47,51,56,61,64,92,93', -'95,108,1,2,7,21,25,90,29,91,34,43,40,49,52,57,65,66,49,49,101,101,6', -'12,183,22,184,32,35,155,44,314,49,54,13,17,-183,-183,185,73,4,9,15,19', -'24,155,284,285,37,46,13,17,143,147,150,153,157,161,123,186,11,2,7,28', -'31,33,38,42,47,51,56,61,64,92,93,95,202,1,2,7,21,25,90,29,91,34,43,40', -'155,52,57,65,66,205,75,-183,-183,6,12,118,22,217,32,35,155,44,,49,54', -',,-183,-183,,73,4,9,15,19,24,155,,,37,46,,,143,147,150,153,157,161,123', -',11,,,28,31,33,38,42,47,51,56,61,64,92,93,95,,1,2,7,21,25,90,29,91,34', -'43,40,155,52,57,65,66,,,143,147,6,12,,22,,32,35,155,44,,49,54,,,-183', -'-183,,73,4,9,15,19,24,155,,,37,46,,,143,147,150,153,157,161,123,,11', -',,28,31,33,38,42,47,51,56,61,64,92,93,95,,1,2,7,21,25,90,29,91,34,43', -'40,155,52,57,65,66,,,-183,-183,6,12,,22,,32,35,155,44,,49,54,,,-183', -'-183,,73,4,9,15,19,24,155,,,37,46,,,143,147,150,153,157,,,,11,,,28,31', -'33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,', -',,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,', -',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,', -'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37', -'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29', -',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15', -'19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2', -'7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,', -',,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61', -'64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44', -',49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47', -'51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22', -',32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31', -'33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,', -',,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,', -',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,', -'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37', -'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29', -',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15', -'19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2', -'7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,106', -',,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56', -'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35', -',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38', -'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12', -',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28', -'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66', -',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,', -',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40', -',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,', -'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,', -'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9', -'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1', -'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54', -',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56', -'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35', -',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38', -'42,47,51,56,61,64,310,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,', -'6,12,,22,,32,35,,44,,49,54,,116,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,', -',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,', -'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37', -'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29', -',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15', -'19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2', -'7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,', -',,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61', -'64,300,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35', -',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38', -'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12', -',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28', -'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66', -',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,', -',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40', -',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,', -'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,', -'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9', -'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1', -'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54', -',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56', -'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35', -',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38', -'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12', -',22,,32,35,,44,,49,54,272,,,,,73,4,9,15,19,24,155,,,37,46,,,143,147', -'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126', -'131,134,,,,,,2,7,13,17,,29,,34,11,40,,28,31,33,38,42,47,51,56,61,64', -',,,,1,,,21,25,,,,,43,,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,', -',,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61', -'64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44', -',49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47', -'51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22', -',32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31', -'33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,', -',,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,', -',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,', -'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37', -'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29', -',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15', -'19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2', -'7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,', -',,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61', -'64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44', -',49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47', -'51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22', -',32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31', -'33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,', -',,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,', -',,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,', -'52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37', -'46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29', -',34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,106,,,,,73,4,9', -'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1', -'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54', -',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56', -'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35', -',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38', -'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12', -',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28', -'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66', -',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,', -',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40', -',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,', -'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,', -'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9', -'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1', -'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54', -',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56', -'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35', -',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38', -'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12', -',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28', -'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66', -',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,', -',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40', -',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,', -'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,', -'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9', -'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1', -'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54', -'106,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51', -'56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32', -'35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33', -'38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,', -'6,12,,22,,32,35,,44,,49,54,59,,,,,73,4,9,15,19,24,155,,,37,46,,,143', -'147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122', -'126,131,134,,,,,,2,7,13,17,,29,,34,11,40,,28,31,33,38,42,47,51,56,61', -'64,,,,,1,,,21,25,,,,,43,,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54', -',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56', -'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35', -',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38', -'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12', -',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28', -'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66', -',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,', -',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40', -',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,', -'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,', -'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9', -'15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1', -'2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54', -',,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56', -'61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35', -',44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28,31,33,38', -'42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,6,12', -',22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,,,,,11,,,28', -'31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66', -',,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,,,', -',,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,,29,,34,43,40', -',52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,', -'37,46,,,,,,,,,,,11,,,28,31,33,38,42,47,51,56,61,64,,,,,1,2,7,21,25,', -'29,,34,43,40,,52,57,65,66,,,,,6,12,,22,,32,35,,44,,49,54,,128,,136,', -'73,4,9,15,19,24,155,,,37,46,,,143,147,150,153,157,161,123,127,132,135', -'139,142,146,,,124,130,,,,144,,,,158,,2,7,,,,29,,34,155,40,,,,,,143,147', -'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126', -'131,134,138,141,145,148,151,154,159,121,125,129,133,137,140,128,,136', -'155,,,,,,319,143,147,150,153,157,161,123,127,132,135,139,142,146,149', -'152,156,160,122,126,131,134,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,', -',,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160', -'122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137,140', -',,,,,,,,,313,28,31,33,38,42,47,51,56,61,64,,,,,1,,,21,25,,,,,43,,,52', -'57,65,,,,,,,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,,,,37,46,', -',,,28,31,33,38,42,47,51,56,61,64,,,,,1,,,21,25,,,,,43,2,7,52,57,65,29', -',34,,40,,12,,22,,32,35,,44,,49,54,,,,,,73,4,9,15,19,24,155,,,37,46,', -',143,147,150,153,157,161,123,127,132,135,,28,31,33,38,42,47,51,56,61', -'64,,,,,1,2,7,21,25,,29,,34,43,40,,52,57,65,66,,,,,,12,,22,,32,35,,44', -',49,54,,,,,,73,4,9,15,19,24,,,,37,46,,,,,28,31,33,38,42,47,51,56,61', -'64,,,,,1,,,21,25,,,,,43,2,7,52,57,65,29,,34,,40,,12,,22,,32,35,,44,', -'49,54,,,,,,73,4,9,15,,28,31,33,38,42,47,51,56,61,64,155,,,,,,,143,147', -'150,153,157,161,123,127,132,135,57,65,,,,,,2,7,,,,29,,34,44,40,155,54', -',128,,136,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152', -'156,160,122,126,131,134,,,,,,,,124,130,,,,144,,,,158,,,,,,,29,,34,155', -'40,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152', -'156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,133', -'137,140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135,139', -'142,146,149,152,156,160,122,126,131,134,,,,124,130,,,,144,,,,158,,,', -',,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146', -'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125', -'129,133,137,140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132', -'135,139,142,146,,,,,318,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,', -',,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160', -'122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137,140', -'128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146', -'149,152,156,160,122,126,131,134,,,,124,130,,,,144,,,,158,,,,,,,,,,155', -',,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156', -'160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137', -'140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135,139,142', -'146,149,152,156,160,122,126,131,134,,,,124,130,,,,144,,,,158,,,,,,,', -'178,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149', -'152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,129', -'133,137,140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135', -'139,142,146,149,152,156,160,122,126,131,134,,,,124,130,,,,144,,,,158', -',,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146', -'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125', -'129,133,137,140,128,155,136,,,,,,143,147,150,153,157,161,123,127,132', -'135,139,142,146,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,', -'143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160', -'122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137,140', -'128,155,136,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146', -',,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153', -'157,161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134', -'138,141,145,148,151,154,159,121,125,129,133,137,140,128,155,136,,,,', -',143,147,150,153,157,161,123,127,132,135,,,,,,,,,,,,,,,124,130,,,,144', -',,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139', -'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159', -'121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130', -',,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132', -'135,139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151', -'154,159,121,125,196,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,', -',,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123', -'127,132,135,139,142,146,149,152,156,160,122,126,131,134,138,141,145', -'148,151,154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157', -'161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138', -'141,145,148,151,154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,', -',,,,,,,,,,,320,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147', -'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126', -'131,134,138,141,145,148,151,154,159,121,125,129,133,137,140,128,,136', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,59,,155,,', -',,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156', -'160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137', -'140,128,,136,,,,,,,,,,,,,,,,,,,,,,,264,,,,,,,124,130,,,,144,,,,158,', -',,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146', -'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125', -'263,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130,,,,144', -',,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139', -'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159', -'121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130', -',,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132', -'135,139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151', -'154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,', -',,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123', -'127,132,135,139,142,146,149,152,156,160,122,126,131,134,138,141,145', -'148,151,154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,,,,,,,,,', -',,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157', -'161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138', -'141,145,148,151,154,159,121,125,129,133,137,140,128,,136,,,,,,,,,,,', -',,,,,,,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,,,155,,,,,,,143,147,150', -'153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126,131', -'134,138,141,145,148,151,154,159,121,125,129,133,137,140,128,,136,,,', -',,,,,,,,,,,,,,,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,59,,155,,,,,', -',143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160', -'122,126,131,134,138,141,145,148,151,154,159,121,125,129,133,137,140', -'128,,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,124,130,,,,144,,,,158,,,,,,,,', -',155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152', -'156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,133', -'137,140,124,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161', -'123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138,141', -'145,148,151,154,159,121,125,129,133,137,140,124,130,,,,,,,,158,,,,,', -',,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149', -'152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,129', -'133,137,140,124,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157', -'161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138', -'141,145,148,151,154,159,121,125,129,124,130,,,,,,,,158,,,,,,,,,,155', -',,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156', -'160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,124,130', -',,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135', -'139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154', -'159,121,125,129,124,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153', -'157,161,123,127,132,135,139,142,146,149,152,156,160,122,126,131,134', -'138,141,145,148,151,154,159,121,125,129,130,,,,,,,,158,,,,,,,,,,155', -',,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156', -'160,122,126,131,134,138,141,145,148,151,154,159,121,125,129,130,,,,', -',,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139', -'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159', -'121,125,129,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161', -'123,127,132,135,139,142,146,149,152,156,160,122,126,131,134,138,141', -'145,148,151,154,159,121,125,129,130,,,,,,,,158,,,,,,,,,,155,,,,,,,143', -'147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122', -'126,131,134,138,141,145,148,151,154,159,121,125,129,130,,,,,,,,158,', -',,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146', -'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125', -'129,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139', -'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159', -'121,125,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132,135', -'139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154', -'159,121,125,158,,,,,,,,,,155,,,,,,,143,147,150,153,157,161,123,127,132', -'135,139,142,146,149,152,156,160,122,126,131,134,138,141,145,148,151', -'154,159,121,125,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139', -'142,146,149,152,156,160,122,126,131,134,138,141,145,148,151,154,159', -'121,125,155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146', -'149,152,156,160,122,126,131,134,138,141,145,148,151,154,159,121,125', -'155,,,,,,,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152', -'156,160,122,126,131,134,138,141,145,148,151,154,159,121,125,155,,,,', -',,143,147,150,153,157,161,123,127,132,135,139,142,146,149,152,156,160', -'122,126,131,134,138,141,145,148,151,154,159,121,125,155,,,,,,,143,147', -'150,153,157,161,123,127,132,135,139,142,146,149,152,156,160,122,126', -'131,134,138,141,145,148,151,154,159,121,125' ] - racc_action_table = arr = Array.new(9160, nil) +'136,11,144,29,32,35,41,44,49,54,58,63,66,106,107,108,61,1,178,281,21', +'26,103,300,105,112,43,163,262,55,59,67,132,138,-186,-186,51,152,12,280', +'22,166,33,37,171,45,279,51,56,61,61,163,13,17,74,4,9,15,151,155,158', +'161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139', +'142,146,149,153,156,159,162,167,129,133,137,141,145,148,172,2,7,125', +'177,310,30,274,36,39,11,48,208,29,32,35,41,44,49,54,58,63,66,283,271', +'202,61,1,212,213,21,26,287,288,202,98,43,296,61,55,59,67,68,97,270,122', +'61,6,12,210,22,202,33,37,163,45,113,51,56,114,77,-186,-186,290,74,4', +'9,15,19,24,13,17,200,40,47,262,262,201,51,13,17,200,61,51,51,98,297', +'13,17,13,17,186,98,97,13,17,13,17,200,163,97,206,207,2,7,61,-186,-186', +'30,176,36,39,11,48,84,29,32,35,41,44,49,54,58,63,66,61,13,17,51,1,99', +'98,21,26,84,51,189,99,43,97,98,55,59,67,68,287,288,190,97,6,12,195,22', +'196,33,37,163,45,197,51,56,13,17,151,155,163,74,4,9,15,19,24,-186,-186', +'51,40,47,163,13,17,186,291,187,51,151,155,158,161,165,169,131,135,140', +'143,147,150,154,157,160,164,168,130,134,139,142,2,7,2,7,77,30,61,36', +'39,11,48,319,29,32,35,41,44,49,54,58,63,66,106,107,108,224,1,13,17,21', +'26,103,209,105,125,43,163,211,55,59,67,68,258,-186,-186,,6,12,,22,,33', +'37,163,45,,51,56,212,213,151,155,,74,4,9,15,19,24,163,,,40,47,,,151', +'155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130', +'134,139,142,313,163,,,,2,7,,-186,-186,30,,36,39,11,48,,29,32,35,41,44', +'49,54,58,63,66,106,107,108,,1,,,21,26,103,,105,,43,163,,55,59,67,68', +',151,155,,6,12,,22,,33,37,163,45,,51,56,,,-186,-186,,74,4,9,15,19,24', +'163,,,40,47,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157', +'160,164,168,130,134,139,142,106,107,108,,,2,7,,,103,30,105,36,39,11', +'48,,29,32,35,41,44,49,54,58,63,66,106,107,108,,1,,,21,26,103,,105,,43', +'163,,55,59,67,68,,-186,-186,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9', +'15,19,24,163,,,40,47,,,151,155,158,161,165,169,131,135,140,143,147,150', +'154,157,160,164,168,130,134,139,142,106,107,108,,,2,7,,,103,30,105,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163,,,40,47', +',,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168', +'130,134,139,142,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58', +'63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51', +'56,,,,,,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131,135', +'140,143,147,150,154,157,160,164,168,130,134,139,142,,,,,,2,7,,,,30,', +'36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55', +'59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163,,,40', +'47,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', +'168,130,134,139,142,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54', +'58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45', +',51,56,,,,,,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131', +'135,140,143,147,150,154,157,160,164,168,130,134,139,142,,,,,,2,7,,,', +'30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43', +',,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163', +',,40,47,,,151,155,158,161,165,169,131,135,140,143,147,150,154,163,,', +',,,,151,155,158,161,165,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54', +'58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45', +',51,56,,,,,,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131', +'135,140,143,147,150,154,163,,,,,,,151,155,158,161,165,,2,7,,,,30,,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163,,,40,47', +',,151,155,158,161,165,169,131,135,140,143,147,150,154,,,,,,,,,,,,,,2', +'7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,', +',,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', +'24,163,,,40,47,,,151,155,158,161,165,169,131,135,140,143,147,150,154', +',,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,', +',,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,', +',,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131,135,140', +'143,,,,,,,,,,,,303,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54', +'58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45', +',51,56,,,,,,74,4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131', +'135,140,143,163,,,,,,,151,155,158,161,165,169,131,,,2,7,,,,30,,36,39', +'11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67', +'68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,163,,,40,47,', +',151,155,158,161,165,169,131,135,140,143,163,,,,,,,151,155,158,161,165', +'169,131,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,', +'1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74', +'4,9,15,19,24,163,,,40,47,,,151,155,158,161,165,169,131,,,,,,,,,,,,,', +',,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,', +'21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4', +'9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11', +'48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68', +',,,,6,12,,22,,33,37,,45,,51,56,114,,,,,74,4,9,15,19,24,,,,40,47,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54', +'58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45', +',51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7', +',,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,', +'43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24', +',,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35', +'41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22', +',33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1', +',,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74', +'4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11', +'48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68', +',,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,', +',,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58', +'63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51', +'56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,', +'30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43', +',,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,123,,,,74,4,9,15,19,24', +',,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35', +'41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22', +',33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1', +',,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,275,,,,', +'74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,13,17,,30,', +'36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55', +'59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', +'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', +'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', +',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', +'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', +'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', +',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', +',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', +',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', +',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', +'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', +'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', +',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', +'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', +'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', +',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', +',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', +',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', +',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', +'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', +'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', +',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', +'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', +'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', +',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', +',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', +',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', +',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', +'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', +'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', +',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', +'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', +'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', +',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', +',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', +',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', +',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', +'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', +'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', +',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', +'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', +'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', +',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', +',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', +',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', +',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', +'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', +'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', +',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', +'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', +'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', +',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', +',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', +',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', +',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', +'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', +'45,,51,56,114,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,', +',,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21', +'26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15', +'19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29', +'32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6', +'12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,', +',,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66', +',,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,', +',,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,', +',,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', +'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', +'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', +',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', +'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', +'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', +',22,,33,37,,45,,51,56,61,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,2,7,13,17,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63', +'66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56', +',,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30', +',36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55', +'59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49', +'54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,', +'45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,', +'2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26', +',,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19', +'24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32', +'35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12', +',22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,2,7,,,,30,,36,39,11,48,,29,32,35,41,44,49,54,58,63,66,,', +',,1,,,21,26,,,,,43,,,55,59,67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,,', +',74,4,9,15,19,24,,,,40,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,7,,,,30,,36', +'39,11,48,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,,,55,59', +'67,68,,,,,6,12,,22,,33,37,,45,,51,56,,,136,,144,74,4,9,15,19,24,,,,40', +'47,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,2,7,,,,30,,36,39,163,48,', +',,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', +'168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,141,145', +'148,136,,144,,,,,,,,322,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,', +',,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154', +'157,160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133', +'137,141,145,148,29,32,35,41,44,49,54,58,63,66,316,,,,1,,,21,26,,,,,43', +',,55,59,67,,,,,,,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40', +'47,,,,,29,32,35,41,44,49,54,58,63,66,,,,,1,,,21,26,,,,,43,2,7,55,59', +'67,30,,36,39,,48,12,,22,,33,37,,45,,51,56,,,,,,74,4,9,15,19,24,,,,40', +'47,,,,29,32,35,41,44,49,54,58,63,66,,,,,,,,,,,,,,,,2,7,59,67,,30,,36', +'39,,48,,,,,,,45,,,56,,,,,,,,,,,,,,,,,,,29,32,35,41,44,49,54,58,63,66', +',,,,1,,,21,26,,,,,43,,,55,59,67,68,,30,,36,39,12,48,22,,33,37,,45,,51', +'56,,,,,,74,4,9,15,19,24,,,,40,47,,,,29,32,35,41,44,49,54,58,63,66,,', +',,,,,,,,,,,,,2,7,59,67,,30,,36,39,,48,,,,,,,45,,,56,,,136,,144,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,30,,36,39,163,48', +',,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', +'168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,141,145', +'148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,', +',,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157', +'160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,204', +'141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,321,,,,,,,132,138,,,,152', +',,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147', +'150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162,167', +'129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138', +',,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140', +'143,147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159', +'162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131', +'135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149,153', +'156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,', +',,,323,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161', +'165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142', +'146,149,153,156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155', +'158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134', +'139,142,146,149,153,156,159,162,167,129,133,137,141,145,148,136,,144', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,', +',,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168', +'130,134,139,142,146,149,153,156,159,162,167,129,133,137,141,145,148', +'136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,', +',163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160', +'164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,141', +'145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166', +',,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154', +'157,160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133', +'137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152', +',,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147', +'150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162,167', +'129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138', +',,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140', +'143,147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159', +'162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131', +'135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149,153', +'156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,', +',,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165', +'169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142,146', +'149,153,156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,', +',,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158', +'161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139', +'142,146,149,153,156,159,162,167,129,133,137,141,145,148,136,,144,,,', +',,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151', +'155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130', +'134,139,142,146,149,153,156,159,162,167,129,133,137,141,145,148,136', +',144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,,,163', +',,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', +'168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,141,145', +'148,136,,144,,,,,,,,,,,,,,,,,,,,,,,273,,,,,,,132,138,,,,152,,,,166,', +',,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154', +'157,160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133', +'272,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132,138,,,,152', +',,,166,,,,,,,,185,,163,,,,,,,151,155,158,161,165,169,131,135,140,143', +'147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162', +'167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,132', +'138,,,,152,,,,166,,,,,,,,61,,163,,,,,,,151,155,158,161,165,169,131,135', +'140,143,147,150,154,157,160,164,168,130,134,139,142,146,149,153,156', +'159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,,132,138,,,,152,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169', +'131,135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149', +'153,156,159,162,167,129,133,137,141,145,148,136,,144,,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,132,138,,,,152,,,,166,,,,,,,,61,,163,,,,,,,151,155,158', +'161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139', +'142,146,149,153,156,159,162,167,129,133,137,141,145,148,132,138,,,,', +',,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147', +'150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162,167', +'129,133,137,141,145,148,132,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155', +'158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134', +'139,142,146,149,153,156,159,162,167,129,133,137,141,145,148,132,138', +',,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143', +'147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162', +'167,129,133,137,132,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161', +'165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142', +'146,149,153,156,159,162,167,129,133,137,132,138,,,,,,,,166,,,,,,,,,', +'163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160', +'164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,132', +'138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140', +'143,147,150,154,157,160,164,168,130,134,139,142,146,149,153,156,159', +'162,167,129,133,137,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161', +'165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142', +'146,149,153,156,159,162,167,129,133,137,138,,,,,,,,166,,,,,,,,,,163', +',,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', +'168,130,134,139,142,146,149,153,156,159,162,167,129,133,137,138,,,,', +',,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147', +'150,154,157,160,164,168,130,134,139,142,146,149,153,156,159,162,167', +'129,133,137,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151,155,158,161,165,169', +'131,135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149', +'153,156,159,162,167,129,133,137,138,,,,,,,,166,,,,,,,,,,163,,,,,,,151', +'155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130', +'134,139,142,146,149,153,156,159,162,167,129,133,137,166,,,,,,,,,,163', +',,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', +'168,130,134,139,142,146,149,153,156,159,162,167,129,133,166,,,,,,,,', +',163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160', +'164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,166,,,,', +',,,,,163,,,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157', +'160,164,168,130,134,139,142,146,149,153,156,159,162,167,129,133,163', +',,,,,,151,155,158,161,165,169,131,135,140,143,147,150,154,157,160,164', +'168,130,134,139,142,146,149,153,156,159,162,167,129,133,163,,,,,,,151', +'155,158,161,165,169,131,135,140,143,147,150,154,157,160,164,168,130', +'134,139,142,146,149,153,156,159,162,167,129,133,163,,,,,,,151,155,158', +'161,165,169,131,135,140,143,147,150,154,157,160,164,168,130,134,139', +'142,146,149,153,156,159,162,167,129,133,163,,,,,,,151,155,158,161,165', +'169,131,135,140,143,147,150,154,157,160,164,168,130,134,139,142,146', +'149,153,156,159,162,167,129,133,163,,,,,,,151,155,158,161,165,169,131', +'135,140,143,147,150,154,157,160,164,168,130,134,139,142,146,149,153', +'156,159,162,167,129,133' ] + racc_action_table = arr = Array.new(11069, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -355,351 +386,384 @@ clist = [ end clist = [ -'110,294,110,21,21,21,21,21,21,21,21,21,21,70,70,70,76,248,248,248,208', -'208,70,197,70,263,248,257,248,69,21,21,110,110,208,239,255,110,217,290', -'71,110,239,239,70,21,211,290,21,294,197,110,75,211,211,211,211,211,110', -'110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110', -'110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,70,169', -'76,197,197,197,21,179,21,148,21,110,148,148,148,148,148,148,148,148', -'148,148,212,212,115,112,148,277,188,148,148,105,112,112,179,148,188', -'259,148,148,148,148,308,308,119,119,148,148,278,148,169,148,148,187', -'148,205,148,148,103,103,103,201,103,148,148,148,148,148,148,115,115', -'188,148,148,66,259,105,105,105,179,179,179,105,259,4,200,259,4,4,4,4', -'4,4,4,4,4,4,199,187,187,187,4,148,148,4,4,196,148,291,148,4,148,174', -'4,4,4,4,269,173,188,188,4,4,53,4,269,4,4,236,4,171,4,4,111,111,236,236', -'178,4,4,4,4,4,4,190,178,77,4,4,29,101,92,190,77,77,258,258,29,101,6', -'269,43,6,6,6,6,6,6,6,6,6,6,249,249,249,35,6,4,4,6,6,249,4,249,4,6,4', -'190,6,6,6,6,29,101,29,101,6,6,93,6,95,6,6,83,6,307,6,6,67,67,83,83,98', -'6,6,6,6,6,6,223,286,286,6,6,62,62,223,223,223,223,223,223,223,100,9', -'175,175,9,9,9,9,9,9,9,9,9,9,27,27,27,114,9,6,6,9,9,27,6,27,6,9,6,82', -'9,9,9,9,118,1,82,82,9,9,124,9,129,9,9,79,9,,9,9,,,79,79,,9,9,9,9,9,9', -'220,,,9,9,,,220,220,220,220,220,220,220,,11,,,11,11,11,11,11,11,11,11', -'11,11,84,84,84,,11,9,9,11,11,84,9,84,9,11,9,243,11,11,11,11,,,243,243', -'11,11,,11,,11,11,87,11,,11,11,,,87,87,,11,11,11,11,11,11,215,,,11,11', -',,215,215,215,215,215,215,215,,12,,,12,12,12,12,12,12,12,12,12,12,85', -'85,85,,12,11,11,12,12,85,11,85,11,12,11,109,12,12,12,12,,,109,109,12', -'12,,12,,12,12,172,12,,12,12,,,172,172,,12,12,12,12,12,12,247,,,12,12', -',,247,247,247,247,247,,,,15,,,15,15,15,15,15,15,15,15,15,15,,,,,15,12', -'12,15,15,,12,,12,15,12,,15,15,15,15,,,,,15,15,,15,,15,15,,15,,15,15', -',,,,,15,15,15,15,15,15,,,,15,15,,,,,,,,,,,19,,,19,19,19,19,19,19,19', -'19,19,19,,,,,19,15,15,19,19,,15,,15,19,15,,19,19,19,19,,,,,19,19,,19', -',19,19,,19,,19,19,,,,,,19,19,19,19,19,19,,,,19,19,,,,,,,,,,,130,,,130', -'130,130,130,130,130,130,130,130,130,,,,,130,19,19,130,130,,19,,19,130', -'19,,130,130,130,130,,,,,130,130,,130,,130,130,,130,,130,130,,,,,,130', -'130,130,130,130,130,,,,130,130,,,,,,,,,,,22,,,22,22,22,22,22,22,22,22', -'22,22,,,,,22,130,130,22,22,,130,,130,22,130,,22,22,22,22,,,,,22,22,', -'22,,22,22,,22,,22,22,,,,,,22,22,22,22,22,22,,,,22,22,,,,,,,,,,,24,,', -'24,24,24,24,24,24,24,24,24,24,,,,,24,22,22,24,24,,22,,22,24,22,,24,24', -'24,24,,,,,24,24,,24,,24,24,,24,,24,24,,,,,,24,24,24,24,24,24,,,,24,24', -',,,,,,,,,,133,,,133,133,133,133,133,133,133,133,133,133,,,,,133,24,24', -'133,133,,24,,24,133,24,,133,133,133,133,,,,,133,133,,133,,133,133,,133', -',133,133,,,,,,133,133,133,133,133,133,,,,133,133,,,,,,,,,,,128,,,128', -'128,128,128,128,128,128,128,128,128,,,,,128,133,133,128,128,,133,,133', -'128,133,,128,128,128,128,,,,,128,128,,128,,128,128,,128,,128,128,,,', -',,128,128,128,128,128,128,,,,128,128,,,,,,,,,,,309,,,309,309,309,309', -'309,309,309,309,309,309,,,,,309,128,128,309,309,,128,,128,309,128,,309', -'309,309,309,,,,,309,309,,309,,309,309,,309,,309,309,,,,,,309,309,309', -'309,309,309,,,,309,309,,,,,,,,,,,32,,,32,32,32,32,32,32,32,32,32,32', -',,,,32,309,309,32,32,,309,,309,32,309,,32,32,32,32,,,,,32,32,,32,,32', -'32,,32,,32,32,,,,,,32,32,32,32,32,32,,,,32,32,,,,,,,,,,,34,,,34,34,34', -'34,34,34,34,34,34,34,,,,,34,32,32,34,34,,32,,32,34,32,,34,34,34,34,', -',,,34,34,,34,,34,34,,34,,34,34,34,,,,,34,34,34,34,34,34,,,,34,34,,,', -',,,,,,,127,,,127,127,127,127,127,127,127,127,127,127,,,,,127,34,34,127', -'127,,34,,34,127,34,,127,127,127,127,,,,,127,127,,127,,127,127,,127,', -'127,127,,,,,,127,127,127,127,127,127,,,,127,127,,,,,,,,,,,37,,,37,37', -'37,37,37,37,37,37,37,37,,,,,37,127,127,37,37,,127,,127,37,127,,37,37', -'37,37,,,,,37,37,,37,,37,37,,37,,37,37,,,,,,37,37,37,37,37,37,,,,37,37', -',,,,,,,,,,40,,,40,40,40,40,40,40,40,40,40,40,,,,,40,37,37,40,40,,37', -',37,40,37,,40,40,40,40,,,,,40,40,,40,,40,40,,40,,40,40,,,,,,40,40,40', -'40,40,40,,,,40,40,,,,,,,,,,,126,,,126,126,126,126,126,126,126,126,126', -'126,,,,,126,40,40,126,126,,40,,40,126,40,,126,126,126,126,,,,,126,126', -',126,,126,126,,126,,126,126,,,,,,126,126,126,126,126,126,,,,126,126', -',,,,,,,,,,46,,,46,46,46,46,46,46,46,46,46,46,,,,,46,126,126,46,46,,126', -',126,46,126,,46,46,46,46,,,,,46,46,,46,,46,46,,46,,46,46,,,,,,46,46', -'46,46,46,46,,,,46,46,,,,,,,,,,,52,,,52,52,52,52,52,52,52,52,52,52,,', -',,52,46,46,52,52,,46,,46,52,46,,52,52,52,52,,,,,52,52,,52,,52,52,,52', -',52,52,,,,,,52,52,52,52,52,52,,,,52,52,,,,,,,,,,,296,,,296,296,296,296', -'296,296,296,296,296,296,,,,,296,52,52,296,296,,52,,52,296,52,,296,296', -'296,296,,,,,296,296,,296,,296,296,,296,,296,296,,,,,,296,296,296,296', -'296,296,,,,296,296,,,,,,,,,,,59,,,59,59,59,59,59,59,59,59,59,59,296', -',,,59,296,296,59,59,,296,,296,59,296,,59,59,59,59,,,,,59,59,,59,,59', -'59,,59,,59,59,,59,,,,59,59,59,59,59,59,,,,59,59,,,,,,,,,,,285,,,285', -'285,285,285,285,285,285,285,285,285,,,,,285,59,59,285,285,,59,,59,285', -'59,,285,285,285,285,,,,,285,285,,285,,285,285,,285,,285,285,,,,,,285', -'285,285,285,285,285,,,,285,285,,,,,,,,,,,284,,,284,284,284,284,284,284', -'284,284,284,284,,,,,284,285,285,284,284,,285,,285,284,285,,284,284,284', -'284,,,,,284,284,,284,,284,284,,284,,284,284,,,,,,284,284,284,284,284', -'284,,,,284,284,,,,,,,,,,,275,,,275,275,275,275,275,275,275,275,275,275', -',,,,275,284,284,275,275,,284,,284,275,284,,275,275,275,275,,,,,275,275', -',275,,275,275,,275,,275,275,,,,,,275,275,275,275,275,275,,,,275,275', -',,,,,,,,,,272,,,272,272,272,272,272,272,272,272,272,272,275,,,,272,275', -'275,272,272,,275,,275,272,275,,272,272,272,272,,,,,272,272,,272,,272', -'272,,272,,272,272,,,,,,272,272,272,272,272,272,,,,272,272,,,,,,,,,,', -'271,,,271,271,271,271,271,271,271,271,271,271,,,,,271,272,272,271,271', -',272,,272,271,272,,271,271,271,271,,,,,271,271,,271,,271,271,,271,,271', -'271,,,,,,271,271,271,271,271,271,,,,271,271,,,,,,,,,,,261,,,261,261', -'261,261,261,261,261,261,261,261,,,,,261,271,271,261,261,,271,,271,261', -'271,,261,261,261,261,,,,,261,261,,261,,261,261,,261,,261,261,,,,,,261', -'261,261,261,261,261,,,,261,261,,,,,,,,,,,207,,,207,207,207,207,207,207', -'207,207,207,207,,,,,207,261,261,207,207,,261,,261,207,261,,207,207,207', -'207,,,,,207,207,,207,,207,207,,207,,207,207,,,,,,207,207,207,207,207', -'207,,,,207,207,,,,,,,,,,,73,,,73,73,73,73,73,73,73,73,73,73,,,,,73,207', -'207,73,73,,207,,207,73,207,,73,73,73,73,,,,,73,73,,73,,73,73,,73,,73', -'73,,,,,,73,73,73,73,73,73,,,,73,73,,,,,,,,,,,206,,,206,206,206,206,206', -'206,206,206,206,206,,,,,206,73,73,206,206,,73,,73,206,73,,206,206,206', -'206,,,,,206,206,,206,,206,206,,206,,206,206,,,,,,206,206,206,206,206', -'206,,,,206,206,,,,,,,,,,,194,,,194,194,194,194,194,194,194,194,194,194', -',,,,194,206,206,194,194,,206,,206,194,206,,194,194,194,194,,,,,194,194', -',194,,194,194,,194,,194,194,,,,,,194,194,194,194,194,194,,,,194,194', -',,,,,,,,,,191,,,191,191,191,191,191,191,191,191,191,191,,,,,191,194', -'194,191,191,,194,,194,191,194,,191,191,191,191,,,,,191,191,,191,,191', -'191,,191,,191,191,191,,,,,191,191,191,191,191,191,232,,,191,191,,,232', -'232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232', -'232,232,232,,,,,,191,191,191,191,,191,,191,186,191,,186,186,186,186', -'186,186,186,186,186,186,,,,,186,,,186,186,,,,,186,,,186,186,186,186', -',,,,186,186,,186,,186,186,,186,,186,186,,,,,,186,186,186,186,186,186', -',,,186,186,,,,,,,,,,,185,,,185,185,185,185,185,185,185,185,185,185,', -',,,185,186,186,185,185,,186,,186,185,186,,185,185,185,185,,,,,185,185', -',185,,185,185,,185,,185,185,,,,,,185,185,185,185,185,185,,,,185,185', -',,,,,,,,,,166,,,166,166,166,166,166,166,166,166,166,166,,,,,166,185', -'185,166,166,,185,,185,166,185,,166,166,166,166,,,,,166,166,,166,,166', -'166,,166,,166,166,,,,,,166,166,166,166,166,166,,,,166,166,,,,,,,,,,', -'132,,,132,132,132,132,132,132,132,132,132,132,,,,,132,166,166,132,132', -',166,,166,132,166,,132,132,132,132,,,,,132,132,,132,,132,132,,132,,132', -'132,,,,,,132,132,132,132,132,132,,,,132,132,,,,,,,,,,,161,,,161,161', -'161,161,161,161,161,161,161,161,,,,,161,132,132,161,161,,132,,132,161', -'132,,161,161,161,161,,,,,161,161,,161,,161,161,,161,,161,161,,,,,,161', -'161,161,161,161,161,,,,161,161,,,,,,,,,,,160,,,160,160,160,160,160,160', -'160,160,160,160,,,,,160,161,161,160,160,,161,,161,160,161,,160,160,160', -'160,,,,,160,160,,160,,160,160,,160,,160,160,,,,,,160,160,160,160,160', -'160,,,,160,160,,,,,,,,,,,159,,,159,159,159,159,159,159,159,159,159,159', -',,,,159,160,160,159,159,,160,,160,159,160,,159,159,159,159,,,,,159,159', -',159,,159,159,,159,,159,159,,,,,,159,159,159,159,159,159,,,,159,159', -',,,,,,,,,,158,,,158,158,158,158,158,158,158,158,158,158,,,,,158,159', -'159,158,158,,159,,159,158,159,,158,158,158,158,,,,,158,158,,158,,158', -'158,,158,,158,158,,,,,,158,158,158,158,158,158,,,,158,158,,,,,,,,,,', -'157,,,157,157,157,157,157,157,157,157,157,157,,,,,157,158,158,157,157', -',158,,158,157,158,,157,157,157,157,,,,,157,157,,157,,157,157,,157,,157', -'157,,,,,,157,157,157,157,157,157,,,,157,157,,,,,,,,,,,156,,,156,156', -'156,156,156,156,156,156,156,156,,,,,156,157,157,156,156,,157,,157,156', -'157,,156,156,156,156,,,,,156,156,,156,,156,156,,156,,156,156,,,,,,156', -'156,156,156,156,156,,,,156,156,,,,,,,,,,,125,,,125,125,125,125,125,125', -'125,125,125,125,,,,,125,156,156,125,125,,156,,156,125,156,,125,125,125', -'125,,,,,125,125,,125,,125,125,,125,,125,125,,,,,,125,125,125,125,125', -'125,,,,125,125,,,,,,,,,,,90,,,90,90,90,90,90,90,90,90,90,90,,,,,90,125', -'125,90,90,,125,,125,90,125,,90,90,90,90,,,,,90,90,,90,,90,90,,90,,90', -'90,90,,,,,90,90,90,90,90,90,,,,90,90,,,,,,,,,,,91,,,91,91,91,91,91,91', -'91,91,91,91,,,,,91,90,90,91,91,,90,,90,91,90,,91,91,91,91,,,,,91,91', -',91,,91,91,,91,,91,91,,,,,,91,91,91,91,91,91,,,,91,91,,,,,,,,,,,154', -',,154,154,154,154,154,154,154,154,154,154,,,,,154,91,91,154,154,,91', -',91,154,91,,154,154,154,154,,,,,154,154,,154,,154,154,,154,,154,154', -',,,,,154,154,154,154,154,154,,,,154,154,,,,,,,,,,,153,,,153,153,153', -'153,153,153,153,153,153,153,,,,,153,154,154,153,153,,154,,154,153,154', -',153,153,153,153,,,,,153,153,,153,,153,153,,153,,153,153,,,,,,153,153', -'153,153,153,153,,,,153,153,,,,,,,,,,,152,,,152,152,152,152,152,152,152', -'152,152,152,,,,,152,153,153,152,152,,153,,153,152,153,,152,152,152,152', -',,,,152,152,,152,,152,152,,152,,152,152,,,,,,152,152,152,152,152,152', -',,,152,152,,,,,,,,,,,151,,,151,151,151,151,151,151,151,151,151,151,', -',,,151,152,152,151,151,,152,,152,151,152,,151,151,151,151,,,,,151,151', -',151,,151,151,,151,,151,151,,,,,,151,151,151,151,151,151,,,,151,151', -',,,,,,,,,,150,,,150,150,150,150,150,150,150,150,150,150,,,,,150,151', -'151,150,150,,151,,151,150,151,,150,150,150,150,,,,,150,150,,150,,150', -'150,,150,,150,150,,,,,,150,150,150,150,150,150,,,,150,150,,,,,,,,,,', -'149,,,149,149,149,149,149,149,149,149,149,149,,,,,149,150,150,149,149', -',150,,150,149,150,,149,149,149,149,,,,,149,149,,149,,149,149,,149,,149', -'149,,,,,,149,149,149,149,149,149,,,,149,149,,,,,,,,,,,131,,,131,131', -'131,131,131,131,131,131,131,131,,,,,131,149,149,131,131,,149,,149,131', -'149,,131,131,131,131,,,,,131,131,,131,,131,131,,131,,131,131,,,,,,131', -'131,131,131,131,131,,,,131,131,,,,,,,,,,,146,,,146,146,146,146,146,146', -'146,146,146,146,,,,,146,131,131,146,146,,131,,131,146,131,,146,146,146', -'146,,,,,146,146,,146,,146,146,,146,,146,146,,,,,,146,146,146,146,146', -'146,,,,146,146,,,,,,,,,,,145,,,145,145,145,145,145,145,145,145,145,145', -',,,,145,146,146,145,145,,146,,146,145,146,,145,145,145,145,,,,,145,145', -',145,,145,145,,145,,145,145,,,,,,145,145,145,145,145,145,,,,145,145', -',,,,,,,,,,106,,,106,106,106,106,106,106,106,106,106,106,,,,,106,145', -'145,106,106,,145,,145,106,145,,106,106,106,106,,,,,106,106,,106,,106', -'106,,106,,106,106,,,,,,106,106,106,106,106,106,,,,106,106,,,,,,,,,,', -'144,,,144,144,144,144,144,144,144,144,144,144,,,,,144,106,106,144,144', -',106,,106,144,106,,144,144,144,144,,,,,144,144,,144,,144,144,,144,,144', -'144,,,,,,144,144,144,144,144,144,,,,144,144,,,,,,,,,,,108,,,108,108', -'108,108,108,108,108,108,108,108,,,,,108,144,144,108,108,,144,,144,108', -'144,,108,108,108,108,,,,,108,108,,108,,108,108,,108,,108,108,108,,,', -',108,108,108,108,108,108,,,,108,108,,,,,,,,,,,134,,,134,134,134,134', -'134,134,134,134,134,134,,,,,134,108,108,134,134,,108,,108,134,108,,134', -'134,134,134,,,,,134,134,,134,,134,134,,134,,134,134,,,,,,134,134,134', -'134,134,134,,,,134,134,,,,,,,,,,,0,,,0,0,0,0,0,0,0,0,0,0,,,,,0,134,134', -'0,0,,134,,134,0,134,,0,0,0,0,,,,,0,0,,0,,0,0,,0,,0,0,0,,,,,0,0,0,0,0', -'0,219,,,0,0,,,219,219,219,219,219,219,219,219,219,219,219,219,219,219', -'219,219,219,219,219,219,219,,,,,,0,0,0,0,,0,,0,141,0,,141,141,141,141', -'141,141,141,141,141,141,,,,,141,,,141,141,,,,,141,,,141,141,141,141', -',,,,141,141,,141,,141,141,,141,,141,141,,,,,,141,141,141,141,141,141', -',,,141,141,,,,,,,,,,,140,,,140,140,140,140,140,140,140,140,140,140,', -',,,140,141,141,140,140,,141,,141,140,141,,140,140,140,140,,,,,140,140', -',140,,140,140,,140,,140,140,,,,,,140,140,140,140,140,140,,,,140,140', -',,,,,,,,,,139,,,139,139,139,139,139,139,139,139,139,139,,,,,139,140', -'140,139,139,,140,,140,139,140,,139,139,139,139,,,,,139,139,,139,,139', -'139,,139,,139,139,,,,,,139,139,139,139,139,139,,,,139,139,,,,,,,,,,', -'138,,,138,138,138,138,138,138,138,138,138,138,,,,,138,139,139,138,138', -',139,,139,138,139,,138,138,138,138,,,,,138,138,,138,,138,138,,138,,138', -'138,,,,,,138,138,138,138,138,138,,,,138,138,,,,,,,,,,,137,,,137,137', -'137,137,137,137,137,137,137,137,,,,,137,138,138,137,137,,138,,138,137', -'138,,137,137,137,137,,,,,137,137,,137,,137,137,,137,,137,137,,,,,,137', -'137,137,137,137,137,,,,137,137,,,,,,,,,,,117,,,117,117,117,117,117,117', -'117,117,117,117,,,,,117,137,137,117,117,,137,,137,117,137,,117,117,117', -'117,,,,,117,117,,117,,117,117,,117,,117,117,,,,,,117,117,117,117,117', -'117,,,,117,117,,,,,,,,,,,136,,,136,136,136,136,136,136,136,136,136,136', -',,,,136,117,117,136,136,,117,,117,136,117,,136,136,136,136,,,,,136,136', -',136,,136,136,,136,,136,136,,,,,,136,136,136,136,136,136,,,,136,136', -',,,,,,,,,,135,,,135,135,135,135,135,135,135,135,135,135,,,,,135,136', -'136,135,135,,136,,136,135,136,,135,135,135,135,,,,,135,135,,135,,135', -'135,,135,,135,135,,,,,,135,135,135,135,135,135,,,,135,135,,,,,,,,,,', -'121,,,121,121,121,121,121,121,121,121,121,121,,,,,121,135,135,121,121', -',135,,135,121,135,,121,121,121,121,,,,,121,121,,121,,121,121,,121,,121', -'121,,,,,,121,121,121,121,121,121,,,,121,121,,,,,,,,,,,122,,,122,122', -'122,122,122,122,122,122,122,122,,,,,122,121,121,122,122,,121,,121,122', -'121,,122,122,122,122,,,,,122,122,,122,,122,122,,122,,122,122,,,,,,122', -'122,122,122,122,122,,,,122,122,,,,,,,,,,,123,,,123,123,123,123,123,123', -'123,123,123,123,,,,,123,122,122,123,123,,122,,122,123,122,,123,123,123', -'123,,,,,123,123,,123,,123,123,,123,,123,123,,,,,,123,123,123,123,123', -'123,,,,123,123,,,,,,,,,,,142,,,142,142,142,142,142,142,142,142,142,142', -',,,,142,123,123,142,142,,123,,123,142,123,,142,142,142,142,,,,,142,142', -',142,,142,142,,142,,142,142,,312,,312,,142,142,142,142,142,142,235,', -',142,142,,,235,235,235,235,235,235,235,235,235,235,235,235,235,,,312', -'312,,,,312,,,,312,,142,142,,,,142,,142,312,142,,,,,,312,312,312,312', -'312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312', -'312,312,312,312,312,312,312,312,312,312,312,312,312,301,,301,226,,,', -',,312,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226', -'226,226,226,226,226,,301,301,,,,301,,,,301,,,,,,,,,,301,,,,,,,301,301', -'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301', -'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,,,,,,,,', -',301,310,310,310,310,310,310,310,310,310,310,,,,,310,,,310,310,,,,,310', -',,310,310,310,,,,,,,310,,310,,310,310,,310,,310,310,,,,,,310,310,310', -'310,310,310,,,,310,310,,,,,300,300,300,300,300,300,300,300,300,300,', -',,,300,,,300,300,,,,,300,310,310,300,300,300,310,,310,,310,,300,,300', -',300,300,,300,,300,300,,,,,,300,300,300,300,300,300,233,,,300,300,,', -'233,233,233,233,233,233,233,233,233,233,,25,25,25,25,25,25,25,25,25', -'25,,,,,25,300,300,25,25,,300,,300,25,300,,25,25,25,25,,,,,,25,,25,,25', -'25,,25,,25,25,,,,,,25,25,25,25,25,25,,,,25,25,,,,,155,155,155,155,155', -'155,155,155,155,155,,,,,155,,,155,155,,,,,155,25,25,155,155,155,25,', -'25,,25,,155,,155,,155,155,,155,,155,155,,,,,,155,155,155,155,,164,164', -'164,164,164,164,164,164,164,164,227,,,,,,,227,227,227,227,227,227,227', -'227,227,227,164,164,,,,,,155,155,,,,155,,155,164,155,229,164,,204,,204', +'120,84,120,163,163,163,163,163,163,163,163,163,163,73,73,73,207,163', +'78,206,163,163,73,272,73,36,163,119,293,163,163,163,120,120,119,119', +'293,120,163,205,163,120,163,163,73,163,204,163,163,294,84,120,261,261', +'163,163,163,163,120,120,120,120,120,120,120,120,120,120,120,120,120', +'120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120', +'120,120,120,120,73,163,163,68,78,294,163,198,163,163,103,163,120,103', +'103,103,103,103,103,103,103,103,103,211,192,115,280,103,219,219,103', +'103,214,214,198,186,103,263,281,103,103,103,103,186,191,60,214,103,103', +'124,103,192,103,103,117,103,37,103,103,103,177,117,117,224,103,103,103', +'103,103,103,115,115,115,103,103,263,185,115,186,198,198,198,260,263', +'185,30,263,311,311,191,191,191,99,30,124,124,192,192,192,174,99,118', +'118,103,103,75,174,174,103,77,103,103,4,103,81,4,4,4,4,4,4,4,4,4,4,296', +'186,186,30,4,30,188,4,4,5,99,97,99,4,188,266,4,4,4,4,289,289,98,266', +'4,4,106,4,107,4,4,243,4,108,4,4,70,70,243,243,94,4,4,4,4,4,4,94,94,188', +'4,4,226,96,96,96,258,96,266,226,226,226,226,226,226,226,226,226,226', +'226,226,226,226,226,226,226,226,226,226,226,4,4,178,178,1,4,43,4,4,300', +'4,312,300,300,300,300,300,300,300,300,300,300,91,91,91,137,300,71,71', +'300,300,91,122,91,132,300,90,125,300,300,300,300,176,90,90,,300,300', +',300,,300,300,246,300,,300,300,126,126,246,246,,300,300,300,300,300', +'300,236,,,300,300,,,236,236,236,236,236,236,236,236,236,236,236,236', +'236,236,236,236,236,236,236,236,236,300,86,,,,300,300,,86,86,300,,300', +'300,6,300,,6,6,6,6,6,6,6,6,6,6,34,34,34,,6,,,6,6,34,,34,,6,250,,6,6', +'6,6,,250,250,,6,6,,6,,6,6,79,6,,6,6,,,79,79,,6,6,6,6,6,6,229,,,6,6,', ',229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229', -'229,229,229,229,,,,,,,,204,204,,,,204,,,,204,,,,,,,164,,164,204,164', -',,,,,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204', -'204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204', -'204,68,234,68,,,,,,234,234,234,234,234,234,234,234,234,234,234,234,234', -'234,234,234,234,234,234,234,234,,,,68,68,,,,68,,,,68,,,,,,,,,,68,,,', -',,,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68', -'68,68,68,68,68,68,68,68,68,68,68,68,311,242,311,,,,,,242,242,242,242', -'242,242,242,242,242,242,242,242,242,,,,,311,,,,,,,311,311,,,,311,,,', -'311,,,,,,,,,,311,,,,,,,311,311,311,311,311,311,311,311,311,311,311,311', -'311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,311', -'311,311,311,311,311,231,222,231,,,,,,222,222,222,222,222,222,222,222', -'222,222,222,222,222,222,222,222,222,222,222,222,222,,,,231,231,,,,231', -',,,231,,,,,,,,,,231,,,,,,,231,231,231,231,231,231,231,231,231,231,231', -'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231', -'231,231,231,231,231,231,81,214,81,,,,,,214,214,214,214,214,214,214,214', -'214,214,214,214,214,214,214,214,214,214,214,214,214,,,,81,81,,,,81,', -',,81,,,,,,,,81,,81,,,,,,,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81', -'81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,224,210,224', -',,,,,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210,210', -'210,210,210,210,210,,,,224,224,,,,224,,,,224,,,,,,,,,,224,,,,,,,224', -'224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224', -'224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,273', -'246,273,,,,,,246,246,246,246,246,246,246,246,246,246,246,246,246,,,', -',,,,,,,,273,273,,,,273,,,,273,,,,,,,,,,273,,,,,,,273,273,273,273,273', -'273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273,273', -'273,273,273,273,273,273,273,273,273,273,273,273,216,238,216,,,,,,238', -'238,238,238,238,238,238,238,238,238,238,238,238,,,,,,,,,,,,216,216,', -',,216,,,,216,,,,,,,,,,216,,,,,,,216,216,216,216,216,216,216,216,216', -'216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216', -'216,216,216,216,216,216,216,216,274,230,274,,,,,,230,230,230,230,230', -'230,230,230,230,230,,,,,,,,,,,,,,,274,274,,,,274,,,,274,,,,,,,,,,274', -',,,,,,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274', -'274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274', -'274,107,,107,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,107,107,,,,107,,,,107,,,,', -',,,,,107,,,,,,,107,107,107,107,107,107,107,107,107,107,107,107,107,107', -'107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107', -'107,107,107,316,,316,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,316,316,,,,316,,,', -'316,,,,,,,,,,316,,,,,,,316,316,316,316,316,316,316,316,316,316,316,316', -'316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316', -'316,316,316,316,316,195,,195,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,195,195,,', -',195,,,,195,,,,,,,,,,195,,,,,,,195,195,195,195,195,195,195,195,195,195', -'195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195,195', -'195,195,195,195,195,195,195,317,,317,,,,,,,,,,,,,,,,,,,,,,,317,,,,,', -',317,317,,,,317,,,,317,,,,,,,,,,317,,,,,,,317,317,317,317,317,317,317', -'317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317', -'317,317,317,317,317,317,317,317,317,317,78,,78,,,,,,,,,,,,,,,,,,,,,', -',,,,,,,,78,78,,,,78,,,,78,,,,,,,,78,,78,,,,,,,78,78,78,78,78,78,78,78', -'78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78', -'78,78,78,181,,181,,,,,,,,,,,,,,,,,,,,,,,181,,,,,,,181,181,,,,181,,,', -'181,,,,,,,,,,181,,,,,,,181,181,181,181,181,181,181,181,181,181,181,181', -'181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181', -'181,181,181,181,181,180,,180,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,180,180,,', -',180,,,,180,,,,,,,,,,180,,,,,,,180,180,180,180,180,180,180,180,180,180', -'180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180', -'180,180,180,180,180,180,180,265,,265,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,265', -'265,,,,265,,,,265,,,,,,,,,,265,,,,,,,265,265,265,265,265,265,265,265', -'265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265', -'265,265,265,265,265,265,265,265,265,295,,295,,,,,,,,,,,,,,,,,,,,,,,', -',,,,,,295,295,,,,295,,,,295,,,,,,,,,,295,,,,,,,295,295,295,295,295,295', -'295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295', -'295,295,295,295,295,295,295,295,295,295,295,299,,299,,,,,,,,,,,,,,,', -',,,,,,,,,,,,,,299,299,,,,299,,,,299,,,,,,,,,,299,,,,,,,299,299,299,299', -'299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299', -'299,299,299,299,299,299,299,299,299,299,299,299,299,298,,298,,,,,,,', -',,,,,,,,,,,,,,,,,,,,,,298,298,,,,298,,,,298,,,,,,,,,,298,,,,,,,298,298', -'298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298', -'298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,80,,80,', -',,,,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,,80,,,,80,,,,,,,,80,,80,,,,,,,80', -'80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80', -'80,80,80,80,80,80,80,80,80,80,266,,266,,,,,,,,,,,,,,,,,,,,,,,,,,,,,', -'266,266,,,,266,,,,266,,,,,,,,,,266,,,,,,,266,266,266,266,266,266,266', -'266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266,266', -'266,266,266,266,266,266,266,266,266,266,88,88,,,,,,,,88,,,,,,,,,,88', -',,,,,,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88', -'88,88,88,88,88,88,88,88,88,88,88,88,88,250,250,,,,,,,,250,,,,,,,,,,250', -',,,,,,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250', -'250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250', -'250,228,228,,,,,,,,228,,,,,,,,,,228,,,,,,,228,228,228,228,228,228,228', -'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228', -'228,228,228,228,228,228,228,113,113,,,,,,,,113,,,,,,,,,,113,,,,,,,113', -'113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113', -'113,113,113,113,113,113,113,113,113,113,113,113,113,225,225,,,,,,,,225', -',,,,,,,,,225,,,,,,,225,225,225,225,225,225,225,225,225,225,225,225,225', -'225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225', -'225,221,221,,,,,,,,221,,,,,,,,,,221,,,,,,,221,221,221,221,221,221,221', +'229,229,229,229,92,92,92,,,6,6,,,92,6,92,6,6,9,6,,9,9,9,9,9,9,9,9,9', +'9,255,255,255,,9,,,9,9,255,,255,,9,89,,9,9,9,9,,89,89,,9,9,,9,,9,9,', +'9,,9,9,,,,,,9,9,9,9,9,9,217,,,9,9,,,217,217,217,217,217,217,217,217', +'217,217,217,217,217,217,217,217,217,217,217,217,217,256,256,256,,,9', +'9,,,256,9,256,9,9,11,9,,11,11,11,11,11,11,11,11,11,11,,,,,11,,,11,11', +',,,,11,,,11,11,11,11,,,,,11,11,,11,,11,11,,11,,11,11,,,,,,11,11,11,11', +'11,11,241,,,11,11,,,241,241,241,241,241,241,241,241,241,241,241,241', +'241,241,241,241,241,241,241,241,241,,,,,,11,11,,,,11,,11,11,12,11,,12', +'12,12,12,12,12,12,12,12,12,,,,,12,,,12,12,,,,,12,,,12,12,12,12,,,,,12', +'12,,12,,12,12,,12,,12,12,,,,,,12,12,12,12,12,12,221,,,12,12,,,221,221', '221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221', -'221,221,221,221,221,221,221,305,,,,,,,,305,,,,,,,,,,305,,,,,,,305,305', -'305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305', -'305,305,305,305,305,305,305,305,305,305,305,305,304,,,,,,,,304,,,,,', -',,,,304,,,,,,,304,304,304,304,304,304,304,304,304,304,304,304,304,304', +'221,221,,,,,,12,12,,,,12,,12,12,15,12,,15,15,15,15,15,15,15,15,15,15', +',,,,15,,,15,15,,,,,15,,,15,15,15,15,,,,,15,15,,15,,15,15,,15,,15,15', +',,,,,15,15,15,15,15,15,233,,,15,15,,,233,233,233,233,233,233,233,233', +'233,233,233,233,233,233,233,233,233,233,233,233,233,,,,,,15,15,,,,15', +',15,15,19,15,,19,19,19,19,19,19,19,19,19,19,,,,,19,,,19,19,,,,,19,,', +'19,19,19,19,,,,,19,19,,19,,19,19,,19,,19,19,,,,,,19,19,19,19,19,19,239', +',,19,19,,,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239', +'239,239,239,239,239,239,,,,,,19,19,,,,19,,19,19,288,19,,288,288,288', +'288,288,288,288,288,288,288,,,,,288,,,288,288,,,,,288,,,288,288,288', +'288,,,,,288,288,,288,,288,288,,288,,288,288,,,,,,288,288,288,288,288', +'288,242,,,288,288,,,242,242,242,242,242,242,242,242,242,242,242,242', +'242,218,,,,,,,218,218,218,218,218,,288,288,,,,288,,288,288,22,288,,22', +'22,22,22,22,22,22,22,22,22,,,,,22,,,22,22,,,,,22,,,22,22,22,22,,,,,22', +'22,,22,,22,22,,22,,22,22,,,,,,22,22,22,22,22,22,249,,,22,22,,,249,249', +'249,249,249,249,249,249,249,249,249,249,249,254,,,,,,,254,254,254,254', +'254,,22,22,,,,22,,22,22,24,22,,24,24,24,24,24,24,24,24,24,24,,,,,24', +',,24,24,,,,,24,,,24,24,24,24,,,,,24,24,,24,,24,24,,24,,24,24,,,,,,24', +'24,24,24,24,24,245,,,24,24,,,245,245,245,245,245,245,245,245,245,245', +'245,245,245,,,,,,,,,,,,,,24,24,,,,24,,24,24,287,24,,287,287,287,287', +'287,287,287,287,287,287,,,,,287,,,287,287,,,,,287,,,287,287,287,287', +',,,,287,287,,287,,287,287,,287,,287,287,,,,,,287,287,287,287,287,287', +'253,,,287,287,,,253,253,253,253,253,253,253,253,253,253,253,253,253', +',,,,,,,,,,,,,287,287,,,,287,,287,287,279,287,,279,279,279,279,279,279', +'279,279,279,279,,,,,279,,,279,279,,,,,279,,,279,279,279,279,,,,,279', +'279,,279,,279,279,,279,,279,279,,,,,,279,279,279,279,279,279,237,,,279', +'279,,,237,237,237,237,237,237,237,237,237,237,,,,,,,,,,,,279,,,,,279', +'279,,,,279,,279,279,33,279,,33,33,33,33,33,33,33,33,33,33,,,,,33,,,33', +'33,,,,,33,,,33,33,33,33,,,,,33,33,,33,,33,33,,33,,33,33,,,,,,33,33,33', +'33,33,33,240,,,33,33,,,240,240,240,240,240,240,240,240,240,240,227,', +',,,,,227,227,227,227,227,227,227,,,33,33,,,,33,,33,33,276,33,,276,276', +'276,276,276,276,276,276,276,276,,,,,276,,,276,276,,,,,276,,,276,276', +'276,276,,,,,276,276,,276,,276,276,,276,,276,276,,,,,,276,276,276,276', +'276,276,234,,,276,276,,,234,234,234,234,234,234,234,234,234,234,222', +',,,,,,222,222,222,222,222,222,222,,,276,276,,,,276,,276,276,275,276', +',275,275,275,275,275,275,275,275,275,275,,,,,275,,,275,275,,,,,275,', +',275,275,275,275,,,,,275,275,,275,,275,275,,275,,275,275,,,,,,275,275', +'275,275,275,275,230,,,275,275,,,230,230,230,230,230,230,230,,,,,,,,', +',,,,,,,,,,,275,275,,,,275,,275,275,262,275,,262,262,262,262,262,262', +'262,262,262,262,,,,,262,,,262,262,,,,,262,,,262,262,262,262,,,,,262', +'262,,262,,262,262,,262,,262,262,,,,,,262,262,262,262,262,262,,,,262', +'262,,,,,,,,,,,,,,,,,,,,,,,,,,,,,262,262,,,,262,,262,262,39,262,,39,39', +'39,39,39,39,39,39,39,39,,,,,39,,,39,39,,,,,39,,,39,39,39,39,,,,,39,39', +',39,,39,39,,39,,39,39,39,,,,,39,39,39,39,39,39,,,,39,39,,,,,,,,,,,,', +',,,,,,,,,,,,,,,,39,39,,,,39,,39,39,40,39,,40,40,40,40,40,40,40,40,40', +'40,,,,,40,,,40,40,,,,,40,,,40,40,40,40,,,,,40,40,,40,,40,40,,40,,40', +'40,,,,,,40,40,40,40,40,40,,,,40,40,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40,40', +',,,40,,40,40,129,40,,129,129,129,129,129,129,129,129,129,129,,,,,129', +',,129,129,,,,,129,,,129,129,129,129,,,,,129,129,,129,,129,129,,129,', +'129,129,,,,,,129,129,129,129,129,129,,,,129,129,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,129,129,,,,129,,129,129,47,129,,47,47,47,47,47,47,47,47,47,47', +',,,,47,,,47,47,,,,,47,,,47,47,47,47,,,,,47,47,,47,,47,47,,47,,47,47', +',,,,,47,47,47,47,47,47,,,,47,47,,,,,,,,,,,,,,,,,,,,,,,,,,,,,47,47,,', +',47,,47,47,48,47,,48,48,48,48,48,48,48,48,48,48,,,,,48,,,48,48,,,,,48', +',,48,48,48,48,,,,,48,48,,48,,48,48,,48,,48,48,,,,,,48,48,48,48,48,48', +',,,48,48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,48,48,,,,48,,48,48,55,48,,55,55', +'55,55,55,55,55,55,55,55,,,,,55,,,55,55,,,,,55,,,55,55,55,55,,,,,55,55', +',55,,55,55,,55,,55,55,,,,,,55,55,55,55,55,55,,,,55,55,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,55,55,,,,55,,55,55,212,55,,212,212,212,212,212,212,212', +'212,212,212,,,,,212,,,212,212,,,,,212,,,212,212,212,212,,,,,212,212', +',212,,212,212,,212,,212,212,,,,,,212,212,212,212,212,212,,,,212,212', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,212,212,,,,212,,212,212,61,212,,61,61,61', +'61,61,61,61,61,61,61,,,,,61,,,61,61,,,,,61,,,61,61,61,61,,,,,61,61,', +'61,,61,61,,61,,61,61,,61,,,,61,61,61,61,61,61,,,,61,61,,,,,,,,,,,,,', +',,,,,,,,,,,,,,,61,61,,,,61,,61,61,203,61,,203,203,203,203,203,203,203', +'203,203,203,,,,,203,,,203,203,,,,,203,,,203,203,203,203,,,,,203,203', +',203,,203,203,,203,,203,203,,,,,,203,203,203,203,203,203,,,,203,203', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,203,203,,,,203,,203,203,200,203,,200,200', +'200,200,200,200,200,200,200,200,,,,,200,,,200,200,,,,,200,,,200,200', +'200,200,,,,,200,200,,200,,200,200,,200,,200,200,200,,,,,200,200,200', +'200,200,200,,,,200,200,,,,,,,,,,,,,,,,,,,,,,,,,,,,,200,200,200,200,', +'200,,200,200,190,200,,190,190,190,190,190,190,190,190,190,190,,,,,190', +',,190,190,,,,,190,,,190,190,190,190,,,,,190,190,,190,,190,190,,190,', +'190,190,,,,,,190,190,190,190,190,190,,,,190,190,,,,,,,,,,,,,,,,,,,,', +',,,,,,,,190,190,,,,190,,190,190,189,190,,189,189,189,189,189,189,189', +'189,189,189,,,,,189,,,189,189,,,,,189,,,189,189,189,189,,,,,189,189', +',189,,189,189,,189,,189,189,,,,,,189,189,189,189,189,189,,,,189,189', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,189,189,,,,189,,189,189,172,189,,172,172', +'172,172,172,172,172,172,172,172,,,,,172,,,172,172,,,,,172,,,172,172', +'172,172,,,,,172,172,,172,,172,172,,172,,172,172,,,,,,172,172,172,172', +'172,172,,,,172,172,,,,,,,,,,,,,,,,,,,,,,,,,,,,,172,172,,,,172,,172,172', +'74,172,,74,74,74,74,74,74,74,74,74,74,,,,,74,,,74,74,,,,,74,,,74,74', +'74,74,,,,,74,74,,74,,74,74,,74,,74,74,,,,,,74,74,74,74,74,74,,,,74,74', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,74,74,,,,74,,74,74,169,74,,169,169,169,169', +'169,169,169,169,169,169,,,,,169,,,169,169,,,,,169,,,169,169,169,169', +',,,,169,169,,169,,169,169,,169,,169,169,,,,,,169,169,169,169,169,169', +',,,169,169,,,,,,,,,,,,,,,,,,,,,,,,,,,,,169,169,,,,169,,169,169,168,169', +',168,168,168,168,168,168,168,168,168,168,,,,,168,,,168,168,,,,,168,', +',168,168,168,168,,,,,168,168,,168,,168,168,,168,,168,168,,,,,,168,168', +'168,168,168,168,,,,168,168,,,,,,,,,,,,,,,,,,,,,,,,,,,,,168,168,,,,168', +',168,168,167,168,,167,167,167,167,167,167,167,167,167,167,,,,,167,,', +'167,167,,,,,167,,,167,167,167,167,,,,,167,167,,167,,167,167,,167,,167', +'167,,,,,,167,167,167,167,167,167,,,,167,167,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,167,167,,,,167,,167,167,166,167,,166,166,166,166,166,166,166,166', +'166,166,,,,,166,,,166,166,,,,,166,,,166,166,166,166,,,,,166,166,,166', +',166,166,,166,,166,166,,,,,,166,166,166,166,166,166,,,,166,166,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,166,166,,,,166,,166,166,165,166,,165,165,165', +'165,165,165,165,165,165,165,,,,,165,,,165,165,,,,,165,,,165,165,165', +'165,,,,,165,165,,165,,165,165,,165,,165,165,,,,,,165,165,165,165,165', +'165,,,,165,165,,,,,,,,,,,,,,,,,,,,,,,,,,,,,165,165,,,,165,,165,165,164', +'165,,164,164,164,164,164,164,164,164,164,164,,,,,164,,,164,164,,,,,164', +',,164,164,164,164,,,,,164,164,,164,,164,164,,164,,164,164,,,,,,164,164', +'164,164,164,164,,,,164,164,,,,,,,,,,,,,,,,,,,,,,,,,,,,,164,164,,,,164', +',164,164,162,164,,162,162,162,162,162,162,162,162,162,162,,,,,162,,', +'162,162,,,,,162,,,162,162,162,162,,,,,162,162,,162,,162,162,,162,,162', +'162,,,,,,162,162,162,162,162,162,,,,162,162,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,162,162,,,,162,,162,162,161,162,,161,161,161,161,161,161,161,161', +'161,161,,,,,161,,,161,161,,,,,161,,,161,161,161,161,,,,,161,161,,161', +',161,161,,161,,161,161,,,,,,161,161,161,161,161,161,,,,161,161,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,161,161,,,,161,,161,161,160,161,,160,160,160', +'160,160,160,160,160,160,160,,,,,160,,,160,160,,,,,160,,,160,160,160', +'160,,,,,160,160,,160,,160,160,,160,,160,160,,,,,,160,160,160,160,160', +'160,,,,160,160,,,,,,,,,,,,,,,,,,,,,,,,,,,,,160,160,,,,160,,160,160,159', +'160,,159,159,159,159,159,159,159,159,159,159,,,,,159,,,159,159,,,,,159', +',,159,159,159,159,,,,,159,159,,159,,159,159,,159,,159,159,,,,,,159,159', +'159,159,159,159,,,,159,159,,,,,,,,,,,,,,,,,,,,,,,,,,,,,159,159,,,,159', +',159,159,158,159,,158,158,158,158,158,158,158,158,158,158,,,,,158,,', +'158,158,,,,,158,,,158,158,158,158,,,,,158,158,,158,,158,158,,158,,158', +'158,,,,,,158,158,158,158,158,158,,,,158,158,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,158,158,,,,158,,158,158,157,158,,157,157,157,157,157,157,157,157', +'157,157,,,,,157,,,157,157,,,,,157,,,157,157,157,157,,,,,157,157,,157', +',157,157,,157,,157,157,,,,,,157,157,157,157,157,157,,,,157,157,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,157,157,,,,157,,157,157,156,157,,156,156,156', +'156,156,156,156,156,156,156,,,,,156,,,156,156,,,,,156,,,156,156,156', +'156,,,,,156,156,,156,,156,156,,156,,156,156,,,,,,156,156,156,156,156', +'156,,,,156,156,,,,,,,,,,,,,,,,,,,,,,,,,,,,,156,156,,,,156,,156,156,154', +'156,,154,154,154,154,154,154,154,154,154,154,,,,,154,,,154,154,,,,,154', +',,154,154,154,154,,,,,154,154,,154,,154,154,,154,,154,154,,,,,,154,154', +'154,154,154,154,,,,154,154,,,,,,,,,,,,,,,,,,,,,,,,,,,,,154,154,,,,154', +',154,154,153,154,,153,153,153,153,153,153,153,153,153,153,,,,,153,,', +'153,153,,,,,153,,,153,153,153,153,,,,,153,153,,153,,153,153,,153,,153', +'153,,,,,,153,153,153,153,153,153,,,,153,153,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,153,153,,,,153,,153,153,152,153,,152,152,152,152,152,152,152,152', +'152,152,,,,,152,,,152,152,,,,,152,,,152,152,152,152,,,,,152,152,,152', +',152,152,,152,,152,152,,,,,,152,152,152,152,152,152,,,,152,152,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,152,152,,,,152,,152,152,150,152,,150,150,150', +'150,150,150,150,150,150,150,,,,,150,,,150,150,,,,,150,,,150,150,150', +'150,,,,,150,150,,150,,150,150,,150,,150,150,,,,,,150,150,150,150,150', +'150,,,,150,150,,,,,,,,,,,,,,,,,,,,,,,,,,,,,150,150,,,,150,,150,150,149', +'150,,149,149,149,149,149,149,149,149,149,149,,,,,149,,,149,149,,,,,149', +',,149,149,149,149,,,,,149,149,,149,,149,149,,149,,149,149,,,,,,149,149', +'149,149,149,149,,,,149,149,,,,,,,,,,,,,,,,,,,,,,,,,,,,,149,149,,,,149', +',149,149,148,149,,148,148,148,148,148,148,148,148,148,148,,,,,148,,', +'148,148,,,,,148,,,148,148,148,148,,,,,148,148,,148,,148,148,,148,,148', +'148,,,,,,148,148,148,148,148,148,,,,148,148,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,148,148,,,,148,,148,148,147,148,,147,147,147,147,147,147,147,147', +'147,147,,,,,147,,,147,147,,,,,147,,,147,147,147,147,,,,,147,147,,147', +',147,147,,147,,147,147,,,,,,147,147,147,147,147,147,,,,147,147,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,147,147,,,,147,,147,147,146,147,,146,146,146', +'146,146,146,146,146,146,146,,,,,146,,,146,146,,,,,146,,,146,146,146', +'146,,,,,146,146,,146,,146,146,,146,,146,146,,,,,,146,146,146,146,146', +'146,,,,146,146,,,,,,,,,,,,,,,,,,,,,,,,,,,,,146,146,,,,146,,146,146,145', +'146,,145,145,145,145,145,145,145,145,145,145,,,,,145,,,145,145,,,,,145', +',,145,145,145,145,,,,,145,145,,145,,145,145,,145,,145,145,,,,,,145,145', +'145,145,145,145,,,,145,145,,,,,,,,,,,,,,,,,,,,,,,,,,,,,145,145,,,,145', +',145,145,310,145,,310,310,310,310,310,310,310,310,310,310,,,,,310,,', +'310,310,,,,,310,,,310,310,310,310,,,,,310,310,,310,,310,310,,310,,310', +'310,,,,,,310,310,310,310,310,310,,,,310,310,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,310,310,,,,310,,310,310,105,310,,105,105,105,105,105,105,105,105', +'105,105,,,,,105,,,105,105,,,,,105,,,105,105,105,105,,,,,105,105,,105', +',105,105,,105,,105,105,,,,,,105,105,105,105,105,105,,,,105,105,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,105,105,,,,105,,105,105,144,105,,144,144,144', +'144,144,144,144,144,144,144,,,,,144,,,144,144,,,,,144,,,144,144,144', +'144,,,,,144,144,,144,,144,144,,144,,144,144,,,,,,144,144,144,144,144', +'144,,,,144,144,,,,,,,,,,,,,,,,,,,,,,,,,,,,,144,144,,,,144,,144,144,143', +'144,,143,143,143,143,143,143,143,143,143,143,,,,,143,,,143,143,,,,,143', +',,143,143,143,143,,,,,143,143,,143,,143,143,,143,,143,143,,,,,,143,143', +'143,143,143,143,,,,143,143,,,,,,,,,,,,,,,,,,,,,,,,,,,,,143,143,,,,143', +',143,143,142,143,,142,142,142,142,142,142,142,142,142,142,,,,,142,,', +'142,142,,,,,142,,,142,142,142,142,,,,,142,142,,142,,142,142,,142,,142', +'142,,,,,,142,142,142,142,142,142,,,,142,142,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,142,142,,,,142,,142,142,113,142,,113,113,113,113,113,113,113,113', +'113,113,,,,,113,,,113,113,,,,,113,,,113,113,113,113,,,,,113,113,,113', +',113,113,,113,,113,113,113,,,,,113,113,113,113,113,113,,,,113,113,,', +',,,,,,,,,,,,,,,,,,,,,,,,,,113,113,,,,113,,113,113,114,113,,114,114,114', +'114,114,114,114,114,114,114,,,,,114,,,114,114,,,,,114,,,114,114,114', +'114,,,,,114,114,,114,,114,114,,114,,114,114,,,,,,114,114,114,114,114', +'114,,,,114,114,,,,,,,,,,,,,,,,,,,,,,,,,,,,,114,114,,,,114,,114,114,141', +'114,,141,141,141,141,141,141,141,141,141,141,,,,,141,,,141,141,,,,,141', +',,141,141,141,141,,,,,141,141,,141,,141,141,,141,,141,141,,,,,,141,141', +'141,141,141,141,,,,141,141,,,,,,,,,,,,,,,,,,,,,,,,,,,,,141,141,,,,141', +',141,141,140,141,,140,140,140,140,140,140,140,140,140,140,,,,,140,,', +'140,140,,,,,140,,,140,140,140,140,,,,,140,140,,140,,140,140,,140,,140', +'140,,,,,,140,140,140,140,140,140,,,,140,140,,,,,,,,,,,,,,,,,,,,,,,,', +',,,,140,140,,,,140,,140,140,139,140,,139,139,139,139,139,139,139,139', +'139,139,,,,,139,,,139,139,,,,,139,,,139,139,139,139,,,,,139,139,,139', +',139,139,,139,,139,139,,,,,,139,139,139,139,139,139,,,,139,139,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,139,139,,,,139,,139,139,138,139,,138,138,138', +'138,138,138,138,138,138,138,,,,,138,,,138,138,,,,,138,,,138,138,138', +'138,,,,,138,138,,138,,138,138,,138,,138,138,,,,,,138,138,138,138,138', +'138,,,,138,138,,,,,,,,,,,,,,,,,,,,,,,,,,,,,138,138,,,,138,,138,138,136', +'138,,136,136,136,136,136,136,136,136,136,136,,,,,136,,,136,136,,,,,136', +',,136,136,136,136,,,,,136,136,,136,,136,136,,136,,136,136,,,,,,136,136', +'136,136,136,136,,,,136,136,,,,,,,,,,,,,,,,,,,,,,,,,,,,,136,136,,,,136', +',136,136,0,136,,0,0,0,0,0,0,0,0,0,0,,,,,0,,,0,0,,,,,0,,,0,0,0,0,,,,', +'0,0,,0,,0,0,,0,,0,0,0,,,,,0,0,0,0,0,0,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,0,0,0,0,,0,,0,0,135,0,,135,135,135,135,135,135,135,135,135,135', +',,,,135,,,135,135,,,,,135,,,135,135,135,135,,,,,135,135,,135,,135,135', +',135,,135,135,,,,,,135,135,135,135,135,135,,,,135,135,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,135,135,,,,135,,135,135,134,135,,134,134,134,134,134,134', +'134,134,134,134,,,,,134,,,134,134,,,,,134,,,134,134,134,134,,,,,134', +'134,,134,,134,134,,134,,134,134,,,,,,134,134,134,134,134,134,,,,134', +'134,,,,,,,,,,,,,,,,,,,,,,,,,,,,,134,134,,,,134,,134,134,133,134,,133', +'133,133,133,133,133,133,133,133,133,,,,,133,,,133,133,,,,,133,,,133', +'133,133,133,,,,,133,133,,133,,133,133,,133,,133,133,,,,,,133,133,133', +'133,133,133,,,,133,133,,,,,,,,,,,,,,,,,,,,,,,,,,,,,133,133,,,,133,,133', +'133,131,133,,131,131,131,131,131,131,131,131,131,131,,,,,131,,,131,131', +',,,,131,,,131,131,131,131,,,,,131,131,,131,,131,131,,131,,131,131,,', +',,,131,131,131,131,131,131,,,,131,131,,,,,,,,,,,,,,,,,,,,,,,,,,,,,131', +'131,,,,131,,131,131,130,131,,130,130,130,130,130,130,130,130,130,130', +',,,,130,,,130,130,,,,,130,,,130,130,130,130,,,,,130,130,,130,,130,130', +',130,,130,130,,,,,,130,130,130,130,130,130,,,,130,130,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,130,130,,,,130,,130,130,127,130,,127,127,127,127,127,127', +'127,127,127,127,,,,,127,,,127,127,,,,,127,,,127,127,127,127,,,,,127', +'127,,127,,127,127,,127,,127,127,,,,,,127,127,127,127,127,127,,,,127', +'127,,,,,,,,,,,,,,,,,,,,,,,,,,,,,127,127,,,,127,,127,127,213,127,,213', +'213,213,213,213,213,213,213,213,213,,,,,213,,,213,213,,,,,213,,,213', +'213,213,213,,,,,213,213,,213,,213,213,,213,,213,213,,,315,,315,213,213', +'213,213,213,213,,,,213,213,,,,,,,,,,,,,,,,,,,315,315,,,,315,,,,315,213', +'213,,,,213,,213,213,315,213,,,,,,315,315,315,315,315,315,315,315,315', +'315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315', +'315,315,315,315,315,315,315,315,304,,304,,,,,,,,315,,,,,,,,,,,,,,,,', +',,,,,304,304,,,,304,,,,304,,,,,,,,,,304,,,,,,,304,304,304,304,304,304', '304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304', -'218,,,,,,,,218,,,,,,,,,,218,,,,,,,218,218,218,218,218,218,218,218,218', -'218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218', -'218,218,218,218,218,282,,,,,,,,282,,,,,,,,,,282,,,,,,,282,282,282,282', -'282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282', -'282,282,282,282,282,282,282,282,282,282,281,,,,,,,,281,,,,,,,,,,281', -',,,,,,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281', -'281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,244,,,,', -',,,,,244,,,,,,,244,244,244,244,244,244,244,244,244,244,244,244,244,244', -'244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,86,', -',,,,,,,,86,,,,,,,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86', -'86,86,86,86,86,86,86,86,86,86,86,86,86,104,,,,,,,,,,104,,,,,,,104,104', -'104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104', -'104,104,104,104,104,104,104,104,104,104,104,237,,,,,,,237,237,237,237', -'237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237', -'237,237,237,237,237,237,237,237,237,240,,,,,,,240,240,240,240,240,240', -'240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240', -'240,240,240,240,240,240,240,213,,,,,,,213,213,213,213,213,213,213,213', -'213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213', -'213,213,213,213,213,209,,,,,,,209,209,209,209,209,209,209,209,209,209', -'209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209,209', -'209,209,209,245,,,,,,,245,245,245,245,245,245,245,245,245,245,245,245', -'245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245', -'245' ] - racc_action_check = arr = Array.new(9160, nil) +'304,304,304,304,304,304,304,304,304,304,304,303,303,303,303,303,303', +'303,303,303,303,304,,,,303,,,303,303,,,,,303,,,303,303,303,,,,,,,303', +',303,,303,303,,303,,303,303,,,,,,303,303,303,303,303,303,,,,303,303', +',,,,313,313,313,313,313,313,313,313,313,313,,,,,313,,,313,313,,,,,313', +'303,303,313,313,313,303,,303,303,,303,313,,313,,313,313,,313,,313,313', +',,,,,313,313,313,313,313,313,,,,313,313,,,,171,171,171,171,171,171,171', +'171,171,171,,,,,,,,,,,,,,,,313,313,171,171,,313,,313,313,,313,,,,,,', +'171,,,171,,,,,,,,,,,,,,,,,,,26,26,26,26,26,26,26,26,26,26,,,,,26,,,26', +'26,,,,,26,,,26,26,26,26,,171,,171,171,26,171,26,,26,26,,26,,26,26,,', +',,,26,26,26,26,26,26,,,,26,26,,,,21,21,21,21,21,21,21,21,21,21,,,,,', +',,,,,,,,,,26,26,21,21,,26,,26,26,,26,,,,,,,21,,,21,,,215,,215,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,215,215,,,,215,,,,215,,,,,,21,,21,21,215,21,', +',,,,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215', +'215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215', +'215,116,,116,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,116,116,,,,116,,,,116,,,,', +',,,,,116,,,,,,,116,116,116,116,116,116,116,116,116,116,116,116,116,116', +'116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116', +'116,116,116,314,,314,,,,,,,,,,,,,,,,,,,,,,,314,,,,,,,314,314,,,,314', +',,,314,,,,,,,,,,314,,,,,,,314,314,314,314,314,314,314,314,314,314,314', +'314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314,314', +'314,314,314,314,314,314,223,,223,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,223,223', +',,,223,,,,223,,,,,,,,,,223,,,,,,,223,223,223,223,223,223,223,223,223', +'223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223', +'223,223,223,223,223,223,223,223,238,,238,,,,,,,,,,,,,,,,,,,,,,,,,,,', +',,238,238,,,,238,,,,238,,,,,,,,,,238,,,,,,,238,238,238,238,238,238,238', +'238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238', +'238,238,238,238,238,238,238,238,238,238,320,,320,,,,,,,,,,,,,,,,,,,', +',,,320,,,,,,,320,320,,,,320,,,,320,,,,,,,,,,320,,,,,,,320,320,320,320', +'320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320', +'320,320,320,320,320,320,320,320,320,320,320,320,320,231,,231,,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,231,231,,,,231,,,,231,,,,,,,,,,231,,,,,,,231,231', +'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231', +'231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,72,,72,', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,72,72,,,,72,,,,72,,,,,,,,,,72,,,,,,,72,72', +'72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72', +'72,72,72,72,72,72,72,72,72,302,,302,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,302', +'302,,,,302,,,,302,,,,,,,,,,302,,,,,,,302,302,302,302,302,302,302,302', +'302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302,302', +'302,302,302,302,302,302,302,302,302,301,,301,,,,,,,,,,,,,,,,,,,,,,,', +',,,,,,301,301,,,,301,,,,301,,,,,,,,,,301,,,,,,,301,301,301,301,301,301', +'301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301,301', +'301,301,301,301,301,301,301,301,301,301,301,268,,268,,,,,,,,,,,,,,,', +',,,,,,,,,,,,,,268,268,,,,268,,,,268,,,,,,,,,,268,,,,,,,268,268,268,268', +'268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268', +'268,268,268,268,268,268,268,268,268,268,268,268,268,317,,317,,,,,,,', +',,,,,,,,,,,,,,,,,,,,,,317,317,,,,317,,,,317,,,,,,,,,,317,,,,,,,317,317', +'317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,317', +'317,317,317,317,317,317,317,317,317,317,317,317,317,317,317,269,,269', +',,,,,,,,,,,,,,,,,,,,,,,,,,,,,269,269,,,,269,,,,269,,,,,,,,,,269,,,,', +',,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269', +'269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269,269', +'277,,277,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,277,277,,,,277,,,,277,,,,,,,,', +',277,,,,,,,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277', +'277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277', +'277,277,278,,278,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,278,278,,,,278,,,,278', +',,,,,,,,,278,,,,,,,278,278,278,278,278,278,278,278,278,278,278,278,278', +'278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278', +'278,278,278,278,199,,199,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,199,199,,,,199', +',,,199,,,,,,,,,,199,,,,,,,199,199,199,199,199,199,199,199,199,199,199', +'199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199', +'199,199,199,199,199,199,295,,295,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,295,295', +',,,295,,,,295,,,,,,,,,,295,,,,,,,295,295,295,295,295,295,295,295,295', +'295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295', +'295,295,295,295,295,295,295,295,194,,194,,,,,,,,,,,,,,,,,,,,,,,194,', +',,,,,194,194,,,,194,,,,194,,,,,,,,,,194,,,,,,,194,194,194,194,194,194', +'194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194,194', +'194,194,194,194,194,194,194,194,194,194,194,88,,88,,,,,,,,,,,,,,,,,', +',,,,,,,,,,,,88,88,,,,88,,,,88,,,,,,,,88,,88,,,,,,,88,88,88,88,88,88', +'88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88', +'88,88,88,88,88,87,,87,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,87,87,,,,87,,,,87', +',,,,,,,87,,87,,,,,,,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87', +'87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,193,,193,,,,,', +',,,,,,,,,,,,,,,,,,,,,,,,193,193,,,,193,,,,193,,,,,,,,,,193,,,,,,,193', +'193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193', +'193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,85,', +'85,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,85,85,,,,85,,,,85,,,,,,,,85,,85,,,,', +',,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85', +'85,85,85,85,85,85,85,85,85,85,85,85,257,257,,,,,,,,257,,,,,,,,,,257', +',,,,,,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257', +'257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257', +'257,95,95,,,,,,,,95,,,,,,,,,,95,,,,,,,95,95,95,95,95,95,95,95,95,95', +'95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95', +'95,235,235,,,,,,,,235,,,,,,,,,,235,,,,,,,235,235,235,235,235,235,235', +'235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235', +'235,235,235,235,235,235,235,121,121,,,,,,,,121,,,,,,,,,,121,,,,,,,121', +'121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121', +'121,121,121,121,121,121,121,121,121,121,121,121,121,232,232,,,,,,,,232', +',,,,,,,,,232,,,,,,,232,232,232,232,232,232,232,232,232,232,232,232,232', +'232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232', +'232,228,228,,,,,,,,228,,,,,,,,,,228,,,,,,,228,228,228,228,228,228,228', +'228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228', +'228,228,228,228,228,228,228,225,,,,,,,,225,,,,,,,,,,225,,,,,,,225,225', +'225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225', +'225,225,225,225,225,225,225,225,225,225,225,225,308,,,,,,,,308,,,,,', +',,,,308,,,,,,,308,308,308,308,308,308,308,308,308,308,308,308,308,308', +'308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308', +'285,,,,,,,,285,,,,,,,,,,285,,,,,,,285,285,285,285,285,285,285,285,285', +'285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285,285', +'285,285,285,285,285,284,,,,,,,,284,,,,,,,,,,284,,,,,,,284,284,284,284', +'284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284', +'284,284,284,284,284,284,284,284,284,284,307,,,,,,,,307,,,,,,,,,,307', +',,,,,,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307', +'307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,251,,,,', +',,,,,251,,,,,,,251,251,251,251,251,251,251,251,251,251,251,251,251,251', +'251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,93,', +',,,,,,,,93,,,,,,,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93', +'93,93,93,93,93,93,93,93,93,93,93,93,93,102,,,,,,,,,,102,,,,,,,102,102', +'102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102', +'102,102,102,102,102,102,102,102,102,102,102,216,,,,,,,216,216,216,216', +'216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216', +'216,216,216,216,216,216,216,216,216,244,,,,,,,244,244,244,244,244,244', +'244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244', +'244,244,244,244,244,244,244,220,,,,,,,220,220,220,220,220,220,220,220', +'220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220', +'220,220,220,220,220,252,,,,,,,252,252,252,252,252,252,252,252,252,252', +'252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252', +'252,252,252,247,,,,,,,247,247,247,247,247,247,247,247,247,247,247,247', +'247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247', +'247' ] + racc_action_check = arr = Array.new(11069, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -709,345 +773,350 @@ clist = [ end racc_action_pointer = [ - 4700, 340, nil, nil, 174, nil, 249, nil, nil, 324, - nil, 399, 474, nil, nil, 549, nil, nil, nil, 624, - nil, -2, 774, nil, 849, 6008, nil, 324, nil, 235, - nil, nil, 1149, nil, 1224, 243, nil, 1374, nil, nil, - 1449, nil, nil, 202, nil, nil, 1599, nil, nil, nil, - nil, nil, 1674, 215, nil, nil, nil, nil, nil, 1824, - nil, nil, 219, nil, nil, nil, 152, 203, 6272, -22, - -2, 37, nil, 2424, nil, -38, -5, 185, 7376, 317, - 8020, 6548, 301, 242, 399, 474, 8838, 392, 8172, nil, - 3575, 3650, 229, 276, nil, 278, nil, nil, 210, nil, - 231, 236, nil, 53, 8885, 71, 4400, 7008, 4550, 451, - -2, 196, 64, 8349, 342, 64, nil, 5176, 260, 101, - nil, 5401, 5476, 5551, 351, 3500, 1524, 1299, 999, 277, - 699, 4175, 2975, 924, 4625, 5326, 5251, 5101, 5026, 4951, - 4876, 4801, 5626, nil, 4475, 4325, 4250, nil, 99, 4100, - 4025, 3950, 3875, 3800, 3725, 6074, 3425, 3350, 3275, 3200, - 3125, 3050, nil, nil, 6130, nil, 2900, nil, nil, 91, - nil, 219, 467, 120, 184, 232, nil, nil, 188, 74, - 7560, 7468, nil, nil, nil, 2825, 2750, 93, 114, nil, - 230, 2649, nil, nil, 2574, 7192, 108, -2, nil, 159, - 163, 102, nil, nil, 6180, 133, 2499, 2349, -17, 9033, - 6590, -7, 79, 8996, 6498, 408, 6824, -52, 8631, 4709, - 333, 8463, 6406, 258, 6640, 8406, 5720, 6092, 8292, 6126, - 6866, 6456, 2658, 5942, 6222, 5635, 167, 8922, 6774, -18, - 8959, nil, 6314, 376, 8791, 9070, 6682, 483, 2, 249, - 8232, nil, nil, nil, nil, -54, nil, -24, 150, 126, - nil, 2274, nil, -65, nil, 7652, 8112, nil, nil, 203, - nil, 2199, 2124, 6732, 6916, 2049, nil, 68, 89, nil, - nil, 8743, 8687, nil, 1974, 1899, 275, nil, nil, nil, - -2, 149, nil, nil, -50, 7744, 1749, nil, 7928, 7836, - 5933, 5768, nil, nil, 8575, 8519, nil, 245, 37, 1074, - 5867, 6364, 5676, nil, nil, nil, 7100, 7284, nil, nil, - nil ] + 6832, 281, nil, nil, 202, 223, 406, nil, nil, 508, + nil, 610, 712, nil, nil, 814, nil, nil, nil, 916, + nil, 8038, 1120, nil, 1222, nil, 7973, nil, nil, nil, + 171, nil, nil, 1528, 406, nil, 11, 124, nil, 1936, + 2038, nil, nil, 252, nil, nil, nil, 2242, 2344, nil, + nil, nil, nil, nil, nil, 2446, nil, nil, nil, nil, + 137, 2650, nil, nil, nil, nil, nil, nil, 81, nil, + 156, 227, 8733, -2, 3262, 146, nil, 111, -3, 399, + nil, 203, nil, nil, -1, 10021, 342, 9837, 9745, 484, + 280, 304, 481, 10747, 204, 10141, 173, 134, 145, 178, + nil, nil, 10794, 100, nil, 5710, 229, 231, 236, nil, + nil, nil, nil, 6118, 6220, 65, 8181, 93, 164, -26, + -2, 10258, 329, nil, 89, 235, 320, 7444, nil, 2140, + 7342, 7240, 317, 7138, 7036, 6934, 6730, 232, 6628, 6526, + 6424, 6322, 6016, 5914, 5812, 5506, 5404, 5302, 5200, 5098, + 4996, nil, 4894, 4792, 4690, nil, 4588, 4486, 4384, 4282, + 4180, 4078, 3976, -2, 3874, 3772, 3670, 3568, 3466, 3364, + nil, 7909, 3160, nil, 138, nil, 249, 132, 204, nil, + nil, nil, nil, nil, nil, 127, 121, nil, 217, 3058, + 2956, 84, 91, 9929, 9653, nil, nil, nil, 74, 9469, + 2854, nil, nil, 2752, -44, 9, 5, -35, nil, nil, + nil, 101, 2548, 7546, 87, 8089, 10831, 517, 1047, 85, + 10905, 721, 1656, 8365, 65, 10428, 216, 1554, 10372, 415, + 1741, 8641, 10315, 823, 1639, 10201, 313, 1435, 8457, 925, + 1537, 619, 1027, 195, 10868, 1231, 297, 10979, nil, 1129, + 382, 10700, 10942, 1333, 1149, 508, 583, 10081, 183, nil, + 123, -45, 1834, 126, nil, nil, 226, nil, 9009, 9193, + nil, nil, -67, nil, nil, 1732, 1630, 9285, 9377, 1426, + 67, 79, nil, nil, 10596, 10540, nil, 1324, 1018, 200, + nil, nil, nil, -13, -2, 9561, 166, nil, nil, nil, + 304, 8917, 8825, 7778, 7689, nil, nil, 10652, 10484, nil, + 5608, 82, 256, 7844, 8273, 7597, nil, 9101, nil, nil, + 8549, nil, nil, nil ] racc_action_default = [ - -1, -183, -97, -10, -183, -106, -183, -98, -11, -183, - -107, -183, -183, -26, -12, -183, -108, -27, -13, -183, - -109, -183, -183, -14, -183, -46, -15, -125, -28, -119, - -16, -29, -183, -31, -138, -183, -17, -183, -35, -18, - -183, -127, -36, -183, -34, -19, -183, -37, -20, -47, - -21, -38, -183, -183, -30, -22, -39, -32, -2, -183, - -23, -40, -3, -105, -104, -33, -183, -183, -5, -183, - -8, -176, -9, -183, -99, -101, -183, -48, -155, -49, - -183, -183, -53, -55, -183, -126, -56, -54, -45, -130, - -138, -183, -183, -183, -111, -183, -115, -116, -183, -44, - -183, -119, -120, -183, -57, -183, -183, -139, -138, -51, - -183, -183, -50, -152, -183, -183, -25, -7, -159, -183, - -4, -183, -183, -183, -183, -183, -183, -183, -183, -183, - -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, - -183, -183, -183, -59, -183, -183, -183, -58, -183, -183, - -183, -183, -183, -183, -183, -94, -183, -183, -183, -183, - -183, -183, -96, -129, -183, -110, -183, -178, -180, -183, - -174, -176, -52, -183, -183, -183, -154, -172, -183, -183, - -139, -183, -112, -113, -114, -183, -183, -183, -183, -118, - -183, -183, -137, -145, -183, -140, -183, -183, -153, -148, - -183, -183, 321, -24, -6, -183, -183, -183, -183, -87, - -75, -64, -183, -88, -76, -65, -181, -183, -93, -77, - -66, -89, -78, -67, -182, -90, -79, -68, -91, -80, - -69, -156, -81, -70, -82, -71, -60, -84, -72, -61, - -85, -83, -73, -62, -92, -86, -74, -63, -128, -183, - -41, -177, -173, -179, -175, -183, -100, -183, -183, -183, - -167, -183, -131, -183, -117, -42, -43, -124, -121, -183, - -122, -183, -183, -141, -142, -183, -132, -183, -183, -149, - -160, -161, -162, -158, -183, -183, -157, -103, -102, -95, - -183, -183, -168, -165, -183, -146, -183, -123, -143, -144, - -103, -183, -150, -151, -164, -163, -171, -183, -169, -183, - -103, -183, -183, -133, -166, -170, -147, -183, -135, -134, - -136 ] + -1, -186, -97, -9, -186, -179, -186, -98, -10, -186, + -106, -186, -186, -26, -11, -186, -107, -27, -12, -186, + -108, -186, -186, -13, -186, -109, -46, -14, -110, -28, + -120, -15, -29, -186, -126, -31, -134, -186, -16, -141, + -186, -35, -17, -186, -36, -34, -18, -186, -186, -37, + -19, -47, -20, -128, -38, -186, -30, -21, -39, -32, + -186, -186, -22, -40, -2, -23, -104, -33, -186, -105, + -3, -186, -5, -8, -186, -186, -99, -101, -186, -48, + -177, -179, -181, -183, -186, -158, -49, -186, -186, -53, + -55, -186, -127, -56, -54, -45, -186, -186, -186, -120, + -44, -121, -57, -141, -131, -186, -186, -186, -186, -112, + -116, -117, -135, -141, -186, -186, -142, -51, -186, -50, + -186, -155, -186, -25, -186, -162, -186, -7, -4, -186, + -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, + -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, + -186, -59, -186, -186, -186, -58, -186, -186, -186, -186, + -186, -186, -186, -94, -186, -186, -186, -186, -186, -186, + -130, -186, -186, -111, -52, -96, -186, -186, -186, -178, + -182, -180, -176, -157, -175, -186, -186, -119, -186, -186, + -186, -186, -186, -142, -186, -113, -114, -115, -186, -143, + -186, -140, -148, -186, -186, -151, -186, -186, -156, 324, + -24, -186, -186, -186, -186, -6, -87, -75, -64, -186, + -88, -76, -65, -184, -186, -93, -77, -66, -89, -78, + -67, -185, -90, -79, -68, -91, -80, -69, -159, -81, + -70, -82, -71, -60, -84, -72, -61, -85, -83, -73, + -62, -92, -86, -74, -63, -129, -186, -41, -186, -100, + -186, -186, -186, -186, -170, -122, -186, -123, -42, -43, + -125, -132, -186, -118, -133, -186, -186, -144, -145, -186, + -186, -186, -152, -163, -164, -165, -161, -186, -186, -160, + -103, -102, -95, -186, -186, -149, -186, -168, -171, -124, + -186, -147, -146, -103, -186, -153, -154, -167, -166, -174, + -186, -172, -186, -103, -186, -186, -136, -150, -173, -169, + -186, -138, -137, -139 ] racc_goto_table = [ - 58, 74, 260, 208, 67, 167, 165, 163, 77, 170, - 78, 62, 268, 79, 270, 80, 81, 99, 105, 82, - 165, 163, 119, 83, 84, 85, 86, 103, 87, 88, - 53, 294, 259, 199, 252, 257, 104, 171, 107, 76, - 168, 109, nil, nil, 110, nil, nil, 111, nil, nil, - 112, nil, nil, nil, nil, nil, 113, nil, nil, nil, - nil, nil, 117, nil, nil, nil, nil, 120, nil, nil, - 115, nil, nil, 162, 179, nil, nil, 172, nil, nil, - 212, nil, 176, 292, 177, nil, nil, nil, nil, 99, - nil, nil, 197, 297, 180, 181, 286, nil, nil, 187, - nil, nil, nil, 190, nil, 253, nil, nil, nil, 254, - 195, nil, 180, nil, 306, 117, nil, nil, nil, nil, - nil, 204, nil, nil, nil, 209, 210, 211, nil, 213, - 214, 215, 216, nil, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, nil, 231, 232, - 233, nil, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 258, 248, 249, nil, - 250, nil, nil, 251, 256, nil, 99, nil, 99, nil, - nil, nil, nil, nil, 165, 163, nil, 190, 269, 265, - 266, 271, nil, nil, nil, 273, nil, nil, 274, nil, - nil, nil, nil, nil, nil, 279, nil, nil, nil, nil, - 281, 282, 283, nil, nil, nil, nil, nil, nil, nil, + 64, 173, 170, 71, 76, 264, 214, 79, 91, 85, + 80, 265, 86, 267, 87, 88, 126, 82, 89, 173, + 170, 115, 90, 100, 92, 93, 60, 94, 96, 95, + 294, 263, 205, 70, 182, 260, 102, 81, 78, 83, + nil, nil, 116, 117, nil, nil, 118, nil, nil, nil, + 119, 120, nil, nil, nil, nil, nil, nil, 121, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 127, 128, nil, nil, nil, nil, nil, 174, 175, nil, + 219, nil, nil, 298, nil, 192, 179, 181, 183, nil, + 184, 299, 100, 180, 124, 198, 188, 191, nil, 289, + nil, nil, nil, nil, nil, nil, 193, nil, 194, nil, + nil, nil, nil, 309, nil, nil, 193, 199, nil, nil, + nil, nil, nil, nil, 127, nil, nil, nil, nil, nil, + 215, nil, 216, 217, 218, nil, 220, 221, 222, 223, + nil, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, nil, 238, 239, 240, 255, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, nil, 256, 257, nil, nil, 261, 100, + 259, 100, nil, 173, 170, nil, 266, nil, nil, nil, + nil, 188, 268, 269, nil, nil, nil, nil, nil, nil, + 276, nil, nil, 277, nil, nil, 278, nil, nil, nil, + 282, nil, nil, nil, nil, 284, 285, 286, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 258, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 99, 290, nil, - nil, 289, nil, nil, nil, 295, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 298, 299, nil, 258, 301, - nil, 302, 303, nil, nil, nil, nil, nil, 304, 305, - nil, nil, nil, nil, nil, 307, nil, nil, 308, nil, - 311, nil, nil, nil, 312, nil, nil, nil, 315, nil, - nil, nil, nil, 316, 317 ] + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 261, nil, nil, 100, + nil, 293, nil, 292, nil, 295, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 301, 302, + nil, nil, 304, 305, 306, nil, 261, nil, nil, nil, + 307, 308, nil, nil, nil, nil, nil, 311, nil, 312, + nil, nil, nil, 314, nil, nil, 315, nil, nil, nil, + nil, 318, nil, 317, nil, nil, 320 ] racc_goto_check = [ - 2, 26, 44, 42, 4, 48, 31, 37, 5, 46, - 5, 3, 23, 5, 23, 5, 5, 21, 38, 5, - 31, 37, 41, 5, 6, 32, 5, 35, 5, 5, - 1, 39, 43, 40, 45, 25, 5, 47, 5, 24, - 49, 5, nil, nil, 5, nil, nil, 4, nil, nil, - 5, nil, nil, nil, nil, nil, 5, nil, nil, nil, - nil, nil, 2, nil, nil, nil, nil, 2, nil, nil, - 3, nil, nil, 4, 38, nil, nil, 5, nil, nil, - 41, nil, 4, 44, 4, nil, nil, nil, nil, 21, - nil, nil, 38, 23, 5, 5, 42, nil, nil, 35, - nil, nil, nil, 2, nil, 48, nil, nil, nil, 46, - 5, nil, 5, nil, 44, 2, nil, nil, nil, nil, - nil, 5, nil, nil, nil, 5, 5, 5, nil, 5, - 5, 5, 5, nil, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, nil, 5, 5, - 5, nil, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 21, 6, 32, nil, - 5, nil, nil, 4, 26, nil, 21, nil, 21, nil, - nil, nil, nil, nil, 31, 37, nil, 2, 2, 5, - 5, 2, nil, nil, nil, 5, nil, nil, 5, nil, - nil, nil, nil, nil, nil, 4, nil, nil, nil, nil, - 5, 5, 4, nil, nil, nil, nil, nil, nil, nil, + 2, 32, 38, 4, 26, 45, 43, 5, 6, 5, + 47, 23, 5, 23, 5, 5, 42, 49, 5, 32, + 38, 39, 5, 21, 33, 5, 1, 5, 36, 5, + 40, 44, 41, 3, 46, 25, 5, 48, 24, 50, + nil, nil, 5, 5, nil, nil, 4, nil, nil, nil, + 5, 5, nil, nil, nil, nil, nil, nil, 5, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 2, 2, nil, nil, nil, nil, nil, 5, 4, nil, + 42, nil, nil, 45, nil, 39, 47, 4, 4, nil, + 4, 23, 21, 49, 3, 39, 2, 36, nil, 43, + nil, nil, nil, nil, nil, nil, 5, nil, 5, nil, + nil, nil, nil, 45, nil, nil, 5, 5, nil, nil, + nil, nil, nil, nil, 2, nil, nil, nil, nil, nil, + 5, nil, 5, 5, 5, nil, 5, 5, 5, 5, + nil, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, nil, 5, 5, 5, 6, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, nil, 33, 5, nil, nil, 21, 21, + 26, 21, nil, 32, 38, nil, 2, nil, nil, nil, + nil, 2, 5, 5, nil, nil, nil, nil, nil, nil, + 2, nil, nil, 5, nil, nil, 5, nil, nil, nil, + 4, nil, nil, nil, nil, 5, 5, 4, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 21, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 21, 2, nil, - nil, 4, nil, nil, nil, 5, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 5, 5, nil, 21, 5, - nil, 4, 4, nil, nil, nil, nil, nil, 5, 5, - nil, nil, nil, nil, nil, 4, nil, nil, 4, nil, - 5, nil, nil, nil, 5, nil, nil, nil, 2, nil, - nil, nil, nil, 5, 5 ] + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 21, nil, nil, 21, + nil, 2, nil, 4, nil, 5, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 5, 5, + nil, nil, 5, 4, 4, nil, 21, nil, nil, nil, + 5, 5, nil, nil, nil, nil, nil, 4, nil, 4, + nil, nil, nil, 5, nil, nil, 5, nil, nil, nil, + nil, 2, nil, 5, nil, nil, 5 ] racc_goto_pointer = [ - nil, 30, 0, 11, 4, 4, 3, nil, nil, nil, + nil, 26, 0, 33, 3, 3, -13, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, -12, nil, -176, 38, -140, 0, nil, nil, nil, - nil, -64, 4, nil, nil, -2, nil, -63, -16, -230, - -78, -44, -116, -146, -176, -135, -62, -34, -66, -31 ] + nil, -7, nil, -175, 37, -143, 3, nil, nil, nil, + nil, nil, -72, 3, nil, nil, -2, nil, -71, -18, + -232, -86, -52, -120, -154, -180, -50, 5, 32, 12, + 34 ] racc_goto_default = [ - nil, nil, 194, nil, nil, 68, 70, 72, 3, 8, - 14, 18, 23, 26, 30, 36, 39, 45, 48, 50, - 55, 60, 63, 102, nil, 69, nil, 5, 10, 16, - 20, 94, 27, 96, 97, nil, 41, 89, nil, nil, - nil, nil, nil, nil, nil, 71, nil, nil, nil, nil ] + nil, nil, 203, nil, nil, 72, 73, 3, 8, 14, + 18, 23, 27, 31, 38, 42, 46, 50, 52, 57, + 62, 65, 69, 101, nil, 75, nil, 10, 16, 20, + 25, 28, 109, 34, 110, 111, nil, 53, 104, nil, + nil, nil, nil, nil, nil, nil, 5, nil, nil, nil, + nil ] racc_reduce_table = [ 0, 0, :racc_error, - 0, 107, :_reduce_1, - 1, 107, :_reduce_2, - 1, 107, :_reduce_3, - 2, 107, :_reduce_4, - 1, 109, :_reduce_5, - 3, 109, :_reduce_6, - 2, 109, :_reduce_7, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 1, 111, :_reduce_none, - 3, 110, :_reduce_24, - 2, 110, :_reduce_25, - 1, 108, :_reduce_none, - 1, 108, :_reduce_none, - 1, 128, :_reduce_28, - 1, 128, :_reduce_29, - 1, 128, :_reduce_30, - 1, 128, :_reduce_31, - 1, 128, :_reduce_32, - 1, 128, :_reduce_33, - 1, 128, :_reduce_34, - 1, 128, :_reduce_35, - 1, 128, :_reduce_36, - 1, 128, :_reduce_37, - 1, 128, :_reduce_38, - 1, 128, :_reduce_39, - 1, 128, :_reduce_40, - 3, 116, :_reduce_41, - 3, 129, :_reduce_42, - 3, 129, :_reduce_43, - 1, 129, :_reduce_44, - 2, 120, :_reduce_45, - 1, 120, :_reduce_46, - 1, 127, :_reduce_47, - 2, 115, :_reduce_48, - 2, 115, :_reduce_49, - 2, 115, :_reduce_50, - 2, 115, :_reduce_51, - 2, 115, :_reduce_52, - 2, 115, :_reduce_53, - 2, 115, :_reduce_54, - 2, 115, :_reduce_55, - 2, 115, :_reduce_56, - 2, 115, :_reduce_57, - 2, 115, :_reduce_58, - 2, 115, :_reduce_59, - 3, 115, :_reduce_60, - 3, 115, :_reduce_61, - 3, 115, :_reduce_62, - 3, 115, :_reduce_63, - 3, 115, :_reduce_64, - 3, 115, :_reduce_65, - 3, 115, :_reduce_66, - 3, 115, :_reduce_67, - 3, 115, :_reduce_68, - 3, 115, :_reduce_69, - 3, 115, :_reduce_70, - 3, 115, :_reduce_71, - 3, 115, :_reduce_72, - 3, 115, :_reduce_73, - 3, 115, :_reduce_74, - 3, 115, :_reduce_75, - 3, 115, :_reduce_76, - 3, 115, :_reduce_77, - 3, 115, :_reduce_78, - 3, 115, :_reduce_79, - 3, 115, :_reduce_80, - 3, 115, :_reduce_81, - 3, 115, :_reduce_82, - 3, 115, :_reduce_83, - 3, 115, :_reduce_84, - 3, 115, :_reduce_85, - 3, 115, :_reduce_86, - 3, 115, :_reduce_87, - 3, 115, :_reduce_88, - 3, 115, :_reduce_89, - 3, 115, :_reduce_90, - 3, 115, :_reduce_91, - 3, 115, :_reduce_92, - 3, 115, :_reduce_93, - 2, 126, :_reduce_94, - 5, 114, :_reduce_95, - 2, 114, :_reduce_96, - 1, 131, :_reduce_97, - 1, 131, :_reduce_98, - 1, 130, :_reduce_99, - 3, 130, :_reduce_100, - 1, 132, :_reduce_none, - 4, 132, :_reduce_102, - 4, 125, :_reduce_103, - 1, 112, :_reduce_104, - 1, 112, :_reduce_105, - 1, 112, :_reduce_106, - 1, 112, :_reduce_107, - 1, 112, :_reduce_108, - 1, 112, :_reduce_109, - 2, 112, :_reduce_110, - 2, 112, :_reduce_111, - 2, 137, :_reduce_112, - 2, 137, :_reduce_113, - 2, 137, :_reduce_114, - 1, 137, :_reduce_115, - 1, 137, :_reduce_116, - 3, 139, :_reduce_117, - 3, 134, :_reduce_118, - 0, 141, :_reduce_119, - 1, 141, :_reduce_120, - 3, 141, :_reduce_121, - 3, 141, :_reduce_122, - 4, 141, :_reduce_123, - 3, 141, :_reduce_124, - 1, 113, :_reduce_125, - 2, 113, :_reduce_126, - 1, 113, :_reduce_127, - 3, 124, :_reduce_128, - 2, 138, :_reduce_129, - 2, 138, :_reduce_130, - 3, 143, :_reduce_131, - 4, 142, :_reduce_132, - 6, 136, :_reduce_133, - 7, 136, :_reduce_134, - 6, 140, :_reduce_135, - 7, 140, :_reduce_136, - 3, 133, :_reduce_137, - 0, 144, :_reduce_138, - 1, 144, :_reduce_139, - 2, 144, :_reduce_140, - 3, 144, :_reduce_141, - 3, 144, :_reduce_142, - 4, 144, :_reduce_143, - 4, 144, :_reduce_144, - 2, 144, :_reduce_145, - 1, 145, :_reduce_146, - 3, 145, :_reduce_147, - 3, 118, :_reduce_148, - 4, 118, :_reduce_149, - 5, 118, :_reduce_150, - 3, 146, :_reduce_151, - 2, 119, :_reduce_152, - 3, 135, :_reduce_153, - 3, 121, :_reduce_154, - 2, 121, :_reduce_155, - 3, 121, :_reduce_156, - 4, 122, :_reduce_157, - 4, 122, :_reduce_158, - 1, 147, :_reduce_159, - 3, 147, :_reduce_160, - 2, 148, :_reduce_161, - 2, 148, :_reduce_162, - 3, 148, :_reduce_163, - 3, 148, :_reduce_164, - 5, 123, :_reduce_165, - 7, 123, :_reduce_166, - 1, 149, :_reduce_167, - 2, 149, :_reduce_168, - 3, 150, :_reduce_169, - 4, 150, :_reduce_170, - 3, 150, :_reduce_171, - 3, 151, :_reduce_172, - 2, 152, :_reduce_173, - 1, 153, :_reduce_174, - 2, 153, :_reduce_175, - 0, 154, :_reduce_176, - 2, 154, :_reduce_177, - 1, 155, :_reduce_178, - 2, 155, :_reduce_179, - 2, 117, :_reduce_180, - 3, 117, :_reduce_181, - 3, 117, :_reduce_182 ] + 0, 108, :_reduce_1, + 1, 108, :_reduce_2, + 1, 108, :_reduce_3, + 2, 108, :_reduce_4, + 1, 110, :_reduce_5, + 3, 110, :_reduce_6, + 2, 110, :_reduce_7, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 1, 112, :_reduce_none, + 3, 111, :_reduce_24, + 2, 111, :_reduce_25, + 1, 109, :_reduce_none, + 1, 109, :_reduce_none, + 1, 129, :_reduce_28, + 1, 129, :_reduce_29, + 1, 129, :_reduce_30, + 1, 129, :_reduce_31, + 1, 129, :_reduce_32, + 1, 129, :_reduce_33, + 1, 129, :_reduce_34, + 1, 129, :_reduce_35, + 1, 129, :_reduce_36, + 1, 129, :_reduce_37, + 1, 129, :_reduce_38, + 1, 129, :_reduce_39, + 1, 129, :_reduce_40, + 3, 117, :_reduce_41, + 3, 130, :_reduce_42, + 3, 130, :_reduce_43, + 1, 130, :_reduce_44, + 2, 121, :_reduce_45, + 1, 121, :_reduce_46, + 1, 128, :_reduce_47, + 2, 116, :_reduce_48, + 2, 116, :_reduce_49, + 2, 116, :_reduce_50, + 2, 116, :_reduce_51, + 2, 116, :_reduce_52, + 2, 116, :_reduce_53, + 2, 116, :_reduce_54, + 2, 116, :_reduce_55, + 2, 116, :_reduce_56, + 2, 116, :_reduce_57, + 2, 116, :_reduce_58, + 2, 116, :_reduce_59, + 3, 116, :_reduce_60, + 3, 116, :_reduce_61, + 3, 116, :_reduce_62, + 3, 116, :_reduce_63, + 3, 116, :_reduce_64, + 3, 116, :_reduce_65, + 3, 116, :_reduce_66, + 3, 116, :_reduce_67, + 3, 116, :_reduce_68, + 3, 116, :_reduce_69, + 3, 116, :_reduce_70, + 3, 116, :_reduce_71, + 3, 116, :_reduce_72, + 3, 116, :_reduce_73, + 3, 116, :_reduce_74, + 3, 116, :_reduce_75, + 3, 116, :_reduce_76, + 3, 116, :_reduce_77, + 3, 116, :_reduce_78, + 3, 116, :_reduce_79, + 3, 116, :_reduce_80, + 3, 116, :_reduce_81, + 3, 116, :_reduce_82, + 3, 116, :_reduce_83, + 3, 116, :_reduce_84, + 3, 116, :_reduce_85, + 3, 116, :_reduce_86, + 3, 116, :_reduce_87, + 3, 116, :_reduce_88, + 3, 116, :_reduce_89, + 3, 116, :_reduce_90, + 3, 116, :_reduce_91, + 3, 116, :_reduce_92, + 3, 116, :_reduce_93, + 2, 127, :_reduce_94, + 5, 115, :_reduce_95, + 2, 115, :_reduce_96, + 1, 132, :_reduce_97, + 1, 132, :_reduce_98, + 1, 131, :_reduce_99, + 3, 131, :_reduce_100, + 1, 133, :_reduce_none, + 4, 133, :_reduce_102, + 4, 126, :_reduce_103, + 1, 113, :_reduce_104, + 1, 113, :_reduce_105, + 1, 113, :_reduce_106, + 1, 113, :_reduce_107, + 1, 113, :_reduce_108, + 1, 113, :_reduce_109, + 1, 113, :_reduce_110, + 2, 113, :_reduce_111, + 2, 113, :_reduce_112, + 2, 139, :_reduce_113, + 2, 139, :_reduce_114, + 2, 139, :_reduce_115, + 1, 139, :_reduce_116, + 1, 139, :_reduce_117, + 3, 141, :_reduce_118, + 3, 135, :_reduce_119, + 0, 143, :_reduce_120, + 1, 143, :_reduce_121, + 3, 143, :_reduce_122, + 3, 143, :_reduce_123, + 4, 143, :_reduce_124, + 3, 143, :_reduce_125, + 1, 114, :_reduce_126, + 2, 114, :_reduce_127, + 1, 114, :_reduce_128, + 3, 125, :_reduce_129, + 2, 140, :_reduce_130, + 2, 140, :_reduce_131, + 3, 145, :_reduce_132, + 4, 144, :_reduce_133, + 1, 138, :_reduce_134, + 2, 138, :_reduce_135, + 6, 137, :_reduce_136, + 7, 137, :_reduce_137, + 6, 142, :_reduce_138, + 7, 142, :_reduce_139, + 3, 134, :_reduce_140, + 0, 146, :_reduce_141, + 1, 146, :_reduce_142, + 2, 146, :_reduce_143, + 3, 146, :_reduce_144, + 3, 146, :_reduce_145, + 4, 146, :_reduce_146, + 4, 146, :_reduce_147, + 2, 146, :_reduce_148, + 1, 147, :_reduce_149, + 3, 147, :_reduce_150, + 3, 119, :_reduce_151, + 4, 119, :_reduce_152, + 5, 119, :_reduce_153, + 3, 148, :_reduce_154, + 2, 120, :_reduce_155, + 3, 136, :_reduce_156, + 3, 122, :_reduce_157, + 2, 122, :_reduce_158, + 3, 122, :_reduce_159, + 4, 123, :_reduce_160, + 4, 123, :_reduce_161, + 1, 149, :_reduce_162, + 3, 149, :_reduce_163, + 2, 150, :_reduce_164, + 2, 150, :_reduce_165, + 3, 150, :_reduce_166, + 3, 150, :_reduce_167, + 5, 124, :_reduce_168, + 7, 124, :_reduce_169, + 1, 151, :_reduce_170, + 2, 151, :_reduce_171, + 3, 152, :_reduce_172, + 4, 152, :_reduce_173, + 3, 152, :_reduce_174, + 3, 153, :_reduce_175, + 2, 154, :_reduce_176, + 1, 155, :_reduce_177, + 2, 155, :_reduce_178, + 0, 156, :_reduce_179, + 2, 156, :_reduce_180, + 1, 157, :_reduce_181, + 2, 157, :_reduce_182, + 2, 118, :_reduce_183, + 3, 118, :_reduce_184, + 3, 118, :_reduce_185 ] -racc_reduce_n = 183 +racc_reduce_n = 186 -racc_shift_n = 321 +racc_shift_n = 324 racc_token_table = { false => 0, @@ -1152,12 +1221,13 @@ racc_token_table = { "," => 99, "{" => 100, "}" => 101, - "[" => 102, - "]" => 103, - "(" => 104, - ")" => 105 } + "@" => 102, + "[" => 103, + "]" => 104, + "(" => 105, + ")" => 106 } -racc_nt_base = 106 +racc_nt_base = 107 racc_use_result_var = true @@ -1280,6 +1350,7 @@ Racc_token_to_s_table = [ "\",\"", "\"{\"", "\"}\"", + "\"@\"", "\"[\"", "\"]\"", "\"(\"", @@ -1315,6 +1386,7 @@ Racc_token_to_s_table = [ "Object", "Parenthetical", "Range", + "This", "Accessor", "Invocation", "Index", @@ -2011,84 +2083,84 @@ module_eval(<<'.,.,', 'grammar.y', 239) module_eval(<<'.,.,', 'grammar.y', 240) def _reduce_110(val, _values, result) - result = val[0] << val[1] + result = ValueNode.new(val[0]) result end .,., module_eval(<<'.,.,', 'grammar.y', 241) def _reduce_111(val, _values, result) - result = ValueNode.new(val[0], [val[1]]) + result = val[0] << val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 246) +module_eval(<<'.,.,', 'grammar.y', 242) def _reduce_112(val, _values, result) - result = AccessorNode.new(val[1]) + result = ValueNode.new(val[0], [val[1]]) result end .,., module_eval(<<'.,.,', 'grammar.y', 247) def _reduce_113(val, _values, result) - result = AccessorNode.new(val[1], :prototype) + result = AccessorNode.new(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 248) def _reduce_114(val, _values, result) - result = AccessorNode.new(val[1], :soak) + result = AccessorNode.new(val[1], :prototype) result end .,., module_eval(<<'.,.,', 'grammar.y', 249) def _reduce_115(val, _values, result) - result = val[0] + result = AccessorNode.new(val[1], :soak) result end .,., module_eval(<<'.,.,', 'grammar.y', 250) def _reduce_116(val, _values, result) + result = val[0] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 251) + def _reduce_117(val, _values, result) result = SliceNode.new(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 255) - def _reduce_117(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 256) + def _reduce_118(val, _values, result) result = IndexNode.new(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 260) - def _reduce_118(val, _values, result) - result = ObjectNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 265) +module_eval(<<'.,.,', 'grammar.y', 261) def _reduce_119(val, _values, result) - result = [] + result = ObjectNode.new(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 266) def _reduce_120(val, _values, result) - result = val + result = [] result end .,., module_eval(<<'.,.,', 'grammar.y', 267) def _reduce_121(val, _values, result) - result = val[0] << val[2] + result = val result end .,., @@ -2100,51 +2172,51 @@ module_eval(<<'.,.,', 'grammar.y', 268) end .,., -module_eval(<<'.,.,', 'grammar.y', 270) +module_eval(<<'.,.,', 'grammar.y', 269) def _reduce_123(val, _values, result) - result = val[0] << val[3] + result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'grammar.y', 271) def _reduce_124(val, _values, result) - result = val[1] + result = val[0] << val[3] result end .,., -module_eval(<<'.,.,', 'grammar.y', 276) +module_eval(<<'.,.,', 'grammar.y', 272) def _reduce_125(val, _values, result) - result = val[0] + result = val[1] result end .,., module_eval(<<'.,.,', 'grammar.y', 277) def _reduce_126(val, _values, result) - result = val[1].new_instance + result = val[0] result end .,., module_eval(<<'.,.,', 'grammar.y', 278) def _reduce_127(val, _values, result) + result = val[1].new_instance + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 279) + def _reduce_128(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 283) - def _reduce_128(val, _values, result) - result = ExtendsNode.new(val[0], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 288) +module_eval(<<'.,.,', 'grammar.y', 284) def _reduce_129(val, _values, result) - result = CallNode.new(val[0], val[1]) + result = ExtendsNode.new(val[0], val[2]) result end .,., @@ -2156,365 +2228,386 @@ module_eval(<<'.,.,', 'grammar.y', 289) end .,., -module_eval(<<'.,.,', 'grammar.y', 294) +module_eval(<<'.,.,', 'grammar.y', 290) def _reduce_131(val, _values, result) + result = CallNode.new(val[0], val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 295) + def _reduce_132(val, _values, result) result = val[1] result end .,., -module_eval(<<'.,.,', 'grammar.y', 299) - def _reduce_132(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 300) + def _reduce_133(val, _values, result) result = CallNode.new(Value.new('super'), val[2]) result end .,., module_eval(<<'.,.,', 'grammar.y', 305) - def _reduce_133(val, _values, result) - result = RangeNode.new(val[1], val[4]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 307) def _reduce_134(val, _values, result) - result = RangeNode.new(val[1], val[5], true) + result = ThisNode.new result end .,., -module_eval(<<'.,.,', 'grammar.y', 313) +module_eval(<<'.,.,', 'grammar.y', 306) def _reduce_135(val, _values, result) + result = ThisNode.new(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 312) + def _reduce_136(val, _values, result) result = RangeNode.new(val[1], val[4]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 315) - def _reduce_136(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 314) + def _reduce_137(val, _values, result) result = RangeNode.new(val[1], val[5], true) result end .,., module_eval(<<'.,.,', 'grammar.y', 320) - def _reduce_137(val, _values, result) - result = ArrayNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 325) def _reduce_138(val, _values, result) - result = [] + result = RangeNode.new(val[1], val[4]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 326) +module_eval(<<'.,.,', 'grammar.y', 322) def _reduce_139(val, _values, result) - result = val + result = RangeNode.new(val[1], val[5], true) result end .,., module_eval(<<'.,.,', 'grammar.y', 327) def _reduce_140(val, _values, result) - result = [val[1]] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 328) - def _reduce_141(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 329) - def _reduce_142(val, _values, result) - result = val[0] << val[2] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 330) - def _reduce_143(val, _values, result) - result = val[0] << val[3] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 331) - def _reduce_144(val, _values, result) - result = val[0] << val[3] + result = ArrayNode.new(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 332) + def _reduce_141(val, _values, result) + result = [] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 333) + def _reduce_142(val, _values, result) + result = val + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 334) + def _reduce_143(val, _values, result) + result = [val[1]] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 335) + def _reduce_144(val, _values, result) + result = val[0] << val[2] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 336) def _reduce_145(val, _values, result) - result = val[0] + result = val[0] << val[2] result end .,., module_eval(<<'.,.,', 'grammar.y', 337) def _reduce_146(val, _values, result) - result = val[0] + result = val[0] << val[3] result end .,., module_eval(<<'.,.,', 'grammar.y', 338) def _reduce_147(val, _values, result) - result = ([val[0]] << val[2]).flatten + result = val[0] << val[3] result end .,., -module_eval(<<'.,.,', 'grammar.y', 343) +module_eval(<<'.,.,', 'grammar.y', 339) def _reduce_148(val, _values, result) - result = TryNode.new(val[1], val[2][0], val[2][1]) + result = val[0] result end .,., module_eval(<<'.,.,', 'grammar.y', 344) def _reduce_149(val, _values, result) - result = TryNode.new(val[1], nil, nil, val[3]) + result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 346) +module_eval(<<'.,.,', 'grammar.y', 345) def _reduce_150(val, _values, result) - result = TryNode.new(val[1], val[2][0], val[2][1], val[4]) + result = ([val[0]] << val[2]).flatten + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 350) + def _reduce_151(val, _values, result) + result = TryNode.new(val[1], val[2][0], val[2][1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 351) - def _reduce_151(val, _values, result) + def _reduce_152(val, _values, result) + result = TryNode.new(val[1], nil, nil, val[3]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 353) + def _reduce_153(val, _values, result) + result = TryNode.new(val[1], val[2][0], val[2][1], val[4]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 358) + def _reduce_154(val, _values, result) result = [val[1], val[2]] result end .,., -module_eval(<<'.,.,', 'grammar.y', 356) - def _reduce_152(val, _values, result) - result = ThrowNode.new(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 361) - def _reduce_153(val, _values, result) - result = ParentheticalNode.new(val[1], val[0].line) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 366) - def _reduce_154(val, _values, result) - result = WhileNode.new(val[1], val[2]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 367) +module_eval(<<'.,.,', 'grammar.y', 363) def _reduce_155(val, _values, result) - result = WhileNode.new(val[1], nil) + result = ThrowNode.new(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 368) def _reduce_156(val, _values, result) - result = WhileNode.new(val[2], Expressions.wrap(val[0])) + result = ParentheticalNode.new(val[1], val[0].line) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 373) + def _reduce_157(val, _values, result) + result = WhileNode.new(val[1], val[2]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 374) + def _reduce_158(val, _values, result) + result = WhileNode.new(val[1], nil) result end .,., module_eval(<<'.,.,', 'grammar.y', 375) - def _reduce_157(val, _values, result) - result = ForNode.new(val[0], val[3], val[2][0], val[2][1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 376) - def _reduce_158(val, _values, result) - result = ForNode.new(val[3], val[2], val[1][0], val[1][1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 381) def _reduce_159(val, _values, result) - result = val + result = WhileNode.new(val[2], Expressions.wrap(val[0])) result end .,., module_eval(<<'.,.,', 'grammar.y', 382) def _reduce_160(val, _values, result) - result = [val[0], val[2]] + result = ForNode.new(val[0], val[3], val[2][0], val[2][1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 387) +module_eval(<<'.,.,', 'grammar.y', 383) def _reduce_161(val, _values, result) - result = {:source => val[1]} + result = ForNode.new(val[3], val[2], val[1][0], val[1][1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 388) def _reduce_162(val, _values, result) + result = val + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 389) + def _reduce_163(val, _values, result) + result = [val[0], val[2]] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 394) + def _reduce_164(val, _values, result) + result = {:source => val[1]} + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 395) + def _reduce_165(val, _values, result) result = {:source => val[1], :object => true} result end .,., -module_eval(<<'.,.,', 'grammar.y', 390) - def _reduce_163(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 397) + def _reduce_166(val, _values, result) result = val[0].merge(:filter => val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 392) - def _reduce_164(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 399) + def _reduce_167(val, _values, result) result = val[0].merge(:step => val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 398) - def _reduce_165(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 405) + def _reduce_168(val, _values, result) result = val[3].rewrite_condition(val[1]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 400) - def _reduce_166(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 407) + def _reduce_169(val, _values, result) result = val[3].rewrite_condition(val[1]).add_else(val[5]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 405) - def _reduce_167(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 412) + def _reduce_170(val, _values, result) result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 406) - def _reduce_168(val, _values, result) - result = val[0] << val[1] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 411) - def _reduce_169(val, _values, result) - result = IfNode.new(val[1], val[2], nil, {:statement => true}) - result - end -.,., - module_eval(<<'.,.,', 'grammar.y', 413) - def _reduce_170(val, _values, result) + def _reduce_171(val, _values, result) + result = val[0] << val[1] + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 418) + def _reduce_172(val, _values, result) result = IfNode.new(val[1], val[2], nil, {:statement => true}) result end .,., -module_eval(<<'.,.,', 'grammar.y', 414) - def _reduce_171(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 420) + def _reduce_173(val, _values, result) + result = IfNode.new(val[1], val[2], nil, {:statement => true}) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 421) + def _reduce_174(val, _values, result) result = val[2].add_comment(val[0]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 419) - def _reduce_172(val, _values, result) +module_eval(<<'.,.,', 'grammar.y', 426) + def _reduce_175(val, _values, result) result = IfNode.new(val[1], val[2]) result end .,., -module_eval(<<'.,.,', 'grammar.y', 424) - def _reduce_173(val, _values, result) - result = val[1].force_statement - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 429) - def _reduce_174(val, _values, result) - result = val[0] - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 430) - def _reduce_175(val, _values, result) - result = val[0].add_else(val[1]) - result - end -.,., - -module_eval(<<'.,.,', 'grammar.y', 435) +module_eval(<<'.,.,', 'grammar.y', 431) def _reduce_176(val, _values, result) - result = nil + result = val[1].force_statement result end .,., module_eval(<<'.,.,', 'grammar.y', 436) def _reduce_177(val, _values, result) - result = val[1] + result = val[0] result end .,., -module_eval(<<'.,.,', 'grammar.y', 441) +module_eval(<<'.,.,', 'grammar.y', 437) def _reduce_178(val, _values, result) - result = val[0] + result = val[0].add_else(val[1]) result end .,., module_eval(<<'.,.,', 'grammar.y', 442) def _reduce_179(val, _values, result) - result = val[0].add_else(val[1]) + result = nil result end .,., -module_eval(<<'.,.,', 'grammar.y', 447) +module_eval(<<'.,.,', 'grammar.y', 443) def _reduce_180(val, _values, result) - result = val[0].add_else(val[1]) + result = val[1] result end .,., module_eval(<<'.,.,', 'grammar.y', 448) def _reduce_181(val, _values, result) - result = IfNode.new(val[2], Expressions.wrap(val[0]), nil, {:statement => true}) + result = val[0] result end .,., module_eval(<<'.,.,', 'grammar.y', 449) def _reduce_182(val, _values, result) + result = val[0].add_else(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 454) + def _reduce_183(val, _values, result) + result = val[0].add_else(val[1]) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 455) + def _reduce_184(val, _values, result) + result = IfNode.new(val[2], Expressions.wrap(val[0]), nil, {:statement => true}) + result + end +.,., + +module_eval(<<'.,.,', 'grammar.y', 456) + def _reduce_185(val, _values, result) result = IfNode.new(val[2], Expressions.wrap(val[0]), nil, {:statement => true, :invert => true}) result end diff --git a/test/fixtures/execution/test_literals.coffee b/test/fixtures/execution/test_literals.coffee index c462b565..fd772ff3 100644 --- a/test/fixtures/execution/test_literals.coffee +++ b/test/fixtures/execution/test_literals.coffee @@ -34,4 +34,15 @@ print i is 0 money$: 'dollars' -print money$ is 'dollars' \ No newline at end of file +print money$ is 'dollars' + + +bob: { + name: 'Bob' + greet: (salutation) -> + salutation + " " + @name + hello: -> + @greet("Hello") +} + +print bob.hello() is "Hello Bob"