Kouhei Sutou
null+****@clear*****
Thu Jan 17 11:30:40 JST 2013
Kouhei Sutou 2013-01-17 11:30:40 +0900 (Thu, 17 Jan 2013) New Revision: a24c63bf3bf4edbf5fb89cd169ef0cf431ca285a https://github.com/groonga/groonga/commit/a24c63bf3bf4edbf5fb89cd169ef0cf431ca285a Log: mruby: update to 4728070 from b5830ae Added files: vendor/mruby-4728070/src/parse.c vendor/mruby-4728070/tools/mirb/mirb.rake vendor/mruby-4728070/tools/mrbc/mrbc.rake vendor/mruby-4728070/tools/mruby/mruby.rake Removed files: vendor/mruby-b5830ae/tools/mirb/mirb.rake vendor/mruby-b5830ae/tools/mrbc/mrbc.rake vendor/mruby-b5830ae/tools/mruby/mruby.rake Modified files: mruby_version vendor/mruby/sources.am Renamed files: vendor/mruby-4728070/.gitignore (from vendor/mruby-b5830ae/.gitignore) vendor/mruby-4728070/.travis.yml (from vendor/mruby-b5830ae/.travis.yml) vendor/mruby-4728070/AUTHORS (from vendor/mruby-b5830ae/AUTHORS) vendor/mruby-4728070/CONTRIBUTING.md (from vendor/mruby-b5830ae/CONTRIBUTING.md) vendor/mruby-4728070/ChangeLog (from vendor/mruby-b5830ae/ChangeLog) vendor/mruby-4728070/INSTALL (from vendor/mruby-b5830ae/INSTALL) vendor/mruby-4728070/LEGAL (from vendor/mruby-b5830ae/LEGAL) vendor/mruby-4728070/MITL (from vendor/mruby-b5830ae/MITL) vendor/mruby-4728070/NEWS (from vendor/mruby-b5830ae/NEWS) vendor/mruby-4728070/README.md (from vendor/mruby-b5830ae/README.md) vendor/mruby-4728070/Rakefile (from vendor/mruby-b5830ae/Rakefile) vendor/mruby-4728070/TODO (from vendor/mruby-b5830ae/TODO) vendor/mruby-4728070/benchmark/ao-render.rb (from vendor/mruby-b5830ae/benchmark/ao-render.rb) vendor/mruby-4728070/benchmark/bm_so_lists.rb (from vendor/mruby-b5830ae/benchmark/bm_so_lists.rb) vendor/mruby-4728070/build_config.rb (from vendor/mruby-b5830ae/build_config.rb) vendor/mruby-4728070/doc/.gitkeep (from vendor/mruby-b5830ae/doc/.gitkeep) vendor/mruby-4728070/doc/compile/README.md (from vendor/mruby-b5830ae/doc/compile/README.md) vendor/mruby-4728070/doc/mrbgems/README.md (from vendor/mruby-b5830ae/doc/mrbgems/README.md) vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/README.md (from vendor/mruby-b5830ae/doc/mrbgems/c_and_ruby_extension_example/README.md) vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/mrbgem.rake (from vendor/mruby-b5830ae/doc/mrbgems/c_and_ruby_extension_example/mrbgem.rake) vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/mrblib/example.rb (from vendor/mruby-b5830ae/doc/mrbgems/c_and_ruby_extension_example/mrblib/example.rb) vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/src/example.c (from vendor/mruby-b5830ae/doc/mrbgems/c_and_ruby_extension_example/src/example.c) vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/test/example.rb (from vendor/mruby-b5830ae/doc/mrbgems/c_and_ruby_extension_example/test/example.rb) vendor/mruby-4728070/doc/mrbgems/c_extension_example/README.md (from vendor/mruby-b5830ae/doc/mrbgems/c_extension_example/README.md) vendor/mruby-4728070/doc/mrbgems/c_extension_example/mrbgem.rake (from vendor/mruby-b5830ae/doc/mrbgems/c_extension_example/mrbgem.rake) vendor/mruby-4728070/doc/mrbgems/c_extension_example/src/example.c (from vendor/mruby-b5830ae/doc/mrbgems/c_extension_example/src/example.c) vendor/mruby-4728070/doc/mrbgems/c_extension_example/test/example.c (from vendor/mruby-b5830ae/doc/mrbgems/c_extension_example/test/example.c) vendor/mruby-4728070/doc/mrbgems/c_extension_example/test/example.rb (from vendor/mruby-b5830ae/doc/mrbgems/c_extension_example/test/example.rb) vendor/mruby-4728070/doc/mrbgems/ruby_extension_example/README.md (from vendor/mruby-b5830ae/doc/mrbgems/ruby_extension_example/README.md) vendor/mruby-4728070/doc/mrbgems/ruby_extension_example/mrbgem.rake (from vendor/mruby-b5830ae/doc/mrbgems/ruby_extension_example/mrbgem.rake) vendor/mruby-4728070/doc/mrbgems/ruby_extension_example/mrblib/example.rb (from vendor/mruby-b5830ae/doc/mrbgems/ruby_extension_example/mrblib/example.rb) vendor/mruby-4728070/doc/mrbgems/ruby_extension_example/test/example.rb (from vendor/mruby-b5830ae/doc/mrbgems/ruby_extension_example/test/example.rb) vendor/mruby-4728070/include/mrbconf.h (from vendor/mruby-b5830ae/include/mrbconf.h) vendor/mruby-4728070/include/mruby.h (from vendor/mruby-b5830ae/include/mruby.h) vendor/mruby-4728070/include/mruby/array.h (from vendor/mruby-b5830ae/include/mruby/array.h) vendor/mruby-4728070/include/mruby/cdump.h (from vendor/mruby-b5830ae/include/mruby/cdump.h) vendor/mruby-4728070/include/mruby/class.h (from vendor/mruby-b5830ae/include/mruby/class.h) vendor/mruby-4728070/include/mruby/compile.h (from vendor/mruby-b5830ae/include/mruby/compile.h) vendor/mruby-4728070/include/mruby/data.h (from vendor/mruby-b5830ae/include/mruby/data.h) vendor/mruby-4728070/include/mruby/dump.h (from vendor/mruby-b5830ae/include/mruby/dump.h) vendor/mruby-4728070/include/mruby/hash.h (from vendor/mruby-b5830ae/include/mruby/hash.h) vendor/mruby-4728070/include/mruby/irep.h (from vendor/mruby-b5830ae/include/mruby/irep.h) vendor/mruby-4728070/include/mruby/khash.h (from vendor/mruby-b5830ae/include/mruby/khash.h) vendor/mruby-4728070/include/mruby/numeric.h (from vendor/mruby-b5830ae/include/mruby/numeric.h) vendor/mruby-4728070/include/mruby/proc.h (from vendor/mruby-b5830ae/include/mruby/proc.h) vendor/mruby-4728070/include/mruby/range.h (from vendor/mruby-b5830ae/include/mruby/range.h) vendor/mruby-4728070/include/mruby/string.h (from vendor/mruby-b5830ae/include/mruby/string.h) vendor/mruby-4728070/include/mruby/struct.h (from vendor/mruby-b5830ae/include/mruby/struct.h) vendor/mruby-4728070/include/mruby/value.h (from vendor/mruby-b5830ae/include/mruby/value.h) vendor/mruby-4728070/include/mruby/variable.h (from vendor/mruby-b5830ae/include/mruby/variable.h) vendor/mruby-4728070/minirake (from vendor/mruby-b5830ae/minirake) vendor/mruby-4728070/mrblib/array.rb (from vendor/mruby-b5830ae/mrblib/array.rb) vendor/mruby-4728070/mrblib/class.rb (from vendor/mruby-b5830ae/mrblib/class.rb) vendor/mruby-4728070/mrblib/compar.rb (from vendor/mruby-b5830ae/mrblib/compar.rb) vendor/mruby-4728070/mrblib/enum.rb (from vendor/mruby-b5830ae/mrblib/enum.rb) vendor/mruby-4728070/mrblib/error.rb (from vendor/mruby-b5830ae/mrblib/error.rb) vendor/mruby-4728070/mrblib/hash.rb (from vendor/mruby-b5830ae/mrblib/hash.rb) vendor/mruby-4728070/mrblib/init_mrblib.c (from vendor/mruby-b5830ae/mrblib/init_mrblib.c) vendor/mruby-4728070/mrblib/kernel.rb (from vendor/mruby-b5830ae/mrblib/kernel.rb) vendor/mruby-4728070/mrblib/mrblib.rake (from vendor/mruby-b5830ae/mrblib/mrblib.rake) vendor/mruby-4728070/mrblib/numeric.rb (from vendor/mruby-b5830ae/mrblib/numeric.rb) vendor/mruby-4728070/mrblib/print.rb (from vendor/mruby-b5830ae/mrblib/print.rb) vendor/mruby-4728070/mrblib/range.rb (from vendor/mruby-b5830ae/mrblib/range.rb) vendor/mruby-4728070/mrblib/string.rb (from vendor/mruby-b5830ae/mrblib/string.rb) vendor/mruby-4728070/mrblib/struct.rb (from vendor/mruby-b5830ae/mrblib/struct.rb) vendor/mruby-4728070/src/array.c (from vendor/mruby-b5830ae/src/array.c) vendor/mruby-4728070/src/cdump.c (from vendor/mruby-b5830ae/src/cdump.c) vendor/mruby-4728070/src/class.c (from vendor/mruby-b5830ae/src/class.c) vendor/mruby-4728070/src/codegen.c (from vendor/mruby-b5830ae/src/codegen.c) vendor/mruby-4728070/src/compar.c (from vendor/mruby-b5830ae/src/compar.c) vendor/mruby-4728070/src/crc.c (from vendor/mruby-b5830ae/src/crc.c) vendor/mruby-4728070/src/dump.c (from vendor/mruby-b5830ae/src/dump.c) vendor/mruby-4728070/src/encoding.h (from vendor/mruby-b5830ae/src/encoding.h) vendor/mruby-4728070/src/enum.c (from vendor/mruby-b5830ae/src/enum.c) vendor/mruby-4728070/src/error.c (from vendor/mruby-b5830ae/src/error.c) vendor/mruby-4728070/src/error.h (from vendor/mruby-b5830ae/src/error.h) vendor/mruby-4728070/src/etc.c (from vendor/mruby-b5830ae/src/etc.c) vendor/mruby-4728070/src/ext/.gitkeep (from vendor/mruby-b5830ae/src/ext/.gitkeep) vendor/mruby-4728070/src/gc.c (from vendor/mruby-b5830ae/src/gc.c) vendor/mruby-4728070/src/hash.c (from vendor/mruby-b5830ae/src/hash.c) vendor/mruby-4728070/src/init.c (from vendor/mruby-b5830ae/src/init.c) vendor/mruby-4728070/src/init_ext.c (from vendor/mruby-b5830ae/src/init_ext.c) vendor/mruby-4728070/src/kernel.c (from vendor/mruby-b5830ae/src/kernel.c) vendor/mruby-4728070/src/keywords (from vendor/mruby-b5830ae/src/keywords) vendor/mruby-4728070/src/lex.def (from vendor/mruby-b5830ae/src/lex.def) vendor/mruby-4728070/src/load.c (from vendor/mruby-b5830ae/src/load.c) vendor/mruby-4728070/src/math.c (from vendor/mruby-b5830ae/src/math.c) vendor/mruby-4728070/src/mrblib.c (from vendor/mruby-b5830ae/src/mrblib.c) vendor/mruby-4728070/src/mruby_core.rake (from vendor/mruby-b5830ae/src/mruby_core.rake) vendor/mruby-4728070/src/name2ctype.h (from vendor/mruby-b5830ae/src/name2ctype.h) vendor/mruby-4728070/src/node.h (from vendor/mruby-b5830ae/src/node.h) vendor/mruby-4728070/src/numeric.c (from vendor/mruby-b5830ae/src/numeric.c) vendor/mruby-4728070/src/object.c (from vendor/mruby-b5830ae/src/object.c) vendor/mruby-4728070/src/oniguruma.h (from vendor/mruby-b5830ae/src/oniguruma.h) vendor/mruby-4728070/src/opcode.h (from vendor/mruby-b5830ae/src/opcode.h) vendor/mruby-4728070/src/parse.y (from vendor/mruby-b5830ae/src/parse.y) vendor/mruby-4728070/src/pool.c (from vendor/mruby-b5830ae/src/pool.c) vendor/mruby-4728070/src/print.c (from vendor/mruby-b5830ae/src/print.c) vendor/mruby-4728070/src/proc.c (from vendor/mruby-b5830ae/src/proc.c) vendor/mruby-4728070/src/range.c (from vendor/mruby-b5830ae/src/range.c) vendor/mruby-4728070/src/re.c (from vendor/mruby-b5830ae/src/re.c) vendor/mruby-4728070/src/re.h (from vendor/mruby-b5830ae/src/re.h) vendor/mruby-4728070/src/regcomp.c (from vendor/mruby-b5830ae/src/regcomp.c) vendor/mruby-4728070/src/regenc.c (from vendor/mruby-b5830ae/src/regenc.c) vendor/mruby-4728070/src/regenc.h (from vendor/mruby-b5830ae/src/regenc.h) vendor/mruby-4728070/src/regerror.c (from vendor/mruby-b5830ae/src/regerror.c) vendor/mruby-4728070/src/regex.h (from vendor/mruby-b5830ae/src/regex.h) vendor/mruby-4728070/src/regexec.c (from vendor/mruby-b5830ae/src/regexec.c) vendor/mruby-4728070/src/regint.h (from vendor/mruby-b5830ae/src/regint.h) vendor/mruby-4728070/src/regparse.c (from vendor/mruby-b5830ae/src/regparse.c) vendor/mruby-4728070/src/regparse.h (from vendor/mruby-b5830ae/src/regparse.h) vendor/mruby-4728070/src/sprintf.c (from vendor/mruby-b5830ae/src/sprintf.c) vendor/mruby-4728070/src/st.c (from vendor/mruby-b5830ae/src/st.c) vendor/mruby-4728070/src/st.h (from vendor/mruby-b5830ae/src/st.h) vendor/mruby-4728070/src/state.c (from vendor/mruby-b5830ae/src/state.c) vendor/mruby-4728070/src/string.c (from vendor/mruby-b5830ae/src/string.c) vendor/mruby-4728070/src/struct.c (from vendor/mruby-b5830ae/src/struct.c) vendor/mruby-4728070/src/symbol.c (from vendor/mruby-b5830ae/src/symbol.c) vendor/mruby-4728070/src/time.c (from vendor/mruby-b5830ae/src/time.c) vendor/mruby-4728070/src/variable.c (from vendor/mruby-b5830ae/src/variable.c) vendor/mruby-4728070/src/vm.c (from vendor/mruby-b5830ae/src/vm.c) vendor/mruby-4728070/tasks/libmruby.rake (from vendor/mruby-b5830ae/tasks/libmruby.rake) vendor/mruby-4728070/tasks/mrbgems.rake (from vendor/mruby-b5830ae/tasks/mrbgems.rake) vendor/mruby-4728070/tasks/mrbgems_test.rake (from vendor/mruby-b5830ae/tasks/mrbgems_test.rake) vendor/mruby-4728070/tasks/mruby_build.rake (from vendor/mruby-b5830ae/tasks/mruby_build.rake) vendor/mruby-4728070/tasks/mruby_gem_spec.rake (from vendor/mruby-b5830ae/tasks/mruby_gem_spec.rake) vendor/mruby-4728070/tasks/ruby_ext.rake (from vendor/mruby-b5830ae/tasks/ruby_ext.rake) vendor/mruby-4728070/tasks/rules.rake (from vendor/mruby-b5830ae/tasks/rules.rake) vendor/mruby-4728070/test/README.md (from vendor/mruby-b5830ae/test/README.md) vendor/mruby-4728070/test/assert.rb (from vendor/mruby-b5830ae/test/assert.rb) vendor/mruby-4728070/test/driver.c (from vendor/mruby-b5830ae/test/driver.c) vendor/mruby-4728070/test/init_mrbtest.c (from vendor/mruby-b5830ae/test/init_mrbtest.c) vendor/mruby-4728070/test/mrbtest.rake (from vendor/mruby-b5830ae/test/mrbtest.rake) vendor/mruby-4728070/test/report.rb (from vendor/mruby-b5830ae/test/report.rb) vendor/mruby-4728070/test/t/argumenterror.rb (from vendor/mruby-b5830ae/test/t/argumenterror.rb) vendor/mruby-4728070/test/t/array.rb (from vendor/mruby-b5830ae/test/t/array.rb) vendor/mruby-4728070/test/t/basicobject.rb (from vendor/mruby-b5830ae/test/t/basicobject.rb) vendor/mruby-4728070/test/t/bs_block.rb (from vendor/mruby-b5830ae/test/t/bs_block.rb) vendor/mruby-4728070/test/t/bs_literal.rb (from vendor/mruby-b5830ae/test/t/bs_literal.rb) vendor/mruby-4728070/test/t/class.rb (from vendor/mruby-b5830ae/test/t/class.rb) vendor/mruby-4728070/test/t/comparable.rb (from vendor/mruby-b5830ae/test/t/comparable.rb) vendor/mruby-4728070/test/t/enumerable.rb (from vendor/mruby-b5830ae/test/t/enumerable.rb) vendor/mruby-4728070/test/t/exception.rb (from vendor/mruby-b5830ae/test/t/exception.rb) vendor/mruby-4728070/test/t/false.rb (from vendor/mruby-b5830ae/test/t/false.rb) vendor/mruby-4728070/test/t/float.rb (from vendor/mruby-b5830ae/test/t/float.rb) vendor/mruby-4728070/test/t/gc.rb (from vendor/mruby-b5830ae/test/t/gc.rb) vendor/mruby-4728070/test/t/hash.rb (from vendor/mruby-b5830ae/test/t/hash.rb) vendor/mruby-4728070/test/t/indexerror.rb (from vendor/mruby-b5830ae/test/t/indexerror.rb) vendor/mruby-4728070/test/t/integer.rb (from vendor/mruby-b5830ae/test/t/integer.rb) vendor/mruby-4728070/test/t/kernel.rb (from vendor/mruby-b5830ae/test/t/kernel.rb) vendor/mruby-4728070/test/t/literals.rb (from vendor/mruby-b5830ae/test/t/literals.rb) vendor/mruby-4728070/test/t/localjumperror.rb (from vendor/mruby-b5830ae/test/t/localjumperror.rb) vendor/mruby-4728070/test/t/math.rb (from vendor/mruby-b5830ae/test/t/math.rb) vendor/mruby-4728070/test/t/module.rb (from vendor/mruby-b5830ae/test/t/module.rb) vendor/mruby-4728070/test/t/nameerror.rb (from vendor/mruby-b5830ae/test/t/nameerror.rb) vendor/mruby-4728070/test/t/nil.rb (from vendor/mruby-b5830ae/test/t/nil.rb) vendor/mruby-4728070/test/t/nomethoderror.rb (from vendor/mruby-b5830ae/test/t/nomethoderror.rb) vendor/mruby-4728070/test/t/numeric.rb (from vendor/mruby-b5830ae/test/t/numeric.rb) vendor/mruby-4728070/test/t/object.rb (from vendor/mruby-b5830ae/test/t/object.rb) vendor/mruby-4728070/test/t/proc.rb (from vendor/mruby-b5830ae/test/t/proc.rb) vendor/mruby-4728070/test/t/range.rb (from vendor/mruby-b5830ae/test/t/range.rb) vendor/mruby-4728070/test/t/rangeerror.rb (from vendor/mruby-b5830ae/test/t/rangeerror.rb) vendor/mruby-4728070/test/t/regexperror.rb (from vendor/mruby-b5830ae/test/t/regexperror.rb) vendor/mruby-4728070/test/t/runtimeerror.rb (from vendor/mruby-b5830ae/test/t/runtimeerror.rb) vendor/mruby-4728070/test/t/standarderror.rb (from vendor/mruby-b5830ae/test/t/standarderror.rb) vendor/mruby-4728070/test/t/string.rb (from vendor/mruby-b5830ae/test/t/string.rb) vendor/mruby-4728070/test/t/struct.rb (from vendor/mruby-b5830ae/test/t/struct.rb) vendor/mruby-4728070/test/t/symbol.rb (from vendor/mruby-b5830ae/test/t/symbol.rb) vendor/mruby-4728070/test/t/syntax.rb (from vendor/mruby-b5830ae/test/t/syntax.rb) vendor/mruby-4728070/test/t/time.rb (from vendor/mruby-b5830ae/test/t/time.rb) vendor/mruby-4728070/test/t/true.rb (from vendor/mruby-b5830ae/test/t/true.rb) vendor/mruby-4728070/test/t/typeerror.rb (from vendor/mruby-b5830ae/test/t/typeerror.rb) vendor/mruby-4728070/tools/mirb/mirb.c (from vendor/mruby-b5830ae/tools/mirb/mirb.c) vendor/mruby-4728070/tools/mrbc/mrbc.c (from vendor/mruby-b5830ae/tools/mrbc/mrbc.c) vendor/mruby-4728070/tools/mruby/mruby.c (from vendor/mruby-b5830ae/tools/mruby/mruby.c) Modified: mruby_version (+1 -1) =================================================================== --- mruby_version 2013-01-16 18:58:35 +0900 (2645244) +++ mruby_version 2013-01-17 11:30:40 +0900 (38928b1) @@ -1 +1 @@ -b5830ae +4728070 Renamed: vendor/mruby-4728070/.gitignore (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/.travis.yml (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/AUTHORS (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/CONTRIBUTING.md (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/ChangeLog (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/INSTALL (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/LEGAL (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/MITL (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/NEWS (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/README.md (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/Rakefile (+18 -17) 56% =================================================================== --- vendor/mruby-b5830ae/Rakefile 2013-01-16 18:58:35 +0900 (d31af96) +++ vendor/mruby-4728070/Rakefile 2013-01-17 11:30:40 +0900 (fd03360) @@ -8,7 +8,8 @@ load 'tasks/mruby_gem_spec.rake' ############################## # compile flags -load File.expand_path(ENV['CONFIG'] || './build_config.rb') +MRUBY_CONFIG = File.expand_path(ENV['MRUBY_CONFIG'] || './build_config.rb') +load MRUBY_CONFIG load 'tasks/rules.rake' load 'src/mruby_core.rake' @@ -27,25 +28,25 @@ load 'test/mrbtest.rake' # generic build targets, rules task :default => :all -binfiles = [exefile('bin/mruby'), exefile('bin/mirb'), exefile('bin/mrbc')] - -desc "build all targets, install (locally) in-repo" -task :all => binfiles + MRuby.targets.map { |t| [exefile("#{t.build_dir}/bin/mruby"), exefile("#{t.build_dir}/bin/mirb"), exefile("#{t.build_dir}/bin/mrbc")] }.flatten - -file exefile('bin/mruby') => exefile('build/host/bin/mruby') do |t| - FileUtils.cp t.prerequisites.first, t.name +depfiles = MRuby.targets['host'].bins.map do |bin| + install_path = exefile("bin/#{bin}") + + file install_path => exefile("build/host/bin/#{bin}") do |t| + FileUtils.cp t.prerequisites.first, t.name + end + + install_path end -file exefile('bin/mirb') => exefile('build/host/bin/mirb') do |t| - FileUtils.cp t.prerequisites.first, t.name -end +depfiles += MRuby.targets.reject {|n,t| n == 'host' }.map { |n, t| + ["#{t.build_dir}/lib/libmruby.a"] + t.bins.map { |bin| exefile("#{t.build_dir}/bin/#{bin}") } +}.flatten -file exefile('bin/mrbc') => exefile('build/host/bin/mrbc') do |t| - FileUtils.cp t.prerequisites.first, t.name -end +desc "build all targets, install (locally) in-repo" +task :all => depfiles desc "run all mruby tests" -task :test => MRuby.targets.map { |t| exefile("#{t.build_dir}/test/mrbtest") } do +task :test => MRuby.targets.values.map { |t| exefile("#{t.build_dir}/test/mrbtest") } do sh "#{filename exefile('build/host/test/mrbtest')}" if MRuby.targets.count > 1 puts "\nYou should run #{MRuby.targets.map{ |t| t.name == 'host' ? nil : "#{t.build_dir}/test/mrbtest" }.compact.join(', ')} on target device." @@ -54,8 +55,8 @@ end desc "clean all built and in-repo installed artifacts" task :clean do - MRuby.targets.each do |t| + MRuby.each_target do |t| FileUtils.rm_rf t.build_dir end - FileUtils.rm_f binfiles + FileUtils.rm_f depfiles end Renamed: vendor/mruby-4728070/TODO (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/benchmark/ao-render.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/benchmark/bm_so_lists.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/build_config.rb (+2 -0) 95% =================================================================== --- vendor/mruby-b5830ae/build_config.rb 2013-01-16 18:58:35 +0900 (93ccc1a) +++ vendor/mruby-4728070/build_config.rb 2013-01-17 11:30:40 +0900 (4e80a25) @@ -2,6 +2,7 @@ MRuby::Build.new do |conf| conf.cc = ENV['CC'] || 'gcc' conf.ld = ENV['LD'] || 'gcc' conf.ar = ENV['AR'] || 'ar' + # conf.bins = %w(mrbc mruby mirb) # conf.cxx = conf.cc # conf.objcc = conf.cc # conf.asm = conf.cc @@ -27,6 +28,7 @@ MRuby::CrossBuild.new('i386') do |conf| conf.cc = ENV['CC'] || 'gcc' conf.ld = ENV['LD'] || 'gcc' conf.ar = ENV['AR'] || 'ar' + # conf.bins = %w(mrbc mruby mirb) # conf.cxx = 'gcc' # conf.objcc = 'gcc' # conf.asm = 'gcc' Renamed: vendor/mruby-4728070/doc/.gitkeep (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/compile/README.md (+2 -1) 97% =================================================================== --- vendor/mruby-b5830ae/doc/compile/README.md 2013-01-16 18:58:35 +0900 (e68c0d6) +++ vendor/mruby-4728070/doc/compile/README.md 2013-01-17 11:30:40 +0900 (1684179) @@ -53,6 +53,7 @@ The following options can be configurated: * conf.objccflags (Object compiler flags) * conf.asmflags (Assembler flags) * conf.gem (A GEM which should be integrated - can be set several times) +* conf.bins (Build binaries) To compile just call ```./minirake``` inside of the mruby source root. To generate the test tool environment call ```./minirake test```. To clean @@ -82,7 +83,7 @@ MRuby::CrossBuild.new('i386') do |conf| end ``` -You can configurate the same options as for a normal build. +You can configurate the same options as for a normal build. You can specified your own build_config.rb with *$MRUBY_CONFIG*. ## Build process Renamed: vendor/mruby-4728070/doc/mrbgems/README.md (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/README.md (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/mrbgem.rake (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/mrblib/example.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/src/example.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_and_ruby_extension_example/test/example.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_extension_example/README.md (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_extension_example/mrbgem.rake (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_extension_example/src/example.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_extension_example/test/example.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/c_extension_example/test/example.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/ruby_extension_example/README.md (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/ruby_extension_example/mrbgem.rake (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/ruby_extension_example/mrblib/example.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/doc/mrbgems/ruby_extension_example/test/example.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mrbconf.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/array.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/cdump.h (+3 -0) 81% =================================================================== --- vendor/mruby-b5830ae/include/mruby/cdump.h 2013-01-16 18:58:35 +0900 (6afbb98) +++ vendor/mruby-4728070/include/mruby/cdump.h 2013-01-17 11:30:40 +0900 (ccb5fc0) @@ -23,6 +23,9 @@ int mrb_cdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname); /* error code */ #define MRB_CDUMP_OK 0 #define MRB_CDUMP_GENERAL_FAILURE -1 +#define MRB_CDUMP_WRITE_FAULT -2 +#define MRB_CDUMP_INVALID_IREP -6 +#define MRB_CDUMP_INVALID_ARGUMENT -7 #if defined(__cplusplus) } /* extern "C" { */ Renamed: vendor/mruby-4728070/include/mruby/class.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/compile.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/data.h (+1 -1) 95% =================================================================== --- vendor/mruby-b5830ae/include/mruby/data.h 2013-01-16 18:58:35 +0900 (b9bedb3) +++ vendor/mruby-4728070/include/mruby/data.h 2013-01-17 11:30:40 +0900 (ed49393) @@ -40,7 +40,7 @@ struct RData *mrb_data_object_alloc(mrb_state *mrb, struct RClass* klass, void * void *mrb_get_datatype(mrb_state *mrb, mrb_value, const struct mrb_data_type*); void *mrb_check_datatype(mrb_state *mrb, mrb_value, const struct mrb_data_type*); #define Data_Get_Struct(mrb,obj,type,sval) do {\ - sval = mrb_check_datatype(mrb, obj, type); \ + *(void**)&sval = mrb_check_datatype(mrb, obj, type); \ } while (0) #if defined(__cplusplus) Renamed: vendor/mruby-4728070/include/mruby/dump.h (+5 -1) 97% =================================================================== --- vendor/mruby-b5830ae/include/mruby/dump.h 2013-01-16 18:58:35 +0900 (1af24ab) +++ vendor/mruby-4728070/include/mruby/dump.h 2013-01-17 11:30:40 +0900 (650651a) @@ -28,7 +28,11 @@ int mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname); #define DUMP_TYPE_BIN 1 #define DUMP_TYPE_HEX 2 -/* dump/load error code */ +/* dump/load error code + * + * NOTE: MRB_DUMP_GENERAL_FAILURE is caused by + * unspecified issues like malloc failed. + */ #define MRB_DUMP_OK 0 #define MRB_DUMP_GENERAL_FAILURE -1 #define MRB_DUMP_WRITE_FAULT -2 Renamed: vendor/mruby-4728070/include/mruby/hash.h (+1 -0) 96% =================================================================== --- vendor/mruby-b5830ae/include/mruby/hash.h 2013-01-16 18:58:35 +0900 (bb12962) +++ vendor/mruby-4728070/include/mruby/hash.h 2013-01-17 11:30:40 +0900 (acb9de9) @@ -29,6 +29,7 @@ mrb_value mrb_hash_fetch(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_valu mrb_value mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value key); mrb_value mrb_hash(mrb_state *mrb, mrb_value obj); mrb_value mrb_hash_keys(mrb_state *mrb, mrb_value hash); +mrb_value mrb_check_hash_type(mrb_state *mrb, mrb_value hash); /* RHASH_TBL allocates st_table if not available. */ #define RHASH(obj) ((struct RHash*)((obj).value.p)) Renamed: vendor/mruby-4728070/include/mruby/irep.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/khash.h (+2 -2) 99% =================================================================== --- vendor/mruby-b5830ae/include/mruby/khash.h 2013-01-16 18:58:35 +0900 (ad03b1f) +++ vendor/mruby-4728070/include/mruby/khash.h 2013-01-17 11:30:40 +0900 (dc298ba) @@ -45,7 +45,7 @@ static const uint8_t __m[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; /* declare struct kh_xxx and kh_xxx_funcs - name: ash name + name: hash name khkey_t: key data type khval_t: value data type kh_is_map: (not implemented / not used in RiteVM) @@ -77,7 +77,7 @@ static const uint8_t __m[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; /* define kh_xxx_funcs - name: ash name + name: hash name khkey_t: key data type khval_t: value data type kh_is_map: (not implemented / not used in RiteVM) Renamed: vendor/mruby-4728070/include/mruby/numeric.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/proc.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/range.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/string.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/struct.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/value.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/include/mruby/variable.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/minirake (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/array.rb (+8 -2) 89% =================================================================== --- vendor/mruby-b5830ae/mrblib/array.rb 2013-01-16 18:58:35 +0900 (3c4e2dd) +++ vendor/mruby-4728070/mrblib/array.rb 2013-01-17 11:30:40 +0900 (56bf5ce) @@ -11,8 +11,14 @@ class Array # ISO 15.2.12.5.10 def each(&block) idx, length = -1, self.length-1 - while(idx < length) - block.call(self[idx += 1]) + while idx < length and length < self.length and length = self.length-1 + elm = self[idx += 1] + unless elm + if elm == nil and length >= self.length + break + end + end + block.call(elm) end self end Renamed: vendor/mruby-4728070/mrblib/class.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/compar.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/enum.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/error.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/hash.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/init_mrblib.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/kernel.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/mrblib.rake (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/numeric.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/print.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/range.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/string.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/mrblib/struct.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/array.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/cdump.c (+13 -11) 94% =================================================================== --- vendor/mruby-b5830ae/src/cdump.c 2013-01-16 18:58:35 +0900 (89ae0bb) +++ vendor/mruby-4728070/src/cdump.c 2013-01-17 11:30:40 +0900 (247511f) @@ -23,7 +23,7 @@ make_cdump_isec(mrb_state *mrb, int irep_no, FILE *f) mrb_irep *irep = mrb->irep[irep_no]; if (irep == NULL) - return -1; + return MRB_CDUMP_INVALID_IREP; /* dump isec struct*/ if (irep->ilen > 0) { @@ -34,7 +34,7 @@ make_cdump_isec(mrb_state *mrb, int irep_no, FILE *f) SOURCE_CODE0 (""); } - return 0; + return MRB_CDUMP_OK; } static size_t @@ -104,7 +104,7 @@ make_cdump_irep(mrb_state *mrb, int irep_no, FILE *f) size_t buf_len, str_len; if (irep == NULL) - return -1; + return MRB_CDUMP_INVALID_IREP; buf_len = MRB_CDUMP_LINE_LEN; if ((buf = (char *)mrb_malloc(mrb, buf_len)) == NULL) { @@ -167,8 +167,7 @@ make_cdump_irep(mrb_state *mrb, int irep_no, FILE *f) else SOURCE_CODE0(""); - if (buf) - mrb_free(mrb, buf); + mrb_free(mrb, buf); return MRB_CDUMP_OK; } @@ -177,9 +176,10 @@ int mrb_cdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname) { int irep_no; + int error; if (mrb == NULL || n < 0 || n >= mrb->irep_len || f == NULL || initname == NULL) - return -1; + return MRB_CDUMP_INVALID_ARGUMENT; SOURCE_CODE0("#include \"mruby.h\""); SOURCE_CODE0("#include \"mruby/irep.h\""); @@ -188,8 +188,9 @@ mrb_cdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname) SOURCE_CODE0(""); for (irep_no=n; irep_no<mrb->irep_len; irep_no++) { - if (make_cdump_isec(mrb, irep_no, f) != 0) - return -1; + error = make_cdump_isec(mrb, irep_no, f); + if (error != MRB_CDUMP_OK) + return error; } SOURCE_CODE0("void"); @@ -201,12 +202,13 @@ mrb_cdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname) SOURCE_CODE0(" mrb_irep *irep;"); SOURCE_CODE0(""); for (irep_no=n; irep_no<mrb->irep_len; irep_no++) { - if (make_cdump_irep(mrb, irep_no, f) != 0) - return -1; + error = make_cdump_irep(mrb, irep_no, f); + if (error != MRB_CDUMP_OK) + return error; } SOURCE_CODE0(" mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb));"); SOURCE_CODE0("}"); - return 0; + return MRB_CDUMP_OK; } Renamed: vendor/mruby-4728070/src/class.c (+12 -0) 99% =================================================================== --- vendor/mruby-b5830ae/src/class.c 2013-01-16 18:58:35 +0900 (ea0db2b) +++ vendor/mruby-4728070/src/class.c 2013-01-17 11:30:40 +0900 (b24dd8a) @@ -372,6 +372,7 @@ to_hash(mrb_state *mrb, mrb_value val) a: Array [mrb_value*,int] f: Float [mrb_float] i: Integer [mrb_int] + b: Binary [int] n: Symbol [mrb_sym] &: Block [mrb_value] *: rest argument [mrb_value*,int] @@ -570,6 +571,17 @@ mrb_get_args(mrb_state *mrb, const char *format, ...) } } break; + case 'b': + { + int *boolp = va_arg(ap, int*); + + if (i < argc) { + mrb_value b = *sp++; + *boolp = mrb_test(b); + i++; + } + } + break; case 'n': { mrb_sym *symp; Renamed: vendor/mruby-4728070/src/codegen.c (+57 -41) 97% =================================================================== --- vendor/mruby-b5830ae/src/codegen.c 2013-01-16 18:58:35 +0900 (c1a6232) +++ vendor/mruby-4728070/src/codegen.c 2013-01-17 11:30:40 +0900 (e728da4) @@ -429,12 +429,12 @@ new_msym(codegen_scope *s, mrb_sym sym) int i, len; len = s->irep->slen; - if (len > 255) len = 255; + if (len > 256) len = 256; for (i=0; i<len; i++) { if (s->irep->syms[i] == sym) return i; if (s->irep->syms[i] == 0) break; } - if (i > 255) { + if (i == 256) { codegen_error(s, "too many symbols (max 256)"); } s->irep->syms[i] = sym; @@ -674,35 +674,45 @@ attrsym(codegen_scope *s, mrb_sym a) } static int -gen_values(codegen_scope *s, node *t) +gen_values(codegen_scope *s, node *t, int val) { int n = 0; while (t) { if ((intptr_t)t->car->car == NODE_SPLAT) { // splat mode - pop_n(n); - genop(s, MKOP_ABC(OP_ARRAY, cursp(), cursp(), n)); - push(); - codegen(s, t->car, VAL); - pop(); pop(); - genop(s, MKOP_AB(OP_ARYCAT, cursp(), cursp()+1)); - t = t->cdr; - while (t) { - push(); - codegen(s, t->car, VAL); - pop(); pop(); - if ((intptr_t)t->car->car == NODE_SPLAT) { - genop(s, MKOP_AB(OP_ARYCAT, cursp(), cursp()+1)); - } - else { - genop(s, MKOP_AB(OP_ARYPUSH, cursp(), cursp()+1)); - } - t = t->cdr; + if (val) { + pop_n(n); + genop(s, MKOP_ABC(OP_ARRAY, cursp(), cursp(), n)); + push(); + codegen(s, t->car, VAL); + pop(); pop(); + genop(s, MKOP_AB(OP_ARYCAT, cursp(), cursp()+1)); + t = t->cdr; + while (t) { + push(); + codegen(s, t->car, VAL); + pop(); pop(); + if ((intptr_t)t->car->car == NODE_SPLAT) { + genop(s, MKOP_AB(OP_ARYCAT, cursp(), cursp()+1)); + } + else { + genop(s, MKOP_AB(OP_ARYPUSH, cursp(), cursp()+1)); + } + t = t->cdr; + } + } + else { + codegen(s, t->car->cdr, NOVAL); + t = t->cdr; + while (t) { + codegen(s, t->car, NOVAL); + t = t->cdr; + } } return -1; } // normal (no splat) mode - codegen(s, t->car, VAL); + codegen(s, t->car, val); n++; t = t->cdr; } @@ -722,7 +732,7 @@ gen_call(codegen_scope *s, node *tree, mrb_sym name, int sp, int val) idx = new_msym(s, sym); tree = tree->cdr->cdr->car; if (tree) { - n = gen_values(s, tree->car); + n = gen_values(s, tree->car, VAL); if (n < 0) { n = noop = sendv = 1; push(); @@ -1106,18 +1116,24 @@ codegen(codegen_scope *s, node *tree, int val) if (e) { if (val) pop(); pos2 = new_label(s); - genop(s, MKOP_sBx(OP_JMP, 0)); - dispatch(s, pos1); + genop(s, MKOP_sBx(OP_JMP, 0)); + dispatch(s, pos1); codegen(s, e, val); dispatch(s, pos2); } else { if (val) { pop(); + pos2 = new_label(s); + genop(s, MKOP_sBx(OP_JMP, 0)); + dispatch(s, pos1); genop(s, MKOP_A(OP_LOADNIL, cursp())); + dispatch(s, pos2); push(); } - dispatch(s, pos1); + else { + dispatch(s, pos1); + } } } break; @@ -1248,20 +1264,20 @@ codegen(codegen_scope *s, node *tree, int val) break; case NODE_DOT2: - codegen(s, tree->car, VAL); - codegen(s, tree->cdr, VAL); - pop(); pop(); + codegen(s, tree->car, val); + codegen(s, tree->cdr, val); if (val) { + pop(); pop(); genop(s, MKOP_ABC(OP_RANGE, cursp(), cursp(), 0)); push(); } break; case NODE_DOT3: - codegen(s, tree->car, VAL); - codegen(s, tree->cdr, VAL); - pop(); pop(); + codegen(s, tree->car, val); + codegen(s, tree->cdr, val); if (val) { + pop(); pop(); genop(s, MKOP_ABC(OP_RANGE, cursp(), cursp(), 1)); push(); } @@ -1274,7 +1290,7 @@ codegen(codegen_scope *s, node *tree, int val) codegen(s, tree->car, VAL); pop(); genop(s, MKOP_ABx(OP_GETMCNST, cursp(), sym)); - push(); + if (val) push(); } break; @@ -1284,7 +1300,7 @@ codegen(codegen_scope *s, node *tree, int val) genop(s, MKOP_A(OP_OCLASS, cursp())); genop(s, MKOP_ABx(OP_GETMCNST, cursp(), sym)); - push(); + if (val) push(); } break; @@ -1292,10 +1308,10 @@ codegen(codegen_scope *s, node *tree, int val) { int n; - n = gen_values(s, tree); + n = gen_values(s, tree, val); if (n >= 0) { - pop_n(n); if (val) { + pop_n(n); genop(s, MKOP_ABC(OP_ARRAY, cursp(), cursp(), n)); push(); } @@ -1311,13 +1327,13 @@ codegen(codegen_scope *s, node *tree, int val) int len = 0; while (tree) { - codegen(s, tree->car->car, VAL); - codegen(s, tree->car->cdr, VAL); + codegen(s, tree->car->car, val); + codegen(s, tree->car->cdr, val); len++; tree = tree->cdr; } - pop_n(len*2); if (val) { + pop_n(len*2); genop(s, MKOP_ABC(OP_HASH, cursp(), cursp(), len)); push(); } @@ -1457,7 +1473,7 @@ codegen(codegen_scope *s, node *tree, int val) if (tree) { node *args = tree->car; if (args) { - n = gen_values(s, args); + n = gen_values(s, args, VAL); if (n < 0) { n = noop = sendv = 1; push(); @@ -1529,7 +1545,7 @@ codegen(codegen_scope *s, node *tree, int val) genop(s, MKOP_ABx(OP_BLKPUSH, cursp(), (ainfo<<4)|(lv & 0xf))); push(); if (tree) { - n = gen_values(s, tree); + n = gen_values(s, tree, VAL); if (n < 0) { n = sendv = 1; push(); Renamed: vendor/mruby-4728070/src/compar.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/crc.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/dump.c (+59 -24) 91% =================================================================== --- vendor/mruby-b5830ae/src/dump.c 2013-01-16 18:58:35 +0900 (c32703a) +++ vendor/mruby-4728070/src/dump.c 2013-01-17 11:30:40 +0900 (884a914) @@ -351,10 +351,14 @@ write_pool_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) char *char_buf; uint16_t buf_size =0; uint16_t len =0; + int result; buf_size = MRB_DUMP_DEFAULT_STR_LEN; - if ((char_buf = (char *)mrb_malloc(mrb, buf_size)) == NULL) + char_buf = (char *)mrb_malloc(mrb, buf_size); + if (char_buf == NULL) { + result = MRB_DUMP_GENERAL_FAILURE; goto error_exit; + } buf += uint32_dump((uint32_t)irep->plen, buf, type); /* number of pool */ @@ -376,8 +380,11 @@ write_pool_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) len = str_dump_len(RSTRING_PTR(str), RSTRING_LEN(str), type); if (len > buf_size - 1) { buf_size = len + 1; - if ((char_buf = (char *)mrb_realloc(mrb, char_buf, buf_size)) == NULL) + char_buf = (char *)mrb_realloc(mrb, char_buf, buf_size); + if (char_buf == NULL) { + result = MRB_DUMP_GENERAL_FAILURE; goto error_exit; + } memset(char_buf, 0, buf_size); } str_dump(RSTRING_PTR(str), char_buf, RSTRING_LEN(str), type); @@ -389,8 +396,11 @@ write_pool_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) len = str_dump_len(RSTRING_PTR(str), RSTRING_LEN(str), type); if ( len > buf_size - 1) { buf_size = len + 1; - if ((char_buf = mrb_realloc(mrb, char_buf, buf_size)) == NULL) + char_buf = mrb_realloc(mrb, char_buf, buf_size); + if (char_buf == NULL) { + result = MRB_DUMP_GENERAL_FAILURE; goto error_exit; + } memset(char_buf, 0, buf_size); } str_dump(RSTRING_PTR(str), char_buf, RSTRING_LEN(str), type); @@ -408,10 +418,10 @@ write_pool_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) buf += len; } + result = (int)(buf - buf_top); error_exit: - if (char_buf) - mrb_free(mrb, char_buf); - return (int)(buf - buf_top); + mrb_free(mrb, char_buf); + return result; } static int @@ -423,7 +433,8 @@ write_syms_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) uint16_t buf_size =0; buf_size = MRB_DUMP_DEFAULT_STR_LEN; - if ((char_buf = (char *)mrb_malloc(mrb, buf_size)) == NULL) + char_buf = (char *)mrb_malloc(mrb, buf_size); + if (char_buf == NULL) goto error_exit; buf += uint32_dump((uint32_t)irep->slen, buf, type); /* number of symbol */ @@ -439,7 +450,8 @@ write_syms_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) nlen = str_dump_len((char*)name, len, type); if ( nlen > buf_size - 1) { buf_size = nlen + 1; - if ((char_buf = (char *)mrb_realloc(mrb, char_buf, buf_size)) == NULL) + char_buf = (char *)mrb_realloc(mrb, char_buf, buf_size); + if (char_buf == NULL) goto error_exit; } memset(char_buf, 0, buf_size); @@ -455,8 +467,7 @@ write_syms_block(mrb_state *mrb, mrb_irep *irep, char *buf, int type) } error_exit: - if (char_buf) - mrb_free(mrb, char_buf); + mrb_free(mrb, char_buf); return (int)(buf - buf_top); } @@ -466,6 +477,7 @@ calc_crc_section(mrb_state *mrb, mrb_irep *irep, uint16_t *crc, int section) char *buf, *buf_top; uint32_t buf_size; int type = DUMP_TYPE_BIN; + int result; switch (section) { case DUMP_IREP_HEADER: buf_size = get_irep_header_size(mrb, irep, type); break; @@ -475,24 +487,41 @@ calc_crc_section(mrb_state *mrb, mrb_irep *irep, uint16_t *crc, int section) default: return MRB_DUMP_GENERAL_FAILURE; } - if ((buf = (char *)mrb_calloc(mrb, 1, buf_size)) == NULL) + buf = (char *)mrb_calloc(mrb, 1, buf_size); + if (buf == NULL) return MRB_DUMP_GENERAL_FAILURE; buf_top = buf; switch (section) { - case DUMP_IREP_HEADER: buf += write_irep_header(mrb, irep, buf, type); break; - case DUMP_ISEQ_BLOCK: buf += write_iseq_block(mrb, irep, buf, type); break; - case DUMP_POOL_BLOCK: buf += write_pool_block(mrb, irep, buf, type); break; - case DUMP_SYMS_BLOCK: buf += write_syms_block(mrb, irep, buf, type); break; - default: break; + case DUMP_IREP_HEADER: + result = write_irep_header(mrb, irep, buf, type); + break; + case DUMP_ISEQ_BLOCK: + result = write_iseq_block(mrb, irep, buf, type); + break; + case DUMP_POOL_BLOCK: + result = write_pool_block(mrb, irep, buf, type); + break; + case DUMP_SYMS_BLOCK: + result = write_syms_block(mrb, irep, buf, type); + break; + default: + result = MRB_DUMP_GENERAL_FAILURE; + break; /* Already checked above. */ } + if (result < 0) { + goto error_exit; + } + buf += result; *crc = calc_crc_16_ccitt((unsigned char*)buf_top, (int)(buf - buf_top)); mrb_free(mrb, buf_top); - return MRB_DUMP_OK; + result = MRB_DUMP_OK; + error_exit: + return result; } static uint16_t @@ -599,7 +628,8 @@ write_irep_record(mrb_state *mrb, int irep_no, char* bin, uint32_t *rlen, int ty default: break; } - if ((rc = calc_crc_section(mrb, irep, &crc, section)) != 0) + rc = calc_crc_section(mrb, irep, &crc, section); + if (rc != MRB_DUMP_OK) return rc; bin += uint16_dump(crc, bin, type); /* crc */ @@ -624,10 +654,12 @@ dump_irep_record(mrb_state *mrb, int irep_no, FILE* fp, uint32_t *rlen) if (irep_record_size == 0) return MRB_DUMP_GENERAL_FAILURE; - if ((buf = (char *)mrb_calloc(mrb, 1, irep_record_size)) == NULL) + buf = (char *)mrb_calloc(mrb, 1, irep_record_size); + if (buf == NULL) return MRB_DUMP_GENERAL_FAILURE; - if ((rc = write_irep_record(mrb, irep_no, buf, rlen, DUMP_TYPE_HEX)) != MRB_DUMP_OK) { + rc = write_irep_record(mrb, irep_no, buf, rlen, DUMP_TYPE_HEX); + if (rc != MRB_DUMP_OK) { rc = MRB_DUMP_GENERAL_FAILURE; goto error_exit; } @@ -657,7 +689,8 @@ mrb_write_irep(mrb_state *mrb, int top, char *bin) bin += sizeof(rite_binary_header) + MRB_DUMP_SIZE_OF_SHORT/* crc */; for (irep_no=top; irep_no<mrb->irep_len; irep_no++) { - if ((rc = write_irep_record(mrb, irep_no, bin, &rlen, DUMP_TYPE_BIN)) != 0) + rc = write_irep_record(mrb, irep_no, bin, &rlen, DUMP_TYPE_BIN); + if (rc != MRB_DUMP_OK) return rc; bin += (rlen + DUMP_SIZE(MRB_DUMP_SIZE_OF_LONG, DUMP_TYPE_BIN)); @@ -685,7 +718,8 @@ mrb_dump_irep(mrb_state *mrb, int top, FILE* fp) return MRB_DUMP_WRITE_FAULT; for (irep_no=top; irep_no<mrb->irep_len; irep_no++) { - if ((rc = dump_irep_record(mrb, irep_no, fp, &rlen)) != 0) + rc = dump_irep_record(mrb, irep_no, fp, &rlen); + if (rc != MRB_DUMP_OK) return rc; rbds += rlen; @@ -709,14 +743,15 @@ mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname) int buf_idx = 0; if (mrb == NULL || n < 0 || n >= mrb->irep_len || f == NULL || initname == NULL) - return -1; + return MRB_DUMP_INVALID_ARGUMENT; buf_size = sizeof(rite_binary_header) + MRB_DUMP_SIZE_OF_SHORT/* crc */; for (irep_no=n; irep_no<mrb->irep_len; irep_no++) buf_size += get_irep_record_size(mrb, irep_no, DUMP_TYPE_BIN); buf_size += MRB_DUMP_SIZE_OF_LONG; /* end of file */ - if ((buf = (char *)mrb_malloc(mrb, buf_size)) == NULL) + buf = (char *)mrb_malloc(mrb, buf_size); + if (buf == NULL) return MRB_DUMP_GENERAL_FAILURE; rc = mrb_write_irep(mrb, n, buf); Renamed: vendor/mruby-4728070/src/encoding.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/enum.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/error.c (+0 -2) 98% =================================================================== --- vendor/mruby-b5830ae/src/error.c 2013-01-16 18:58:35 +0900 (430728d) +++ vendor/mruby-4728070/src/error.c 2013-01-17 11:30:40 +0900 (b9e5690) @@ -419,8 +419,6 @@ mrb_init_exception(mrb_state *mrb) mrb->eStandardError_class = mrb_define_class(mrb, "StandardError", mrb->eException_class); /* 15.2.23 */ mrb_define_class(mrb, "RuntimeError", mrb->eStandardError_class); /* 15.2.28 */ - - mrb_define_class(mrb, "RuntimeError", mrb->eStandardError_class); /* 15.2.28 */ e = mrb_define_class(mrb, "ScriptError", mrb->eException_class); /* 15.2.37 */ mrb_define_class(mrb, "SyntaxError", e); /* 15.2.38 */ } Renamed: vendor/mruby-4728070/src/error.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/etc.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/ext/.gitkeep (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/gc.c (+15 -14) 98% =================================================================== --- vendor/mruby-b5830ae/src/gc.c 2013-01-16 18:58:35 +0900 (b3e4b29) +++ vendor/mruby-4728070/src/gc.c 2013-01-17 11:30:40 +0900 (69e3664) @@ -455,8 +455,10 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj) { struct RRange *r = (struct RRange*)obj; - mrb_gc_mark_value(mrb, r->edges->beg); - mrb_gc_mark_value(mrb, r->edges->end); + if (r->edges) { + mrb_gc_mark_value(mrb, r->edges->beg); + mrb_gc_mark_value(mrb, r->edges->end); + } } break; @@ -780,7 +782,7 @@ incremental_sweep_phase(mrb_state *mrb, size_t limit) } } else { - if (!is_minor_gc(mrb)) + if (!is_generational(mrb)) paint_partial_white(mrb, &p->as.basic); /* next gc target */ dead_slot = 0; } @@ -863,11 +865,10 @@ clear_all_old(mrb_state *mrb) if (is_major_gc(mrb)) { advance_phase(mrb, GC_STATE_NONE); } - else { - mrb->is_generational_gc_mode = FALSE; - prepare_incremental_sweep(mrb); - advance_phase(mrb, GC_STATE_NONE); - } + + mrb->is_generational_gc_mode = FALSE; + prepare_incremental_sweep(mrb); + advance_phase(mrb, GC_STATE_NONE); mrb->variable_gray_list = mrb->gray_list = NULL; mrb->is_generational_gc_mode = origin_mode; } @@ -982,7 +983,7 @@ mrb_field_write_barrier(mrb_state *mrb, struct RBasic *obj, struct RBasic *value gc_assert(!is_dead(mrb, value) && !is_dead(mrb, obj)); gc_assert(is_generational(mrb) || mrb->gc_state != GC_STATE_NONE); - if (is_minor_gc(mrb) || mrb->gc_state == GC_STATE_MARK) { + if (is_generational(mrb) || mrb->gc_state == GC_STATE_MARK) { add_gray_list(mrb, value); } else { @@ -1187,13 +1188,13 @@ gc_generational_mode_get(mrb_state *mrb, mrb_value self) static mrb_value gc_generational_mode_set(mrb_state *mrb, mrb_value self) { - mrb_value enable; + int enable; - mrb_get_args(mrb, "o", &enable); - if (mrb->is_generational_gc_mode != mrb_test(enable)) - change_gen_gc_mode(mrb, mrb_test(enable)); + mrb_get_args(mrb, "b", &enable); + if (mrb->is_generational_gc_mode != enable) + change_gen_gc_mode(mrb, enable); - if (mrb_test(enable)) + if (enable) return mrb_true_value(); else return mrb_false_value(); Renamed: vendor/mruby-4728070/src/hash.c (+6 -0) 99% =================================================================== --- vendor/mruby-b5830ae/src/hash.c 2013-01-16 18:58:35 +0900 (c7a4192) +++ vendor/mruby-4728070/src/hash.c 2013-01-17 11:30:40 +0900 (26d9b78) @@ -187,6 +187,12 @@ mrb_hash_modify_check(mrb_state *mrb, mrb_value hash) //if (OBJ_FROZEN(hash)) mrb_error_frozen("hash"); } +mrb_value +mrb_check_hash_type(mrb_state *mrb, mrb_value hash) +{ + return mrb_check_convert_type(mrb, hash, MRB_TT_HASH, "Hash", "to_hash"); +} + khash_t(ht) * mrb_hash_tbl(mrb_state *mrb, mrb_value hash) { Renamed: vendor/mruby-4728070/src/init.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/init_ext.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/kernel.c (+1 -4) 99% =================================================================== --- vendor/mruby-b5830ae/src/kernel.c 2013-01-16 18:58:35 +0900 (5e8a2f5) +++ vendor/mruby-4728070/src/kernel.c 2013-01-17 11:30:40 +0900 (de4e474) @@ -728,10 +728,7 @@ class_instance_method_list(mrb_state *mrb, int argc, mrb_value *argv, struct RCl recur = TRUE; } else { - mrb_value r; - - mrb_get_args(mrb, "o", &r); - recur = mrb_test(r); + mrb_get_args(mrb, "b", &recur); } ary = mrb_ary_new(mrb); oldklass = 0; Renamed: vendor/mruby-4728070/src/keywords (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/lex.def (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/load.c (+39 -22) 93% =================================================================== --- vendor/mruby-b5830ae/src/load.c 2013-01-16 18:58:35 +0900 (2b5f580) +++ vendor/mruby-4728070/src/load.c 2013-01-17 11:30:40 +0900 (5042467) @@ -142,10 +142,14 @@ load_rite_irep_record(mrb_state *mrb, RiteFILE* rfp, unsigned char* dst, uint32_ unsigned char *pStart; char *char_buf; uint16_t buf_size =0; + int result; buf_size = MRB_DUMP_DEFAULT_STR_LEN; - if ((char_buf = (char *)mrb_malloc(mrb, buf_size)) == NULL) + char_buf = (char *)mrb_malloc(mrb, buf_size); + if (char_buf == NULL) { + result = MRB_DUMP_GENERAL_FAILURE; goto error_exit; + } pStart = dst; @@ -193,8 +197,11 @@ load_rite_irep_record(mrb_state *mrb, RiteFILE* rfp, unsigned char* dst, uint32_ if ( pdl > buf_size - 1) { buf_size = pdl + 1; - if ((char_buf = (char *)mrb_realloc(mrb, char_buf, buf_size)) == NULL) + char_buf = (char *)mrb_realloc(mrb, char_buf, buf_size); + if (char_buf == NULL) { + result = MRB_DUMP_GENERAL_FAILURE; goto error_exit; + } } memset(char_buf, '\0', buf_size); rite_fgets(rfp, (unsigned char*)char_buf, pdl, FALSE); //pool @@ -220,8 +227,11 @@ load_rite_irep_record(mrb_state *mrb, RiteFILE* rfp, unsigned char* dst, uint32_ if ( snl > buf_size - 1) { buf_size = snl + 1; - if ((char_buf = (char *)mrb_realloc(mrb, char_buf, buf_size)) == NULL) + char_buf = (char *)mrb_realloc(mrb, char_buf, buf_size); + if (char_buf == NULL) { + result = MRB_DUMP_GENERAL_FAILURE; goto error_exit; + } } memset(char_buf, '\0', buf_size); rite_fgets(rfp, (unsigned char*)char_buf, snl, FALSE); //symbol name @@ -234,11 +244,11 @@ load_rite_irep_record(mrb_state *mrb, RiteFILE* rfp, unsigned char* dst, uint32_ *len = dst - pStart; + result = MRB_DUMP_OK; error_exit: - if (char_buf) - mrb_free(mrb, char_buf); + mrb_free(mrb, char_buf); - return MRB_DUMP_OK; + return result; } int @@ -259,11 +269,13 @@ mrb_read_irep_file(mrb_state *mrb, FILE* fp) rfp = &ritefp; //Read File Header Section - if ((ret = load_rite_header(fp, &bin_header, hcrc)) != MRB_DUMP_OK) + ret = load_rite_header(fp, &bin_header, hcrc); + if (ret != MRB_DUMP_OK) return ret; len = sizeof(rite_binary_header) + bin_to_uint32(bin_header.rbds); - if ((rite_dst = (unsigned char *)mrb_malloc(mrb, len)) == NULL) + rite_dst = (unsigned char *)mrb_malloc(mrb, len); + if (rite_dst == NULL) return MRB_DUMP_GENERAL_FAILURE; dst = rite_dst; @@ -277,7 +289,8 @@ mrb_read_irep_file(mrb_state *mrb, FILE* fp) for (i=0; i<len; i++) { rite_fgets(rfp, hex8, sizeof(hex8), TRUE); //record len dst += hex_to_bin32(dst, hex8); - if ((ret = load_rite_irep_record(mrb, rfp, dst, &rlen)) != MRB_DUMP_OK) //irep info + ret = load_rite_irep_record(mrb, rfp, dst, &rlen); + if (ret != MRB_DUMP_OK) //irep info goto error_exit; dst += rlen; } @@ -292,8 +305,7 @@ mrb_read_irep_file(mrb_state *mrb, FILE* fp) ret = mrb_read_irep(mrb, (char*)rite_dst); error_exit: - if (rite_dst) - mrb_free(mrb, rite_dst); + mrb_free(mrb, rite_dst); return ret; } @@ -336,7 +348,7 @@ read_rite_irep_record(mrb_state *mrb, unsigned char *src, uint32_t* len) recordStart = src; buf = (char *)mrb_malloc(mrb, bufsize); if (buf == NULL) { - ret = MRB_DUMP_INVALID_IREP; + ret = MRB_DUMP_GENERAL_FAILURE; goto error_exit; } @@ -362,7 +374,8 @@ read_rite_irep_record(mrb_state *mrb, unsigned char *src, uint32_t* len) irep->ilen = bin_to_uint32(src); //iseq length src += MRB_DUMP_SIZE_OF_LONG; if (irep->ilen > 0) { - if ((irep->iseq = (mrb_code *)mrb_malloc(mrb, sizeof(mrb_code) * irep->ilen)) == NULL) { + irep->iseq = (mrb_code *)mrb_malloc(mrb, sizeof(mrb_code) * irep->ilen); + if (irep->iseq == NULL) { ret = MRB_DUMP_GENERAL_FAILURE; goto error_exit; } @@ -385,7 +398,7 @@ read_rite_irep_record(mrb_state *mrb, unsigned char *src, uint32_t* len) if (plen > 0) { irep->pool = (mrb_value *)mrb_malloc(mrb, sizeof(mrb_value) * plen); if (irep->pool == NULL) { - ret = MRB_DUMP_INVALID_IREP; + ret = MRB_DUMP_GENERAL_FAILURE; goto error_exit; } @@ -397,7 +410,8 @@ read_rite_irep_record(mrb_state *mrb, unsigned char *src, uint32_t* len) if (pdl > bufsize - 1) { mrb_free(mrb, buf); bufsize = pdl + 1; - if ((buf = (char *)mrb_malloc(mrb, bufsize)) == NULL) { + buf = (char *)mrb_malloc(mrb, bufsize); + if (buf == NULL) { ret = MRB_DUMP_GENERAL_FAILURE; goto error_exit; } @@ -448,8 +462,9 @@ read_rite_irep_record(mrb_state *mrb, unsigned char *src, uint32_t* len) irep->slen = bin_to_uint32(src); //syms length src += MRB_DUMP_SIZE_OF_LONG; if (irep->slen > 0) { - if ((irep->syms = (mrb_sym *)mrb_malloc(mrb, sizeof(mrb_sym) * irep->slen)) == NULL) { - ret = MRB_DUMP_INVALID_IREP; + irep->syms = (mrb_sym *)mrb_malloc(mrb, sizeof(mrb_sym) * irep->slen); + if (irep->syms == NULL) { + ret = MRB_DUMP_GENERAL_FAILURE; goto error_exit; } @@ -469,7 +484,8 @@ read_rite_irep_record(mrb_state *mrb, unsigned char *src, uint32_t* len) if (snl > bufsize - 1) { mrb_free(mrb, buf); bufsize = snl + 1; - if ((buf = (char *)mrb_malloc(mrb, bufsize)) == NULL) { + buf = (char *)mrb_malloc(mrb, bufsize); + if (buf == NULL) { ret = MRB_DUMP_GENERAL_FAILURE; goto error_exit; } @@ -489,8 +505,7 @@ read_rite_irep_record(mrb_state *mrb, unsigned char *src, uint32_t* len) *len = src - recordStart; error_exit: - if (buf) - mrb_free(mrb, buf); + mrb_free(mrb, buf); return ret; } @@ -510,7 +525,8 @@ mrb_read_irep(mrb_state *mrb, const char *bin) sirep = mrb->irep_len; //Read File Header Section - if ((nirep = read_rite_header(mrb, src, &bin_header)) < 0) + nirep = read_rite_header(mrb, src, &bin_header); + if (nirep < 0) return nirep; src += sizeof(bin_header) + MRB_DUMP_SIZE_OF_SHORT; //header + crc @@ -518,7 +534,8 @@ mrb_read_irep(mrb_state *mrb, const char *bin) //Read Binary Data Section for (n=0,i=sirep; n<nirep; n++,i++) { src += MRB_DUMP_SIZE_OF_LONG; //record ren - if ((ret = read_rite_irep_record(mrb, src, &len)) != MRB_DUMP_OK) + ret = read_rite_irep_record(mrb, src, &len); + if (ret != MRB_DUMP_OK) goto error_exit; src += len; } Renamed: vendor/mruby-4728070/src/math.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/mrblib.c (+499 -489) 57% =================================================================== --- vendor/mruby-b5830ae/src/mrblib.c 2013-01-16 18:58:35 +0900 (2c3deea) +++ vendor/mruby-4728070/src/mrblib.c 2013-01-17 11:30:40 +0900 (b97ef33) @@ -15,8 +15,8 @@ mrb_init_mrblib(mrb_state *mrb) const char mrblib_irep[] = { 0x52,0x49,0x54,0x45,0x30,0x30,0x30,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x39, 0x30,0x30,0x30,0x30,0x4d,0x41,0x54,0x5a,0x20,0x20,0x20,0x20,0x30,0x30,0x30,0x39, -0x30,0x30,0x30,0x30,0x00,0x00,0x42,0x18,0x00,0x94,0x00,0x00,0x20,0x20,0x20,0x20, -0x20,0x20,0x20,0x20,0xf5,0x11,0x00,0x00,0x03,0x5f,0x53,0x43,0x00,0x01,0x00,0x03, +0x30,0x30,0x30,0x30,0x00,0x00,0x42,0xbc,0x00,0x94,0x00,0x00,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x87,0x86,0x00,0x00,0x03,0x5f,0x53,0x43,0x00,0x01,0x00,0x03, 0x00,0x02,0x46,0x9f,0x00,0x00,0x00,0x83,0x00,0x80,0x00,0x05,0x01,0x00,0x00,0x05, 0x00,0x80,0x00,0x43,0x00,0x80,0x00,0xc5,0x00,0x80,0x00,0x05,0x01,0x00,0x00,0x91, 0x00,0x80,0x80,0x43,0x00,0x80,0x01,0xc5,0x00,0x80,0x00,0x05,0x01,0x00,0x00,0x91, @@ -160,348 +160,351 @@ const char mrblib_irep[] = { 0x01,0x01,0xc0,0x02,0x19,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00, 0x21,0x00,0x40,0x01,0x97,0x01,0x80,0x00,0x06,0x02,0x00,0x05,0x40,0x01,0x80,0x00, 0x21,0x01,0x00,0x00,0x29,0x14,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x4a,0x53,0x43,0x00, -0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x26,0x01, +0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x4e,0x53,0x43,0x00, +0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x26,0x01, 0x80,0x40,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0xc0,0x02,0x19,0x01, -0x80,0x00,0x07,0x01,0x80,0x80,0x16,0x01,0x80,0x40,0x29,0x01,0x80,0x00,0x05,0x01, -0x80,0x00,0x29,0xca,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, -0x04,0x63,0x61,0x6c,0x6c,0x38,0x03,0x00,0x00,0x00,0x3c,0x53,0x43,0x00,0x03,0x00, -0x04,0x00,0x02,0x58,0x18,0x00,0x00,0x00,0x08,0x02,0x00,0x00,0x26,0x01,0x80,0x40, -0x01,0x01,0xc0,0x02,0x19,0x01,0x80,0x00,0x07,0x01,0x80,0x80,0x16,0x01,0x80,0x40, -0x29,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x76,0x51,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3a,0x53,0x43,0x00,0x03,0x00, -0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0, -0x37,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x00,0x00, -0x29,0x96,0xb1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65, -0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x44,0x53,0x43,0x00,0x03,0x00,0x06,0x00, -0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x26,0x01,0x80,0x80,0x15,0x02, -0x00,0x40,0x15,0x02,0x80,0x40,0x01,0x02,0x00,0x40,0xa0,0x01,0x80,0x00,0xa0,0x01, -0x80,0x00,0x29,0x4f,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00, -0x04,0x70,0x75,0x73,0x68,0x00,0x04,0x63,0x61,0x6c,0x6c,0x73,0x49,0x00,0x00,0x00, -0x46,0x53,0x43,0x00,0x04,0x00,0x06,0x00,0x02,0xfd,0xca,0x00,0x00,0x00,0x09,0x00, -0x10,0x00,0xa6,0x00,0x40,0x00,0x97,0x00,0x40,0x00,0x97,0x00,0x80,0x00,0x05,0x01, -0x80,0x40,0x01,0x02,0x00,0x00,0x06,0x02,0x80,0x03,0x40,0x02,0x00,0x00,0x21,0x01, -0x80,0x00,0x29,0xb3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, -0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x46,0x53,0x43,0x00,0x03,0x00, -0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x26,0x01,0x80,0x80, -0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0xc0,0x01,0x99,0x00,0x80,0xc0, -0x16,0x01,0x80,0x40,0x29,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x93,0x03,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x63,0x61,0x6c,0x6c,0x38, -0x03,0x00,0x00,0x00,0x3e,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00, -0x00,0x00,0x07,0x00,0x00,0x00,0xa6,0x01,0x3f,0xff,0x83,0x01,0x80,0x00,0x06,0x02, -0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29,0x95, -0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63, -0x68,0x9d,0xa1,0x00,0x00,0x00,0x49,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78, -0x5a,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x26,0x01,0x80,0x40,0x15,0x02,0x00,0x40, -0x01,0x02,0x80,0x80,0x15,0x01,0x80,0x01,0x20,0x01,0x80,0x80,0x15,0x01,0x80,0x40, -0xad,0x01,0x80,0x80,0x16,0x01,0x80,0x00,0x29,0xd2,0x3a,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x01,0x2b,0xf0,0x09, -0x00,0x00,0x00,0x3a,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00, -0x00,0x06,0x00,0x00,0x00,0x26,0x01,0x00,0xc0,0x37,0x01,0x80,0x00,0x06,0x02,0x00, -0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x00,0x00,0x29,0x04,0x78,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00, -0x00,0x36,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x05, -0x02,0x00,0x00,0x26,0x01,0x80,0x80,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0, -0x01,0x80,0x00,0x29,0x7d,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, -0x00,0x04,0x70,0x75,0x73,0x68,0x23,0x92,0x00,0x00,0x00,0x3a,0x53,0x43,0x00,0x03, -0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00, -0xc0,0x37,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x00, -0x00,0x29,0x96,0xb1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04, -0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x50,0x53,0x43,0x00,0x03,0x00,0x05, -0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x26,0x01,0x80,0x40,0x15, -0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0xc0,0x02,0x19,0x01,0x80,0x80,0x15, -0x02,0x00,0x40,0x01,0x01,0x80,0x40,0xa0,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29, -0x72,0xec,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x63,0x61, +0x80,0x00,0x07,0x01,0x80,0x80,0x16,0x01,0x80,0x40,0x29,0x00,0x40,0x00,0x97,0x01, +0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x75,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x00,0x04,0x63,0x61,0x6c,0x6c,0x38,0x03,0x00,0x00,0x00,0x40,0x53, +0x43,0x00,0x03,0x00,0x04,0x00,0x02,0x58,0x18,0x00,0x00,0x00,0x09,0x02,0x00,0x00, +0x26,0x01,0x80,0x40,0x01,0x01,0xc0,0x02,0x19,0x01,0x80,0x00,0x07,0x01,0x80,0x80, +0x16,0x01,0x80,0x40,0x29,0x00,0x40,0x00,0x97,0x01,0x80,0x00,0x05,0x01,0x80,0x00, +0x29,0x49,0x5f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x3a,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00, +0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0,0x37,0x01,0x80,0x00,0x06,0x02,0x00,0x03, +0x40,0x01,0x80,0x00,0x21,0x01,0x00,0x00,0x29,0x96,0xb1,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00, +0x44,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x02, +0x00,0x00,0x26,0x01,0x80,0x80,0x15,0x02,0x00,0x40,0x15,0x02,0x80,0x40,0x01,0x02, +0x00,0x40,0xa0,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0x4f,0x59,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x70,0x75,0x73,0x68,0x00,0x04,0x63, +0x61,0x6c,0x6c,0x73,0x49,0x00,0x00,0x00,0x46,0x53,0x43,0x00,0x04,0x00,0x06,0x00, +0x02,0xfd,0xca,0x00,0x00,0x00,0x09,0x00,0x10,0x00,0xa6,0x00,0x40,0x00,0x97,0x00, +0x40,0x00,0x97,0x00,0x80,0x00,0x05,0x01,0x80,0x40,0x01,0x02,0x00,0x00,0x06,0x02, +0x80,0x03,0x40,0x02,0x00,0x00,0x21,0x01,0x80,0x00,0x29,0xb3,0x01,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00, +0x00,0x00,0x4a,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00, +0x0a,0x02,0x00,0x00,0x26,0x01,0x80,0x80,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00, +0xa0,0x01,0xc0,0x01,0x99,0x00,0x80,0xc0,0x16,0x01,0x80,0x40,0x29,0x00,0x40,0x00, +0x97,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x4d,0x95,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x63,0x61,0x6c,0x6c,0x38,0x03,0x00,0x00,0x00, +0x3e,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x07,0x00, +0x00,0x00,0xa6,0x01,0x3f,0xff,0x83,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01, +0x80,0x00,0x21,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29,0x95,0x35,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00, +0x00,0x00,0x49,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00, +0x09,0x02,0x00,0x00,0x26,0x01,0x80,0x40,0x15,0x02,0x00,0x40,0x01,0x02,0x80,0x80, +0x15,0x01,0x80,0x01,0x20,0x01,0x80,0x80,0x15,0x01,0x80,0x40,0xad,0x01,0x80,0x80, +0x16,0x01,0x80,0x00,0x29,0xd2,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x01,0x2b,0xf0,0x09,0x00,0x00,0x00,0x3a, +0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x06,0x00,0x00, +0x00,0x26,0x01,0x00,0xc0,0x37,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80, +0x00,0x21,0x01,0x00,0x00,0x29,0x04,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x36,0x53,0x43, +0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x26, +0x01,0x80,0x80,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29, +0x7d,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x70,0x75, +0x73,0x68,0x23,0x92,0x00,0x00,0x00,0x3a,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02, +0x48,0x39,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0,0x37,0x01,0x80, +0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x00,0x00,0x29,0x96,0xb1, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68, +0x9d,0xa1,0x00,0x00,0x00,0x54,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39, +0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x26,0x01,0x80,0x40,0x15,0x02,0x00,0x40,0x01, +0x01,0x80,0x00,0xa0,0x01,0xc0,0x02,0x19,0x01,0x80,0x80,0x15,0x02,0x00,0x40,0x01, +0x01,0x80,0x40,0xa0,0x00,0x40,0x00,0x97,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29, +0x32,0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x63,0x61, 0x6c,0x6c,0x00,0x04,0x70,0x75,0x73,0x68,0x3d,0x25,0x00,0x00,0x00,0x3a,0x53,0x43, 0x00,0x04,0x00,0x06,0x00,0x02,0xfd,0xca,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0xa6, 0x01,0x81,0x00,0x37,0x02,0x00,0x00,0x06,0x02,0x80,0x03,0x40,0x02,0x00,0x00,0x21, 0x01,0x80,0x00,0x29,0xd3,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, -0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x6d,0x53,0x43,0x00,0x03, -0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x26,0x01,0x80, +0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x71,0x53,0x43,0x00,0x03, +0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x26,0x01,0x80, 0x40,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0xc0,0x05,0x19,0x01,0x80, 0xc0,0x15,0x02,0x00,0x80,0x15,0x02,0x40,0x02,0x19,0x02,0x00,0x80,0x15,0x02,0x80, 0x40,0x01,0x02,0x00,0x80,0xa0,0x00,0x40,0x00,0x97,0x02,0x00,0x40,0x01,0x01,0x80, -0x40,0xa0,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x07,0x19,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x3d,0x3d,0x3d,0x00,0x04,0x70,0x75,0x73, -0x68,0x00,0x04,0x63,0x61,0x6c,0x6c,0x5e,0x62,0x00,0x00,0x00,0x3a,0x53,0x43,0x00, -0x04,0x00,0x06,0x00,0x02,0xfd,0xca,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x26,0x01, -0x80,0x00,0x08,0x02,0x00,0x00,0x06,0x02,0x80,0x03,0x40,0x02,0x00,0x00,0x21,0x01, -0x80,0x00,0x29,0xdd,0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, -0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x48,0x53,0x43,0x00,0x03,0x00, -0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x0a,0x02,0x00,0x00,0x26,0x01,0x80,0x40, -0x01,0x02,0x00,0x40,0x15,0x01,0x80,0x00,0xb2,0x01,0xc0,0x02,0x19,0x01,0x80,0x00, -0x07,0x01,0x80,0xc0,0x16,0x01,0x80,0x40,0x29,0x01,0x80,0x00,0x05,0x01,0x80,0x00, -0x29,0x85,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x3d, -0x3d,0x2a,0x4f,0x00,0x00,0x01,0x10,0x53,0x43,0x00,0x06,0x00,0x09,0x00,0x02,0x62, -0x45,0x00,0x00,0x00,0x27,0x00,0x08,0x00,0xa6,0x03,0x00,0x40,0x01,0x03,0x00,0x00, -0x20,0x03,0xc0,0x00,0x83,0x03,0x00,0x40,0xb5,0x03,0x40,0x02,0x19,0x03,0x00,0x00, -0x06,0x03,0x80,0x01,0x91,0x04,0x00,0x00,0x3d,0x03,0x00,0x81,0x20,0x03,0x00,0x02, -0x11,0x03,0x80,0x40,0x01,0x04,0x3f,0xff,0x03,0x03,0x81,0x80,0xa0,0x03,0x01,0x40, -0xa0,0x03,0x40,0x04,0x19,0x03,0x00,0x40,0x01,0x03,0xbf,0xff,0x03,0x03,0x01,0x80, -0xa0,0x01,0x81,0x80,0x01,0x03,0x00,0x03,0xc0,0x01,0x01,0x80,0x01,0x03,0x00,0x40, -0x01,0x03,0x01,0xc0,0x20,0x03,0x00,0x40,0x01,0x03,0x02,0x00,0x20,0x03,0x40,0x01, -0x99,0x02,0x00,0x00,0x07,0x02,0x80,0x00,0x05,0x00,0x40,0x02,0x97,0x02,0x00,0x00, -0x08,0x03,0x00,0x40,0x01,0x03,0xbf,0xff,0x83,0x03,0x01,0x80,0xa0,0x02,0x81,0x80, -0x01,0x03,0x00,0x00,0x06,0x03,0x80,0x05,0x40,0x03,0x02,0x40,0x21,0x02,0x80,0x00, -0x29,0xa0,0x27,0x00,0x00,0x00,0x01,0x11,0x00,0x12,0x74,0x6f,0x6f,0x20,0x6d,0x61, -0x6e,0x79,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x73,0x04,0x88,0x00,0x00, -0x00,0x0a,0x00,0x04,0x73,0x69,0x7a,0x65,0x00,0x01,0x3e,0x00,0x05,0x72,0x61,0x69, -0x73,0x65,0x00,0x0d,0x41,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x45,0x72,0x72,0x6f, -0x72,0x00,0x06,0x53,0x79,0x6d,0x62,0x6f,0x6c,0x00,0x03,0x3d,0x3d,0x3d,0x00,0x02, -0x5b,0x5d,0x00,0x03,0x70,0x6f,0x70,0x00,0x06,0x65,0x6d,0x70,0x74,0x79,0x3f,0x00, -0x04,0x65,0x61,0x63,0x68,0x6c,0x50,0x00,0x00,0x00,0x3a,0x53,0x43,0x00,0x04,0x00, -0x07,0x00,0x02,0xed,0xeb,0x00,0x00,0x00,0x06,0x04,0x00,0x00,0x26,0x02,0x00,0x40, -0x01,0x02,0x80,0xc0,0x15,0x03,0x00,0x80,0x01,0x02,0x00,0x01,0x20,0x02,0x00,0x00, -0x29,0xbe,0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x73, -0x65,0x6e,0x64,0x79,0xfc,0x00,0x00,0x00,0x5a,0x53,0x43,0x00,0x03,0x00,0x06,0x00, -0x02,0x78,0x5a,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x26,0x01,0x81,0x00,0x15,0x01, -0xc0,0x02,0x99,0x01,0x80,0x00,0x08,0x01,0x81,0x00,0x16,0x01,0x80,0x40,0x01,0x01, -0x81,0x40,0x16,0x00,0x40,0x02,0x97,0x01,0x80,0x80,0x15,0x02,0x01,0x40,0x15,0x02, -0x80,0x40,0x01,0x01,0x80,0x01,0x20,0x01,0x81,0x40,0x16,0x01,0x80,0x00,0x29,0xb0, -0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x63,0x61,0x6c, -0x6c,0x38,0x03,0x00,0x00,0x00,0x3e,0x53,0x43,0x00,0x04,0x00,0x06,0x00,0x02,0xfd, -0xca,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0x07,0x01,0x80,0x00, -0x05,0x02,0x00,0x00,0x06,0x02,0x80,0x03,0x40,0x02,0x00,0x00,0x21,0x01,0x80,0x00, -0x29,0x5e,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65, -0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0xa2,0x53,0x43,0x00,0x03,0x00,0x06,0x00, -0x02,0x78,0x5a,0x00,0x00,0x00,0x1e,0x02,0x00,0x00,0x26,0x01,0x80,0x80,0x15,0x01, -0xc0,0x02,0x19,0x00,0x80,0xc0,0x16,0x01,0x80,0x00,0x08,0x01,0x80,0x80,0x16,0x00, -0x40,0x0b,0x17,0x01,0x80,0x40,0x15,0x01,0xc0,0x05,0x99,0x01,0x80,0x40,0x15,0x02, -0x00,0x40,0x01,0x02,0x80,0xc0,0x15,0x01,0x80,0x01,0x20,0x02,0x3f,0xff,0x83,0x01, -0x80,0x40,0xb5,0x01,0xc0,0x01,0x99,0x01,0x80,0x40,0x01,0x01,0x80,0xc0,0x16,0x01, -0x80,0x00,0x05,0x00,0x40,0x04,0x97,0x01,0x80,0x40,0x01,0x02,0x00,0xc0,0x15,0x01, -0x80,0x80,0xa0,0x02,0x3f,0xff,0x83,0x01,0x80,0x40,0xb5,0x01,0xc0,0x01,0x99,0x01, -0x80,0x40,0x01,0x01,0x80,0xc0,0x16,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x8c, -0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x63,0x61,0x6c, +0x40,0xa0,0x00,0x40,0x00,0x97,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29,0xb8,0xef, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x3d,0x3d,0x3d,0x00, +0x04,0x70,0x75,0x73,0x68,0x00,0x04,0x63,0x61,0x6c,0x6c,0x5e,0x62,0x00,0x00,0x00, +0x3a,0x53,0x43,0x00,0x04,0x00,0x06,0x00,0x02,0xfd,0xca,0x00,0x00,0x00,0x06,0x02, +0x00,0x00,0x26,0x01,0x80,0x00,0x08,0x02,0x00,0x00,0x06,0x02,0x80,0x03,0x40,0x02, +0x00,0x00,0x21,0x01,0x80,0x00,0x29,0xdd,0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x4c,0x53, +0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x0b,0x02,0x00,0x00, +0x26,0x01,0x80,0x40,0x01,0x02,0x00,0x40,0x15,0x01,0x80,0x00,0xb2,0x01,0xc0,0x02, +0x19,0x01,0x80,0x00,0x07,0x01,0x80,0xc0,0x16,0x01,0x80,0x40,0x29,0x00,0x40,0x00, +0x97,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x71,0xed,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x3d,0x3d,0x2a,0x4f,0x00,0x00,0x01,0x10,0x53, +0x43,0x00,0x06,0x00,0x09,0x00,0x02,0x62,0x45,0x00,0x00,0x00,0x27,0x00,0x08,0x00, +0xa6,0x03,0x00,0x40,0x01,0x03,0x00,0x00,0x20,0x03,0xc0,0x00,0x83,0x03,0x00,0x40, +0xb5,0x03,0x40,0x02,0x19,0x03,0x00,0x00,0x06,0x03,0x80,0x01,0x91,0x04,0x00,0x00, +0x3d,0x03,0x00,0x81,0x20,0x03,0x00,0x02,0x11,0x03,0x80,0x40,0x01,0x04,0x3f,0xff, +0x03,0x03,0x81,0x80,0xa0,0x03,0x01,0x40,0xa0,0x03,0x40,0x04,0x19,0x03,0x00,0x40, +0x01,0x03,0xbf,0xff,0x03,0x03,0x01,0x80,0xa0,0x01,0x81,0x80,0x01,0x03,0x00,0x03, +0xc0,0x01,0x01,0x80,0x01,0x03,0x00,0x40,0x01,0x03,0x01,0xc0,0x20,0x03,0x00,0x40, +0x01,0x03,0x02,0x00,0x20,0x03,0x40,0x01,0x99,0x02,0x00,0x00,0x07,0x02,0x80,0x00, +0x05,0x00,0x40,0x02,0x97,0x02,0x00,0x00,0x08,0x03,0x00,0x40,0x01,0x03,0xbf,0xff, +0x83,0x03,0x01,0x80,0xa0,0x02,0x81,0x80,0x01,0x03,0x00,0x00,0x06,0x03,0x80,0x05, +0x40,0x03,0x02,0x40,0x21,0x02,0x80,0x00,0x29,0xa0,0x27,0x00,0x00,0x00,0x01,0x11, +0x00,0x12,0x74,0x6f,0x6f,0x20,0x6d,0x61,0x6e,0x79,0x20,0x61,0x72,0x67,0x75,0x6d, +0x65,0x6e,0x74,0x73,0x04,0x88,0x00,0x00,0x00,0x0a,0x00,0x04,0x73,0x69,0x7a,0x65, +0x00,0x01,0x3e,0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x0d,0x41,0x72,0x67,0x75, +0x6d,0x65,0x6e,0x74,0x45,0x72,0x72,0x6f,0x72,0x00,0x06,0x53,0x79,0x6d,0x62,0x6f, +0x6c,0x00,0x03,0x3d,0x3d,0x3d,0x00,0x02,0x5b,0x5d,0x00,0x03,0x70,0x6f,0x70,0x00, +0x06,0x65,0x6d,0x70,0x74,0x79,0x3f,0x00,0x04,0x65,0x61,0x63,0x68,0x6c,0x50,0x00, +0x00,0x00,0x3a,0x53,0x43,0x00,0x04,0x00,0x07,0x00,0x02,0xed,0xeb,0x00,0x00,0x00, +0x06,0x04,0x00,0x00,0x26,0x02,0x00,0x40,0x01,0x02,0x80,0xc0,0x15,0x03,0x00,0x80, +0x01,0x02,0x00,0x01,0x20,0x02,0x00,0x00,0x29,0xbe,0x91,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x73,0x65,0x6e,0x64,0x79,0xfc,0x00,0x00,0x00, +0x5a,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x0e,0x02, +0x00,0x00,0x26,0x01,0x81,0x00,0x15,0x01,0xc0,0x02,0x99,0x01,0x80,0x00,0x08,0x01, +0x81,0x00,0x16,0x01,0x80,0x40,0x01,0x01,0x81,0x40,0x16,0x00,0x40,0x02,0x97,0x01, +0x80,0x80,0x15,0x02,0x01,0x40,0x15,0x02,0x80,0x40,0x01,0x01,0x80,0x01,0x20,0x01, +0x81,0x40,0x16,0x01,0x80,0x00,0x29,0xb0,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x00,0x04,0x63,0x61,0x6c,0x6c,0x38,0x03,0x00,0x00,0x00,0x3e,0x53, +0x43,0x00,0x04,0x00,0x06,0x00,0x02,0xfd,0xca,0x00,0x00,0x00,0x07,0x00,0x00,0x00, +0xa6,0x01,0x00,0x00,0x07,0x01,0x80,0x00,0x05,0x02,0x00,0x00,0x06,0x02,0x80,0x03, +0x40,0x02,0x00,0x00,0x21,0x01,0x80,0x00,0x29,0x5e,0x55,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00, +0xaa,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x20,0x02, +0x00,0x00,0x26,0x01,0x80,0x80,0x15,0x01,0xc0,0x02,0x19,0x00,0x80,0xc0,0x16,0x01, +0x80,0x00,0x08,0x01,0x80,0x80,0x16,0x00,0x40,0x0c,0x17,0x01,0x80,0x40,0x15,0x01, +0xc0,0x06,0x19,0x01,0x80,0x40,0x15,0x02,0x00,0x40,0x01,0x02,0x80,0xc0,0x15,0x01, +0x80,0x01,0x20,0x02,0x3f,0xff,0x83,0x01,0x80,0x40,0xb5,0x01,0xc0,0x01,0x99,0x01, +0x80,0x40,0x01,0x01,0x80,0xc0,0x16,0x00,0x40,0x00,0x97,0x01,0x80,0x00,0x05,0x00, +0x40,0x05,0x17,0x01,0x80,0x40,0x01,0x02,0x00,0xc0,0x15,0x01,0x80,0x80,0xa0,0x02, +0x3f,0xff,0x83,0x01,0x80,0x40,0xb5,0x01,0xc0,0x01,0x99,0x01,0x80,0x40,0x01,0x01, +0x80,0xc0,0x16,0x00,0x40,0x00,0x97,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x56, +0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x63,0x61,0x6c, 0x6c,0x00,0x01,0x3e,0x00,0x03,0x3c,0x3d,0x3e,0xb1,0x12,0x00,0x00,0x00,0x3e,0x53, 0x43,0x00,0x04,0x00,0x06,0x00,0x02,0xfd,0xca,0x00,0x00,0x00,0x07,0x00,0x00,0x00, 0xa6,0x01,0x00,0x00,0x07,0x01,0x80,0x00,0x05,0x02,0x00,0x00,0x06,0x02,0x80,0x03, 0x40,0x02,0x00,0x00,0x21,0x01,0x80,0x00,0x29,0x5e,0x55,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00, -0xa2,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x1e,0x02, +0xaa,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x20,0x02, 0x00,0x00,0x26,0x01,0x80,0x80,0x15,0x01,0xc0,0x02,0x19,0x00,0x80,0xc0,0x16,0x01, -0x80,0x00,0x08,0x01,0x80,0x80,0x16,0x00,0x40,0x0b,0x17,0x01,0x80,0x40,0x15,0x01, -0xc0,0x05,0x99,0x01,0x80,0x40,0x15,0x02,0x00,0x40,0x01,0x02,0x80,0xc0,0x15,0x01, +0x80,0x00,0x08,0x01,0x80,0x80,0x16,0x00,0x40,0x0c,0x17,0x01,0x80,0x40,0x15,0x01, +0xc0,0x06,0x19,0x01,0x80,0x40,0x15,0x02,0x00,0x40,0x01,0x02,0x80,0xc0,0x15,0x01, 0x80,0x01,0x20,0x02,0x3f,0xff,0x83,0x01,0x80,0x40,0xb3,0x01,0xc0,0x01,0x99,0x01, -0x80,0x40,0x01,0x01,0x80,0xc0,0x16,0x01,0x80,0x00,0x05,0x00,0x40,0x04,0x97,0x01, -0x80,0x40,0x01,0x02,0x00,0xc0,0x15,0x01,0x80,0x80,0xa0,0x02,0x3f,0xff,0x83,0x01, -0x80,0x40,0xb3,0x01,0xc0,0x01,0x99,0x01,0x80,0x40,0x01,0x01,0x80,0xc0,0x16,0x01, -0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x87,0x69,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x03,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x01,0x3c,0x00,0x03,0x3c,0x3d, -0x3e,0x5c,0x7a,0x00,0x00,0x00,0x4a,0x53,0x43,0x00,0x04,0x00,0x06,0x00,0x02,0xfd, -0xca,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0xa6,0x01,0x01,0x00,0x37,0x01,0x81,0x00, -0x37,0x02,0x00,0x00,0x06,0x02,0x80,0x03,0x40,0x02,0x00,0x00,0x21,0x02,0x00,0x80, -0x01,0x02,0x80,0xc0,0x01,0x00,0x01,0x01,0x37,0x00,0x00,0x00,0x29,0x16,0x29,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d, -0xa1,0x00,0x00,0x00,0x5c,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00, -0x00,0x00,0x0d,0x02,0x00,0x00,0x26,0x01,0x80,0x40,0x15,0x02,0x00,0x40,0x01,0x01, -0x80,0x00,0xa0,0x01,0xc0,0x02,0x19,0x01,0x80,0x80,0x15,0x02,0x00,0x40,0x01,0x01, -0x80,0x40,0xa0,0x00,0x40,0x01,0x97,0x01,0x80,0xc0,0x15,0x02,0x00,0x40,0x01,0x01, -0x80,0x40,0xa0,0x01,0x80,0x00,0x29,0xa1,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x02,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x04,0x70,0x75,0x73,0x68,0x3d, -0x25,0x00,0x00,0x00,0x3a,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00, -0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0,0x37,0x01,0x80,0x00,0x06,0x02, -0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x00,0x00,0x29,0x96,0xb1,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00, -0x00,0x00,0x54,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00, -0x0b,0x02,0x00,0x00,0x26,0x01,0x80,0x40,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00, -0xa0,0x01,0xc0,0x01,0x19,0x01,0x80,0x00,0x05,0x00,0x40,0x01,0x97,0x01,0x80,0x80, -0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40,0xa0,0x01,0x80,0x00,0x29,0xab,0x72,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00, -0x04,0x70,0x75,0x73,0x68,0x3d,0x25,0x00,0x00,0x01,0x90,0x53,0x43,0x00,0x0c,0x00, -0x13,0x00,0x02,0x16,0xff,0x00,0x00,0x00,0x51,0x0a,0x00,0x00,0xa6,0x06,0x01,0x00, -0x01,0x06,0x81,0x40,0x01,0x06,0x00,0x00,0xb2,0x06,0x40,0x06,0x19,0x06,0x00,0xc0, -0x01,0x06,0xc0,0x00,0x03,0x06,0x00,0x00,0xb2,0x06,0x40,0x03,0x99,0x06,0x00,0x80, -0x01,0x06,0x81,0x00,0x01,0x06,0x00,0x40,0xa0,0x06,0x80,0x40,0x01,0x07,0x01,0x00, -0x01,0x07,0x83,0x00,0x01,0x06,0x80,0x81,0x20,0x05,0x80,0x00,0x29,0x06,0x00,0xc0, -0x01,0x06,0xbf,0xff,0x83,0x06,0x00,0x00,0xb2,0x06,0x40,0x02,0x99,0x06,0x00,0x40, -0x01,0x06,0x80,0x80,0x01,0x03,0x83,0x00,0x01,0x04,0x03,0x40,0x01,0x00,0x40,0x02, -0x17,0x06,0x00,0x80,0x01,0x06,0x80,0x40,0x01,0x03,0x83,0x00,0x01,0x04,0x03,0x40, -0x01,0x06,0x01,0xc0,0x01,0x06,0x81,0x00,0x01,0x06,0x00,0x40,0xa0,0x04,0x83,0x00, -0x01,0x06,0x01,0x00,0x01,0x06,0x81,0x40,0x01,0x05,0x03,0x00,0x01,0x05,0x83,0x40, -0x01,0x06,0x01,0x00,0x01,0x06,0x00,0xc0,0xad,0x06,0x81,0x40,0x01,0x07,0x00,0x03, -0x40,0x06,0x01,0x00,0xa1,0x06,0x02,0x40,0x01,0x06,0x80,0x40,0x01,0x07,0x02,0x80, -0x01,0x07,0x83,0x00,0x01,0x06,0x80,0x81,0x20,0x06,0x00,0xc0,0x01,0x06,0x00,0xc0, -0xad,0x06,0xc0,0x00,0x83,0x06,0x01,0x40,0xa0,0x01,0x83,0x00,0x01,0x06,0x02,0x80, -0x01,0x06,0x81,0x00,0x01,0x06,0x01,0x80,0xb5,0x06,0x40,0x04,0x99,0x06,0x00,0x00, -0x06,0x06,0x80,0x40,0x01,0x07,0x00,0x80,0x01,0x07,0x80,0xc0,0x01,0x08,0x01,0x00, -0x01,0x08,0x82,0x80,0x01,0x08,0x82,0x00,0xaf,0x09,0x01,0x80,0x01,0x06,0x01,0xc2, -0xa1,0x06,0x02,0x80,0x01,0x06,0x81,0x40,0x01,0x06,0x02,0x40,0xb3,0x06,0x40,0x05, -0x19,0x06,0x00,0x00,0x06,0x06,0x80,0x40,0x01,0x07,0x00,0x80,0x01,0x07,0x80,0xc0, -0x01,0x08,0x02,0x80,0x01,0x08,0x00,0xc0,0xad,0x08,0x81,0x40,0x01,0x09,0x01,0x80, -0x01,0x06,0x01,0xc2,0xa1,0x06,0x00,0x00,0x05,0x06,0x00,0x00,0x29,0x55,0x5a,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x02,0x3d,0x3d,0x00,0x02,0x5b, -0x5d,0x00,0x03,0x5b,0x5d,0x3d,0x00,0x01,0x2b,0x00,0x04,0x75,0x70,0x74,0x6f,0x00, -0x01,0x25,0x00,0x01,0x3e,0x00,0x0c,0x5f,0x5f,0x73,0x6f,0x72,0x74,0x5f,0x73,0x75, -0x62,0x5f,0x5f,0x00,0x01,0x2d,0x00,0x01,0x3c,0xdc,0x00,0x00,0x00,0x00,0xd9,0x53, -0x43,0x00,0x03,0x00,0x07,0x00,0x02,0x68,0x7b,0x00,0x00,0x00,0x28,0x02,0x00,0x00, -0x26,0x01,0x81,0x80,0x15,0x01,0xc0,0x03,0x99,0x01,0x81,0x80,0x15,0x02,0x01,0xc0, -0x15,0x02,0x80,0x40,0x01,0x02,0x00,0x40,0xa0,0x02,0x82,0x40,0x15,0x01,0x80,0x01, -0x20,0x00,0x40,0x02,0x97,0x01,0x81,0xc0,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40, -0xa0,0x02,0x02,0x40,0x15,0x01,0x80,0x80,0xa0,0x02,0x3f,0xff,0x83,0x01,0x80,0xc0, -0xb5,0x01,0xc0,0x05,0x99,0x01,0x81,0xc0,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40, -0xa0,0x02,0x02,0x00,0x15,0x02,0x82,0xc0,0x15,0x03,0x00,0xc0,0x01,0x02,0x01,0x01, -0x20,0x01,0x82,0xc0,0x15,0x01,0x81,0x40,0xaf,0x01,0x82,0xc0,0x16,0x00,0x40,0x05, -0x17,0x01,0x81,0xc0,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40,0xa0,0x02,0x02,0x00, -0x15,0x02,0x82,0x80,0x15,0x03,0x00,0xc0,0x01,0x02,0x01,0x01,0x20,0x01,0x82,0x80, -0x15,0x01,0x81,0x80,0xad,0x01,0x82,0x80,0x16,0x01,0x80,0x00,0x29,0x42,0xcd,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00, -0x02,0x5b,0x5d,0x00,0x03,0x3c,0x3d,0x3e,0x00,0x01,0x3e,0x00,0x03,0x5b,0x5d,0x3d, -0x00,0x01,0x2d,0x00,0x01,0x2b,0xdb,0x0e,0x00,0x00,0x00,0xad,0x53,0x43,0x00,0x03, -0x00,0x0a,0x00,0x02,0xb9,0xd6,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0xa6,0x01,0x00, -0xc0,0x37,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x80, -0x80,0x01,0x01,0x80,0x40,0x20,0x01,0xc0,0x00,0x99,0x00,0x40,0x07,0x17,0x01,0x80, -0x00,0x06,0x02,0x00,0x80,0x01,0x02,0x80,0x00,0x42,0x02,0x80,0x01,0x93,0x03,0x00, -0x80,0x01,0x03,0x01,0x40,0x20,0x02,0x81,0x00,0xa0,0x03,0x3f,0xff,0x83,0x03,0xbf, -0xff,0x83,0x04,0x00,0x80,0x01,0x04,0x01,0x40,0x20,0x04,0x01,0x80,0xaf,0x04,0x80, -0x40,0x01,0x01,0x80,0x82,0xa1,0x01,0x00,0x00,0x29,0xe7,0x8c,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x04,0x65,0x61,0x63,0x68,0x00,0x06,0x65,0x6d, -0x70,0x74,0x79,0x3f,0x00,0x0c,0x5f,0x5f,0x73,0x6f,0x72,0x74,0x5f,0x73,0x75,0x62, -0x5f,0x5f,0x00,0x05,0x41,0x72,0x72,0x61,0x79,0x00,0x03,0x6e,0x65,0x77,0x00,0x04, -0x73,0x69,0x7a,0x65,0x00,0x01,0x2d,0x10,0x10,0x00,0x00,0x00,0x36,0x53,0x43,0x00, -0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x26,0x01, -0x80,0x80,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0x7d, -0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x70,0x75,0x73, -0x68,0x23,0x92,0x00,0x00,0x01,0x0c,0x53,0x43,0x00,0x01,0x00,0x03,0x00,0x02,0x46, -0x9f,0x00,0x00,0x00,0x2b,0x00,0x80,0x00,0x11,0x01,0x00,0x01,0x04,0x00,0x80,0x40, -0xa0,0x00,0xc0,0x0c,0x99,0x00,0x80,0x00,0x11,0x01,0x00,0x01,0x84,0x00,0x80,0x40, -0xa0,0x00,0xc0,0x00,0x99,0x00,0x40,0x03,0x17,0x00,0x80,0x00,0x48,0x01,0x00,0x02, -0xc0,0x00,0x81,0x00,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x04,0xc0,0x00,0x80,0xc0, -0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x06,0xc0,0x00,0x81,0x40,0x46,0x00,0x80,0x00, -0x48,0x01,0x00,0x08,0xc0,0x00,0x81,0x80,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x0a, -0xc0,0x00,0x81,0xc0,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x0c,0xc0,0x00,0x81,0x00, -0x46,0x00,0x80,0x00,0x05,0x00,0x40,0x06,0x97,0x00,0x00,0x00,0x48,0x00,0x80,0x0e, -0xc0,0x00,0x01,0x40,0x46,0x00,0x00,0x00,0x48,0x00,0x80,0x10,0xc0,0x00,0x01,0x80, -0x46,0x00,0x00,0x00,0x48,0x00,0x80,0x12,0xc0,0x00,0x01,0xc0,0x46,0x00,0x00,0x00, -0x48,0x00,0x80,0x14,0xc0,0x00,0x01,0x00,0x46,0x00,0x00,0x00,0x05,0x00,0x00,0x00, -0x29,0x26,0xf2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x06,0x4b, -0x65,0x72,0x6e,0x65,0x6c,0x00,0x0b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x64,0x5f,0x74, -0x6f,0x3f,0x00,0x0c,0x5f,0x5f,0x70,0x72,0x69,0x6e,0x74,0x73,0x74,0x72,0x5f,0x5f, -0x00,0x07,0x73,0x70,0x72,0x69,0x6e,0x74,0x66,0x00,0x06,0x70,0x72,0x69,0x6e,0x74, -0x66,0x00,0x05,0x70,0x72,0x69,0x6e,0x74,0x00,0x04,0x70,0x75,0x74,0x73,0x00,0x01, -0x70,0xcd,0x54,0x00,0x00,0x00,0x70,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78, +0x80,0x40,0x01,0x01,0x80,0xc0,0x16,0x00,0x40,0x00,0x97,0x01,0x80,0x00,0x05,0x00, +0x40,0x05,0x17,0x01,0x80,0x40,0x01,0x02,0x00,0xc0,0x15,0x01,0x80,0x80,0xa0,0x02, +0x3f,0xff,0x83,0x01,0x80,0x40,0xb3,0x01,0xc0,0x01,0x99,0x01,0x80,0x40,0x01,0x01, +0x80,0xc0,0x16,0x00,0x40,0x00,0x97,0x01,0x80,0x00,0x05,0x01,0x80,0x00,0x29,0x6d, +0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x63,0x61,0x6c, +0x6c,0x00,0x01,0x3c,0x00,0x03,0x3c,0x3d,0x3e,0x5c,0x7a,0x00,0x00,0x00,0x4a,0x53, +0x43,0x00,0x04,0x00,0x06,0x00,0x02,0xfd,0xca,0x00,0x00,0x00,0x0a,0x00,0x00,0x00, +0xa6,0x01,0x01,0x00,0x37,0x01,0x81,0x00,0x37,0x02,0x00,0x00,0x06,0x02,0x80,0x03, +0x40,0x02,0x00,0x00,0x21,0x02,0x00,0x80,0x01,0x02,0x80,0xc0,0x01,0x00,0x01,0x01, +0x37,0x00,0x00,0x00,0x29,0x16,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x01,0x00,0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x5c,0x53,0x43,0x00, +0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x0d,0x02,0x00,0x00,0x26,0x01, +0x80,0x40,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0xc0,0x02,0x19,0x01, +0x80,0x80,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40,0xa0,0x00,0x40,0x01,0x97,0x01, +0x80,0xc0,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40,0xa0,0x01,0x80,0x00,0x29,0xa1, +0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x63,0x61,0x6c, +0x6c,0x00,0x04,0x70,0x75,0x73,0x68,0x3d,0x25,0x00,0x00,0x00,0x3a,0x53,0x43,0x00, +0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01, +0x00,0xc0,0x37,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01, +0x00,0x00,0x29,0x96,0xb1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, +0x04,0x65,0x61,0x63,0x68,0x9d,0xa1,0x00,0x00,0x00,0x54,0x53,0x43,0x00,0x03,0x00, +0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x26,0x01,0x80,0x40, +0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0xc0,0x01,0x19,0x01,0x80,0x00, +0x05,0x00,0x40,0x01,0x97,0x01,0x80,0x80,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40, +0xa0,0x01,0x80,0x00,0x29,0xab,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x04,0x70,0x75,0x73,0x68,0x3d,0x25,0x00, +0x00,0x01,0x94,0x53,0x43,0x00,0x0c,0x00,0x13,0x00,0x02,0x16,0xff,0x00,0x00,0x00, +0x52,0x0a,0x00,0x00,0xa6,0x06,0x01,0x00,0x01,0x06,0x81,0x40,0x01,0x06,0x00,0x00, +0xb2,0x06,0x40,0x06,0x19,0x06,0x00,0xc0,0x01,0x06,0xc0,0x00,0x03,0x06,0x00,0x00, +0xb2,0x06,0x40,0x03,0x99,0x06,0x00,0x80,0x01,0x06,0x81,0x00,0x01,0x06,0x00,0x40, +0xa0,0x06,0x80,0x40,0x01,0x07,0x01,0x00,0x01,0x07,0x83,0x00,0x01,0x06,0x80,0x81, +0x20,0x05,0x80,0x00,0x29,0x06,0x00,0xc0,0x01,0x06,0xbf,0xff,0x83,0x06,0x00,0x00, +0xb2,0x06,0x40,0x02,0x99,0x06,0x00,0x40,0x01,0x06,0x80,0x80,0x01,0x03,0x83,0x00, +0x01,0x04,0x03,0x40,0x01,0x00,0x40,0x02,0x17,0x06,0x00,0x80,0x01,0x06,0x80,0x40, +0x01,0x03,0x83,0x00,0x01,0x04,0x03,0x40,0x01,0x06,0x01,0xc0,0x01,0x06,0x81,0x00, +0x01,0x06,0x00,0x40,0xa0,0x04,0x83,0x00,0x01,0x06,0x01,0x00,0x01,0x06,0x81,0x40, +0x01,0x05,0x03,0x00,0x01,0x05,0x83,0x40,0x01,0x06,0x01,0x00,0x01,0x06,0x00,0xc0, +0xad,0x06,0x81,0x40,0x01,0x07,0x00,0x03,0x40,0x06,0x01,0x00,0xa1,0x06,0x02,0x40, +0x01,0x06,0x80,0x40,0x01,0x07,0x02,0x80,0x01,0x07,0x83,0x00,0x01,0x06,0x80,0x81, +0x20,0x06,0x00,0xc0,0x01,0x06,0x00,0xc0,0xad,0x06,0xc0,0x00,0x83,0x06,0x01,0x40, +0xa0,0x01,0x83,0x00,0x01,0x06,0x02,0x80,0x01,0x06,0x81,0x00,0x01,0x06,0x01,0x80, +0xb5,0x06,0x40,0x04,0x99,0x06,0x00,0x00,0x06,0x06,0x80,0x40,0x01,0x07,0x00,0x80, +0x01,0x07,0x80,0xc0,0x01,0x08,0x01,0x00,0x01,0x08,0x82,0x80,0x01,0x08,0x82,0x00, +0xaf,0x09,0x01,0x80,0x01,0x06,0x01,0xc2,0xa1,0x06,0x02,0x80,0x01,0x06,0x81,0x40, +0x01,0x06,0x02,0x40,0xb3,0x06,0x40,0x05,0x19,0x06,0x00,0x00,0x06,0x06,0x80,0x40, +0x01,0x07,0x00,0x80,0x01,0x07,0x80,0xc0,0x01,0x08,0x02,0x80,0x01,0x08,0x00,0xc0, +0xad,0x08,0x81,0x40,0x01,0x09,0x01,0x80,0x01,0x06,0x01,0xc2,0xa1,0x00,0x40,0x00, +0x97,0x06,0x00,0x00,0x05,0x06,0x00,0x00,0x29,0xaf,0x66,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x0a,0x00,0x02,0x3d,0x3d,0x00,0x02,0x5b,0x5d,0x00,0x03,0x5b, +0x5d,0x3d,0x00,0x01,0x2b,0x00,0x04,0x75,0x70,0x74,0x6f,0x00,0x01,0x25,0x00,0x01, +0x3e,0x00,0x0c,0x5f,0x5f,0x73,0x6f,0x72,0x74,0x5f,0x73,0x75,0x62,0x5f,0x5f,0x00, +0x01,0x2d,0x00,0x01,0x3c,0xdc,0x00,0x00,0x00,0x00,0xd9,0x53,0x43,0x00,0x03,0x00, +0x07,0x00,0x02,0x68,0x7b,0x00,0x00,0x00,0x28,0x02,0x00,0x00,0x26,0x01,0x81,0x80, +0x15,0x01,0xc0,0x03,0x99,0x01,0x81,0x80,0x15,0x02,0x01,0xc0,0x15,0x02,0x80,0x40, +0x01,0x02,0x00,0x40,0xa0,0x02,0x82,0x40,0x15,0x01,0x80,0x01,0x20,0x00,0x40,0x02, +0x97,0x01,0x81,0xc0,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40,0xa0,0x02,0x02,0x40, +0x15,0x01,0x80,0x80,0xa0,0x02,0x3f,0xff,0x83,0x01,0x80,0xc0,0xb5,0x01,0xc0,0x05, +0x99,0x01,0x81,0xc0,0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40,0xa0,0x02,0x02,0x00, +0x15,0x02,0x82,0xc0,0x15,0x03,0x00,0xc0,0x01,0x02,0x01,0x01,0x20,0x01,0x82,0xc0, +0x15,0x01,0x81,0x40,0xaf,0x01,0x82,0xc0,0x16,0x00,0x40,0x05,0x17,0x01,0x81,0xc0, +0x15,0x02,0x00,0x40,0x01,0x01,0x80,0x40,0xa0,0x02,0x02,0x00,0x15,0x02,0x82,0x80, +0x15,0x03,0x00,0xc0,0x01,0x02,0x01,0x01,0x20,0x01,0x82,0x80,0x15,0x01,0x81,0x80, +0xad,0x01,0x82,0x80,0x16,0x01,0x80,0x00,0x29,0x42,0xcd,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x07,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x02,0x5b,0x5d,0x00, +0x03,0x3c,0x3d,0x3e,0x00,0x01,0x3e,0x00,0x03,0x5b,0x5d,0x3d,0x00,0x01,0x2d,0x00, +0x01,0x2b,0xdb,0x0e,0x00,0x00,0x00,0xad,0x53,0x43,0x00,0x03,0x00,0x0a,0x00,0x02, +0xb9,0xd6,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0,0x37,0x01,0x80, +0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x80,0x80,0x01,0x01,0x80, +0x40,0x20,0x01,0xc0,0x00,0x99,0x00,0x40,0x07,0x17,0x01,0x80,0x00,0x06,0x02,0x00, +0x80,0x01,0x02,0x80,0x00,0x42,0x02,0x80,0x01,0x93,0x03,0x00,0x80,0x01,0x03,0x01, +0x40,0x20,0x02,0x81,0x00,0xa0,0x03,0x3f,0xff,0x83,0x03,0xbf,0xff,0x83,0x04,0x00, +0x80,0x01,0x04,0x01,0x40,0x20,0x04,0x01,0x80,0xaf,0x04,0x80,0x40,0x01,0x01,0x80, +0x82,0xa1,0x01,0x00,0x00,0x29,0xe7,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x07,0x00,0x04,0x65,0x61,0x63,0x68,0x00,0x06,0x65,0x6d,0x70,0x74,0x79,0x3f, +0x00,0x0c,0x5f,0x5f,0x73,0x6f,0x72,0x74,0x5f,0x73,0x75,0x62,0x5f,0x5f,0x00,0x05, +0x41,0x72,0x72,0x61,0x79,0x00,0x03,0x6e,0x65,0x77,0x00,0x04,0x73,0x69,0x7a,0x65, +0x00,0x01,0x2d,0x10,0x10,0x00,0x00,0x00,0x36,0x53,0x43,0x00,0x03,0x00,0x05,0x00, +0x02,0x48,0x39,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x26,0x01,0x80,0x80,0x15,0x02, +0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0x7d,0x28,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x70,0x75,0x73,0x68,0x23,0x92,0x00, +0x00,0x01,0x0c,0x53,0x43,0x00,0x01,0x00,0x03,0x00,0x02,0x46,0x9f,0x00,0x00,0x00, +0x2b,0x00,0x80,0x00,0x11,0x01,0x00,0x01,0x04,0x00,0x80,0x40,0xa0,0x00,0xc0,0x0c, +0x99,0x00,0x80,0x00,0x11,0x01,0x00,0x01,0x84,0x00,0x80,0x40,0xa0,0x00,0xc0,0x00, +0x99,0x00,0x40,0x03,0x17,0x00,0x80,0x00,0x48,0x01,0x00,0x02,0xc0,0x00,0x81,0x00, +0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x04,0xc0,0x00,0x80,0xc0,0x46,0x00,0x80,0x00, +0x48,0x01,0x00,0x06,0xc0,0x00,0x81,0x40,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x08, +0xc0,0x00,0x81,0x80,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x0a,0xc0,0x00,0x81,0xc0, +0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x0c,0xc0,0x00,0x81,0x00,0x46,0x00,0x80,0x00, +0x05,0x00,0x40,0x06,0x97,0x00,0x00,0x00,0x48,0x00,0x80,0x0e,0xc0,0x00,0x01,0x40, +0x46,0x00,0x00,0x00,0x48,0x00,0x80,0x10,0xc0,0x00,0x01,0x80,0x46,0x00,0x00,0x00, +0x48,0x00,0x80,0x12,0xc0,0x00,0x01,0xc0,0x46,0x00,0x00,0x00,0x48,0x00,0x80,0x14, +0xc0,0x00,0x01,0x00,0x46,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x26,0xf2,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x06,0x4b,0x65,0x72,0x6e,0x65, +0x6c,0x00,0x0b,0x72,0x65,0x73,0x70,0x6f,0x6e,0x64,0x5f,0x74,0x6f,0x3f,0x00,0x0c, +0x5f,0x5f,0x70,0x72,0x69,0x6e,0x74,0x73,0x74,0x72,0x5f,0x5f,0x00,0x07,0x73,0x70, +0x72,0x69,0x6e,0x74,0x66,0x00,0x06,0x70,0x72,0x69,0x6e,0x74,0x66,0x00,0x05,0x70, +0x72,0x69,0x6e,0x74,0x00,0x04,0x70,0x75,0x74,0x73,0x00,0x01,0x70,0xcd,0x54,0x00, +0x00,0x00,0x70,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00, +0x07,0x00,0x08,0x00,0x26,0x01,0x80,0x00,0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00, +0x3d,0x02,0x00,0x80,0xa0,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xbb,0xe9,0x00, +0x00,0x00,0x01,0x11,0x00,0x14,0x70,0x72,0x69,0x6e,0x74,0x66,0x20,0x6e,0x6f,0x74, +0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0xb3,0x00,0x00,0x00,0x03, +0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x13,0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c, +0x65,0x6d,0x65,0x6e,0x74,0x65,0x64,0x45,0x72,0x72,0x6f,0x72,0x00,0x03,0x6e,0x65, +0x77,0x64,0x27,0x00,0x00,0x00,0x71,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78, 0x5a,0x00,0x00,0x00,0x07,0x00,0x08,0x00,0x26,0x01,0x80,0x00,0x06,0x02,0x00,0x00, 0x91,0x02,0x80,0x00,0x3d,0x02,0x00,0x80,0xa0,0x01,0x80,0x00,0xa0,0x01,0x80,0x00, -0x29,0xbb,0xe9,0x00,0x00,0x00,0x01,0x11,0x00,0x14,0x70,0x72,0x69,0x6e,0x74,0x66, -0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0xb3, -0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x13,0x4e,0x6f,0x74, -0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x65,0x64,0x45,0x72,0x72,0x6f,0x72, -0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00,0x00,0x00,0x71,0x53,0x43,0x00,0x03,0x00, -0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x00,0x08,0x00,0x26,0x01,0x80,0x00, -0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00,0x3d,0x02,0x00,0x80,0xa0,0x01,0x80,0x00, -0xa0,0x01,0x80,0x00,0x29,0xbb,0xe9,0x00,0x00,0x00,0x01,0x11,0x00,0x15,0x73,0x70, -0x72,0x69,0x6e,0x74,0x66,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61, -0x62,0x6c,0x65,0xb7,0x38,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69,0x73,0x65, -0x00,0x13,0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x65,0x64, -0x45,0x72,0x72,0x6f,0x72,0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00,0x00,0x00,0x94, -0x53,0x43,0x00,0x05,0x00,0x08,0x00,0x02,0x2b,0x34,0x00,0x00,0x00,0x15,0x00,0x08, -0x00,0x26,0x01,0xbf,0xff,0x83,0x02,0x80,0x40,0x01,0x02,0x80,0x00,0x20,0x02,0x01, -0x40,0x01,0x00,0x40,0x04,0x97,0x02,0x80,0x00,0x06,0x03,0x00,0x40,0x01,0x03,0x80, -0xc0,0x01,0x03,0x00,0x80,0xa0,0x03,0x00,0xc0,0x20,0x02,0x80,0x40,0xa0,0x02,0x80, -0xc0,0x01,0x02,0x81,0x00,0xad,0x01,0x81,0x40,0x01,0x02,0x80,0xc0,0x01,0x03,0x01, -0x00,0x01,0x02,0x81,0x40,0xb3,0x02,0xbf,0xf9,0x98,0x00,0x00,0x00,0x05,0x00,0x00, -0x00,0x29,0x1d,0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x04, -0x73,0x69,0x7a,0x65,0x00,0x0c,0x5f,0x5f,0x70,0x72,0x69,0x6e,0x74,0x73,0x74,0x72, -0x5f,0x5f,0x00,0x02,0x5b,0x5d,0x00,0x04,0x74,0x6f,0x5f,0x73,0x00,0x01,0x2b,0x00, -0x01,0x3c,0x20,0x74,0x00,0x00,0x00,0xf0,0x53,0x43,0x00,0x06,0x00,0x08,0x00,0x02, -0x72,0x64,0x00,0x00,0x00,0x27,0x00,0x08,0x00,0x26,0x01,0xbf,0xff,0x83,0x03,0x00, -0x40,0x01,0x03,0x00,0x00,0x20,0x02,0x01,0x80,0x01,0x00,0x40,0x0a,0x17,0x03,0x00, -0x40,0x01,0x03,0x80,0xc0,0x01,0x03,0x00,0x40,0xa0,0x03,0x00,0x80,0x20,0x02,0x81, -0x80,0x01,0x03,0x00,0x00,0x06,0x03,0x81,0x40,0x01,0x03,0x00,0xc0,0xa0,0x03,0x01, -0x40,0x01,0x03,0xbf,0xff,0x03,0x03,0x00,0x40,0xa0,0x03,0x80,0x00,0x3d,0x03,0x01, -0x00,0xa0,0x03,0x40,0x01,0x99,0x03,0x00,0x00,0x06,0x03,0x80,0x00,0xbd,0x03,0x00, -0xc0,0xa0,0x03,0x00,0xc0,0x01,0x03,0x01,0x40,0xad,0x01,0x81,0x80,0x01,0x03,0x00, -0xc0,0x01,0x03,0x81,0x00,0x01,0x03,0x01,0x80,0xb3,0x03,0x3f,0xf4,0x18,0x03,0x01, -0x00,0x01,0x03,0xbf,0xff,0x83,0x03,0x01,0xc0,0xb2,0x03,0x40,0x01,0x99,0x03,0x00, -0x00,0x06,0x03,0x80,0x01,0x3d,0x03,0x00,0xc0,0xa0,0x00,0x00,0x00,0x05,0x00,0x00, -0x00,0x29,0x5c,0x1b,0x00,0x00,0x00,0x03,0x11,0x00,0x01,0x0a,0x11,0x00,0x01,0x0a, -0x11,0x00,0x01,0x0a,0xe8,0xad,0x00,0x00,0x00,0x08,0x00,0x04,0x73,0x69,0x7a,0x65, -0x00,0x02,0x5b,0x5d,0x00,0x04,0x74,0x6f,0x5f,0x73,0x00,0x0c,0x5f,0x5f,0x70,0x72, -0x69,0x6e,0x74,0x73,0x74,0x72,0x5f,0x5f,0x00,0x02,0x21,0x3d,0x00,0x01,0x2b,0x00, -0x01,0x3c,0x00,0x02,0x3d,0x3d,0x26,0xfc,0x00,0x00,0x00,0xaf,0x53,0x43,0x00,0x05, -0x00,0x08,0x00,0x02,0x2b,0x34,0x00,0x00,0x00,0x1a,0x00,0x08,0x00,0x26,0x01,0xbf, +0x29,0xbb,0xe9,0x00,0x00,0x00,0x01,0x11,0x00,0x15,0x73,0x70,0x72,0x69,0x6e,0x74, +0x66,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0xb7, +0x38,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x13,0x4e,0x6f, +0x74,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x65,0x64,0x45,0x72,0x72,0x6f, +0x72,0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00,0x00,0x00,0x94,0x53,0x43,0x00,0x05, +0x00,0x08,0x00,0x02,0x2b,0x34,0x00,0x00,0x00,0x15,0x00,0x08,0x00,0x26,0x01,0xbf, 0xff,0x83,0x02,0x80,0x40,0x01,0x02,0x80,0x00,0x20,0x02,0x01,0x40,0x01,0x00,0x40, -0x06,0x17,0x02,0x80,0x00,0x06,0x03,0x00,0x40,0x01,0x03,0x80,0xc0,0x01,0x03,0x00, -0x80,0xa0,0x03,0x00,0xc0,0x20,0x02,0x80,0x40,0xa0,0x02,0x80,0x00,0x06,0x03,0x00, -0x00,0x3d,0x02,0x80,0x40,0xa0,0x02,0x80,0xc0,0x01,0x02,0x81,0x00,0xad,0x01,0x81, -0x40,0x01,0x02,0x80,0xc0,0x01,0x03,0x01,0x00,0x01,0x02,0x81,0x40,0xb3,0x02,0xbf, -0xf8,0x18,0x02,0x80,0x40,0x01,0x03,0x3f,0xff,0x83,0x02,0x80,0x80,0xa0,0x02,0x80, -0x00,0x29,0x00,0x1a,0x00,0x00,0x00,0x01,0x11,0x00,0x01,0x0a,0x06,0x78,0x00,0x00, -0x00,0x06,0x00,0x04,0x73,0x69,0x7a,0x65,0x00,0x0c,0x5f,0x5f,0x70,0x72,0x69,0x6e, -0x74,0x73,0x74,0x72,0x5f,0x5f,0x00,0x02,0x5b,0x5d,0x00,0x07,0x69,0x6e,0x73,0x70, -0x65,0x63,0x74,0x00,0x01,0x2b,0x00,0x01,0x3c,0x79,0x53,0x00,0x00,0x00,0x5b,0x53, -0x43,0x00,0x03,0x00,0x07,0x00,0x02,0x68,0x7b,0x00,0x00,0x00,0x0a,0x00,0x08,0x00, -0x26,0x01,0x80,0x00,0x06,0x02,0x00,0x00,0x06,0x02,0x81,0x40,0x37,0x03,0x00,0x40, -0x01,0x02,0x81,0x80,0x38,0x02,0x00,0x7f,0xa0,0x01,0x80,0x00,0xa0,0x00,0x00,0x00, -0x05,0x00,0x00,0x00,0x29,0xc0,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x02,0x00,0x0c,0x5f,0x5f,0x70,0x72,0x69,0x6e,0x74,0x73,0x74,0x72,0x5f,0x5f,0x00, -0x07,0x73,0x70,0x72,0x69,0x6e,0x74,0x66,0x77,0xa6,0x00,0x00,0x00,0x6f,0x53,0x43, +0x04,0x97,0x02,0x80,0x00,0x06,0x03,0x00,0x40,0x01,0x03,0x80,0xc0,0x01,0x03,0x00, +0x80,0xa0,0x03,0x00,0xc0,0x20,0x02,0x80,0x40,0xa0,0x02,0x80,0xc0,0x01,0x02,0x81, +0x00,0xad,0x01,0x81,0x40,0x01,0x02,0x80,0xc0,0x01,0x03,0x01,0x00,0x01,0x02,0x81, +0x40,0xb3,0x02,0xbf,0xf9,0x98,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x1d,0x91, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x04,0x73,0x69,0x7a,0x65, +0x00,0x0c,0x5f,0x5f,0x70,0x72,0x69,0x6e,0x74,0x73,0x74,0x72,0x5f,0x5f,0x00,0x02, +0x5b,0x5d,0x00,0x04,0x74,0x6f,0x5f,0x73,0x00,0x01,0x2b,0x00,0x01,0x3c,0x20,0x74, +0x00,0x00,0x00,0xf0,0x53,0x43,0x00,0x06,0x00,0x08,0x00,0x02,0x72,0x64,0x00,0x00, +0x00,0x27,0x00,0x08,0x00,0x26,0x01,0xbf,0xff,0x83,0x03,0x00,0x40,0x01,0x03,0x00, +0x00,0x20,0x02,0x01,0x80,0x01,0x00,0x40,0x0a,0x17,0x03,0x00,0x40,0x01,0x03,0x80, +0xc0,0x01,0x03,0x00,0x40,0xa0,0x03,0x00,0x80,0x20,0x02,0x81,0x80,0x01,0x03,0x00, +0x00,0x06,0x03,0x81,0x40,0x01,0x03,0x00,0xc0,0xa0,0x03,0x01,0x40,0x01,0x03,0xbf, +0xff,0x03,0x03,0x00,0x40,0xa0,0x03,0x80,0x00,0x3d,0x03,0x01,0x00,0xa0,0x03,0x40, +0x01,0x99,0x03,0x00,0x00,0x06,0x03,0x80,0x00,0xbd,0x03,0x00,0xc0,0xa0,0x03,0x00, +0xc0,0x01,0x03,0x01,0x40,0xad,0x01,0x81,0x80,0x01,0x03,0x00,0xc0,0x01,0x03,0x81, +0x00,0x01,0x03,0x01,0x80,0xb3,0x03,0x3f,0xf4,0x18,0x03,0x01,0x00,0x01,0x03,0xbf, +0xff,0x83,0x03,0x01,0xc0,0xb2,0x03,0x40,0x01,0x99,0x03,0x00,0x00,0x06,0x03,0x80, +0x01,0x3d,0x03,0x00,0xc0,0xa0,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x5c,0x1b, +0x00,0x00,0x00,0x03,0x11,0x00,0x01,0x0a,0x11,0x00,0x01,0x0a,0x11,0x00,0x01,0x0a, +0xe8,0xad,0x00,0x00,0x00,0x08,0x00,0x04,0x73,0x69,0x7a,0x65,0x00,0x02,0x5b,0x5d, +0x00,0x04,0x74,0x6f,0x5f,0x73,0x00,0x0c,0x5f,0x5f,0x70,0x72,0x69,0x6e,0x74,0x73, +0x74,0x72,0x5f,0x5f,0x00,0x02,0x21,0x3d,0x00,0x01,0x2b,0x00,0x01,0x3c,0x00,0x02, +0x3d,0x3d,0x26,0xfc,0x00,0x00,0x00,0xaf,0x53,0x43,0x00,0x05,0x00,0x08,0x00,0x02, +0x2b,0x34,0x00,0x00,0x00,0x1a,0x00,0x08,0x00,0x26,0x01,0xbf,0xff,0x83,0x02,0x80, +0x40,0x01,0x02,0x80,0x00,0x20,0x02,0x01,0x40,0x01,0x00,0x40,0x06,0x17,0x02,0x80, +0x00,0x06,0x03,0x00,0x40,0x01,0x03,0x80,0xc0,0x01,0x03,0x00,0x80,0xa0,0x03,0x00, +0xc0,0x20,0x02,0x80,0x40,0xa0,0x02,0x80,0x00,0x06,0x03,0x00,0x00,0x3d,0x02,0x80, +0x40,0xa0,0x02,0x80,0xc0,0x01,0x02,0x81,0x00,0xad,0x01,0x81,0x40,0x01,0x02,0x80, +0xc0,0x01,0x03,0x01,0x00,0x01,0x02,0x81,0x40,0xb3,0x02,0xbf,0xf8,0x18,0x02,0x80, +0x40,0x01,0x03,0x3f,0xff,0x83,0x02,0x80,0x80,0xa0,0x02,0x80,0x00,0x29,0x00,0x1a, +0x00,0x00,0x00,0x01,0x11,0x00,0x01,0x0a,0x06,0x78,0x00,0x00,0x00,0x06,0x00,0x04, +0x73,0x69,0x7a,0x65,0x00,0x0c,0x5f,0x5f,0x70,0x72,0x69,0x6e,0x74,0x73,0x74,0x72, +0x5f,0x5f,0x00,0x02,0x5b,0x5d,0x00,0x07,0x69,0x6e,0x73,0x70,0x65,0x63,0x74,0x00, +0x01,0x2b,0x00,0x01,0x3c,0x79,0x53,0x00,0x00,0x00,0x5b,0x53,0x43,0x00,0x03,0x00, +0x07,0x00,0x02,0x68,0x7b,0x00,0x00,0x00,0x0a,0x00,0x08,0x00,0x26,0x01,0x80,0x00, +0x06,0x02,0x00,0x00,0x06,0x02,0x81,0x40,0x37,0x03,0x00,0x40,0x01,0x02,0x81,0x80, +0x38,0x02,0x00,0x7f,0xa0,0x01,0x80,0x00,0xa0,0x00,0x00,0x00,0x05,0x00,0x00,0x00, +0x29,0xc0,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x0c,0x5f, +0x5f,0x70,0x72,0x69,0x6e,0x74,0x73,0x74,0x72,0x5f,0x5f,0x00,0x07,0x73,0x70,0x72, +0x69,0x6e,0x74,0x66,0x77,0xa6,0x00,0x00,0x00,0x6f,0x53,0x43,0x00,0x03,0x00,0x06, +0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x00,0x08,0x00,0x26,0x01,0x80,0x00,0x06, +0x02,0x00,0x00,0x91,0x02,0x80,0x00,0x3d,0x02,0x00,0x80,0xa0,0x01,0x80,0x00,0xa0, +0x01,0x80,0x00,0x29,0xbb,0xe9,0x00,0x00,0x00,0x01,0x11,0x00,0x13,0x70,0x72,0x69, +0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65, +0x28,0x8b,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x13,0x4e, +0x6f,0x74,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x65,0x64,0x45,0x72,0x72, +0x6f,0x72,0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00,0x00,0x00,0x6e,0x53,0x43,0x00, +0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x00,0x08,0x00,0x26,0x01, +0x80,0x00,0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00,0x3d,0x02,0x00,0x80,0xa0,0x01, +0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xbb,0xe9,0x00,0x00,0x00,0x01,0x11,0x00,0x12, +0x70,0x75,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62, +0x6c,0x65,0x4c,0x61,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00, +0x13,0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x65,0x64,0x45, +0x72,0x72,0x6f,0x72,0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00,0x00,0x00,0x6b,0x53, +0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x00,0x08,0x00, +0x26,0x01,0x80,0x00,0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00,0x3d,0x02,0x00,0x80, +0xa0,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xbb,0xe9,0x00,0x00,0x00,0x01,0x11, +0x00,0x0f,0x70,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c, +0x65,0xcf,0x9c,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x13, +0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x65,0x64,0x45,0x72, +0x72,0x6f,0x72,0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00,0x00,0x00,0x70,0x53,0x43, 0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x00,0x08,0x00,0x26, 0x01,0x80,0x00,0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00,0x3d,0x02,0x00,0x80,0xa0, 0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xbb,0xe9,0x00,0x00,0x00,0x01,0x11,0x00, -0x13,0x70,0x72,0x69,0x6e,0x74,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69,0x6c, -0x61,0x62,0x6c,0x65,0x28,0x8b,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69,0x73, -0x65,0x00,0x13,0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x65, -0x64,0x45,0x72,0x72,0x6f,0x72,0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00,0x00,0x00, -0x6e,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x00, -0x08,0x00,0x26,0x01,0x80,0x00,0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00,0x3d,0x02, -0x00,0x80,0xa0,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xbb,0xe9,0x00,0x00,0x00, -0x01,0x11,0x00,0x12,0x70,0x75,0x74,0x73,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61, -0x69,0x6c,0x61,0x62,0x6c,0x65,0x4c,0x61,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61, -0x69,0x73,0x65,0x00,0x13,0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e, -0x74,0x65,0x64,0x45,0x72,0x72,0x6f,0x72,0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00, -0x00,0x00,0x6b,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00, -0x07,0x00,0x08,0x00,0x26,0x01,0x80,0x00,0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00, -0x3d,0x02,0x00,0x80,0xa0,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xbb,0xe9,0x00, -0x00,0x00,0x01,0x11,0x00,0x0f,0x70,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69, -0x6c,0x61,0x62,0x6c,0x65,0xcf,0x9c,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69, +0x14,0x70,0x72,0x69,0x6e,0x74,0x66,0x20,0x6e,0x6f,0x74,0x20,0x61,0x76,0x61,0x69, +0x6c,0x61,0x62,0x6c,0x65,0x27,0xb3,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69, 0x73,0x65,0x00,0x13,0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74, 0x65,0x64,0x45,0x72,0x72,0x6f,0x72,0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00,0x00, -0x00,0x70,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07, -0x00,0x08,0x00,0x26,0x01,0x80,0x00,0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00,0x3d, -0x02,0x00,0x80,0xa0,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xbb,0xe9,0x00,0x00, -0x00,0x01,0x11,0x00,0x14,0x70,0x72,0x69,0x6e,0x74,0x66,0x20,0x6e,0x6f,0x74,0x20, -0x61,0x76,0x61,0x69,0x6c,0x61,0x62,0x6c,0x65,0x27,0xb3,0x00,0x00,0x00,0x03,0x00, -0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x13,0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c,0x65, -0x6d,0x65,0x6e,0x74,0x65,0x64,0x45,0x72,0x72,0x6f,0x72,0x00,0x03,0x6e,0x65,0x77, -0x64,0x27,0x00,0x00,0x00,0x61,0x53,0x43,0x00,0x01,0x00,0x02,0x00,0x02,0x56,0xbe, -0x00,0x00,0x00,0x0b,0x00,0x80,0x00,0x48,0x01,0x00,0x02,0xc0,0x00,0x80,0x00,0x46, -0x00,0x80,0x00,0x48,0x01,0x00,0x06,0xc0,0x00,0x80,0x40,0x46,0x00,0x80,0x00,0x48, -0x01,0x00,0x0a,0xc0,0x00,0x80,0x80,0x46,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29, -0x49,0x4d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x65,0x61, -0x63,0x68,0x00,0x09,0x65,0x61,0x63,0x68,0x5f,0x70,0x61,0x69,0x72,0x00,0x06,0x73, -0x65,0x6c,0x65,0x63,0x74,0xdd,0x03,0x00,0x00,0x00,0x52,0x53,0x43,0x00,0x02,0x00, -0x04,0x00,0x02,0x6f,0x28,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xa6,0x01,0x00,0x00, -0x06,0x01,0x00,0x00,0x20,0x01,0x00,0x40,0x20,0x01,0x80,0x03,0x40,0x01,0x00,0x80, -0x21,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29,0xa7,0x14,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x03,0x00,0x05,0x63,0x6c,0x61,0x73,0x73,0x00,0x07,0x6d,0x65, -0x6d,0x62,0x65,0x72,0x73,0x00,0x04,0x65,0x61,0x63,0x68,0xd3,0xd7,0x00,0x00,0x00, -0x42,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x02, -0x00,0x00,0x26,0x01,0x80,0x40,0x15,0x02,0x00,0x00,0x06,0x02,0x80,0x40,0x01,0x02, -0x00,0x40,0xa0,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xb9,0x48,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x02,0x5b, -0x5d,0xa6,0x21,0x00,0x00,0x00,0x52,0x53,0x43,0x00,0x02,0x00,0x04,0x00,0x02,0x6f, +0x00,0x61,0x53,0x43,0x00,0x01,0x00,0x02,0x00,0x02,0x56,0xbe,0x00,0x00,0x00,0x0b, +0x00,0x80,0x00,0x48,0x01,0x00,0x02,0xc0,0x00,0x80,0x00,0x46,0x00,0x80,0x00,0x48, +0x01,0x00,0x06,0xc0,0x00,0x80,0x40,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x0a,0xc0, +0x00,0x80,0x80,0x46,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x49,0x4d,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x65,0x61,0x63,0x68,0x00,0x09, +0x65,0x61,0x63,0x68,0x5f,0x70,0x61,0x69,0x72,0x00,0x06,0x73,0x65,0x6c,0x65,0x63, +0x74,0xdd,0x03,0x00,0x00,0x00,0x52,0x53,0x43,0x00,0x02,0x00,0x04,0x00,0x02,0x6f, 0x28,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0x06,0x01,0x00,0x00, 0x20,0x01,0x00,0x40,0x20,0x01,0x80,0x03,0x40,0x01,0x00,0x80,0x21,0x00,0x00,0x00, 0x06,0x00,0x00,0x00,0x29,0xa7,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x03,0x00,0x05,0x63,0x6c,0x61,0x73,0x73,0x00,0x07,0x6d,0x65,0x6d,0x62,0x65,0x72, -0x73,0x00,0x04,0x65,0x61,0x63,0x68,0xd3,0xd7,0x00,0x00,0x00,0x52,0x53,0x43,0x00, -0x03,0x00,0x07,0x00,0x02,0x68,0x7b,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x26,0x01, -0x80,0x40,0x15,0x02,0x00,0x40,0x01,0x02,0x00,0x40,0x20,0x02,0x80,0x00,0x06,0x03, -0x00,0x40,0x01,0x02,0x80,0x80,0xa0,0x01,0x80,0x01,0x20,0x01,0x80,0x00,0x29,0xaa, -0x6a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x63,0x61,0x6c, -0x6c,0x00,0x06,0x74,0x6f,0x5f,0x73,0x79,0x6d,0x00,0x02,0x5b,0x5d,0x92,0x98,0x00, -0x00,0x00,0x52,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00, -0x08,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0,0x37,0x01,0x80,0x00,0x06,0x01,0x80,0x00, -0x20,0x01,0x80,0x40,0x20,0x02,0x00,0x03,0x40,0x01,0x80,0x80,0x21,0x01,0x00,0x00, -0x29,0x5c,0x5b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x05,0x63, +0x73,0x00,0x04,0x65,0x61,0x63,0x68,0xd3,0xd7,0x00,0x00,0x00,0x42,0x53,0x43,0x00, +0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x26,0x01, +0x80,0x40,0x15,0x02,0x00,0x00,0x06,0x02,0x80,0x40,0x01,0x02,0x00,0x40,0xa0,0x01, +0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xb9,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x02,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x02,0x5b,0x5d,0xa6,0x21,0x00, +0x00,0x00,0x52,0x53,0x43,0x00,0x02,0x00,0x04,0x00,0x02,0x6f,0x28,0x00,0x00,0x00, +0x08,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0x06,0x01,0x00,0x00,0x20,0x01,0x00,0x40, +0x20,0x01,0x80,0x03,0x40,0x01,0x00,0x80,0x21,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x29,0xa7,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x05,0x63, 0x6c,0x61,0x73,0x73,0x00,0x07,0x6d,0x65,0x6d,0x62,0x65,0x72,0x73,0x00,0x04,0x65, -0x61,0x63,0x68,0xd3,0xd7,0x00,0x00,0x00,0x64,0x53,0x43,0x00,0x04,0x00,0x06,0x00, -0x02,0xfd,0xca,0x00,0x00,0x00,0x0e,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x06,0x02, -0x80,0x40,0x01,0x02,0x00,0x00,0xa0,0x01,0x81,0x00,0x01,0x02,0x00,0x40,0x15,0x02, -0x80,0xc0,0x01,0x02,0x00,0x40,0xa0,0x02,0x40,0x02,0x19,0x02,0x00,0x80,0x15,0x02, -0x80,0xc0,0x01,0x02,0x00,0x80,0xa0,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x29,0x54, -0xef,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x5b,0x5d,0x00, +0x61,0x63,0x68,0xd3,0xd7,0x00,0x00,0x00,0x52,0x53,0x43,0x00,0x03,0x00,0x07,0x00, +0x02,0x68,0x7b,0x00,0x00,0x00,0x09,0x02,0x00,0x00,0x26,0x01,0x80,0x40,0x15,0x02, +0x00,0x40,0x01,0x02,0x00,0x40,0x20,0x02,0x80,0x00,0x06,0x03,0x00,0x40,0x01,0x02, +0x80,0x80,0xa0,0x01,0x80,0x01,0x20,0x01,0x80,0x00,0x29,0xaa,0x6a,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x06,0x74, +0x6f,0x5f,0x73,0x79,0x6d,0x00,0x02,0x5b,0x5d,0x92,0x98,0x00,0x00,0x00,0x52,0x53, +0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x08,0x00,0x00,0x00, +0xa6,0x01,0x00,0xc0,0x37,0x01,0x80,0x00,0x06,0x01,0x80,0x00,0x20,0x01,0x80,0x40, +0x20,0x02,0x00,0x03,0x40,0x01,0x80,0x80,0x21,0x01,0x00,0x00,0x29,0x5c,0x5b,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x05,0x63,0x6c,0x61,0x73,0x73, +0x00,0x07,0x6d,0x65,0x6d,0x62,0x65,0x72,0x73,0x00,0x04,0x65,0x61,0x63,0x68,0xd3, +0xd7,0x00,0x00,0x00,0x68,0x53,0x43,0x00,0x04,0x00,0x06,0x00,0x02,0xfd,0xca,0x00, +0x00,0x00,0x0f,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x06,0x02,0x80,0x40,0x01,0x02, +0x00,0x00,0xa0,0x01,0x81,0x00,0x01,0x02,0x00,0x40,0x15,0x02,0x80,0xc0,0x01,0x02, +0x00,0x40,0xa0,0x02,0x40,0x02,0x19,0x02,0x00,0x80,0x15,0x02,0x80,0xc0,0x01,0x02, +0x00,0x80,0xa0,0x00,0x40,0x00,0x97,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x29,0x7e, +0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x5b,0x5d,0x00, 0x04,0x63,0x61,0x6c,0x6c,0x00,0x04,0x70,0x75,0x73,0x68,0x3a,0x3a,0x00,0x00,0x00, 0xd4,0x53,0x43,0x00,0x01,0x00,0x02,0x00,0x02,0x56,0xbe,0x00,0x00,0x00,0x1d,0x00, 0x80,0x00,0x48,0x01,0x00,0x02,0xc0,0x00,0x80,0x00,0x46,0x00,0x80,0x00,0x48,0x01, @@ -895,180 +898,187 @@ const char mrblib_irep[] = { 0x02,0x80,0x05,0x40,0x02,0x00,0xc0,0x21,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29, 0x7f,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x65,0x61, 0x63,0x68,0x5f,0x6b,0x65,0x79,0x00,0x04,0x73,0x69,0x7a,0x65,0x00,0x02,0x3d,0x3d, -0x00,0x04,0x65,0x61,0x63,0x68,0x0b,0x74,0x00,0x00,0x00,0x68,0x53,0x43,0x00,0x04, -0x00,0x07,0x00,0x02,0xed,0xeb,0x00,0x00,0x00,0x0f,0x02,0x00,0x00,0x26,0x02,0x00, +0x00,0x04,0x65,0x61,0x63,0x68,0x0b,0x74,0x00,0x00,0x00,0x6c,0x53,0x43,0x00,0x04, +0x00,0x07,0x00,0x02,0xed,0xeb,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x26,0x02,0x00, 0x00,0x06,0x02,0x80,0x40,0x01,0x02,0x00,0x00,0xa0,0x01,0x81,0x00,0x01,0x02,0x00, 0x40,0x15,0x02,0x80,0x40,0x01,0x03,0x00,0xc0,0x01,0x02,0x00,0x41,0x20,0x02,0x40, -0x02,0x19,0x02,0x00,0x80,0x15,0x02,0x80,0x40,0x01,0x02,0x00,0x80,0xa0,0x02,0x00, -0x00,0x05,0x02,0x00,0x00,0x29,0xa6,0xa5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x03,0x00,0x02,0x5b,0x5d,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x04,0x70,0x75, -0x73,0x68,0x3a,0x3a,0x00,0x00,0x00,0x38,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02, -0x48,0x39,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x26,0x01,0x80,0x00,0x06,0x02,0x00, -0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xfa,0x4e,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x06,0x64,0x65,0x6c,0x65,0x74,0x65,0x90,0x7d, -0x00,0x00,0x00,0x3e,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00, -0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0,0x3f,0x01,0x80,0x00,0x06,0x02,0x00, -0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x00,0x00,0x29,0xb1,0xf4,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x65,0x61,0x63,0x68,0x5f,0x6b,0x65,0x79, -0x81,0xeb,0x00,0x00,0x00,0x73,0x53,0x43,0x00,0x04,0x00,0x08,0x00,0x02,0x1c,0x04, -0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x06,0x02,0x80,0x40,0x01, -0x02,0x00,0x00,0xa0,0x01,0x81,0x00,0x01,0x02,0x00,0x40,0x15,0x02,0x80,0x40,0x01, -0x03,0x00,0xc0,0x01,0x02,0x00,0x41,0x20,0x02,0x40,0x01,0x19,0x02,0x00,0x00,0x05, -0x00,0x40,0x02,0x97,0x02,0x00,0xc0,0x01,0x02,0x80,0x80,0x15,0x03,0x00,0x40,0x01, -0x03,0x81,0x00,0x01,0x02,0x80,0x81,0x20,0x02,0x00,0x00,0x29,0x66,0x50,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x5b,0x5d,0x00,0x04,0x63,0x61, -0x6c,0x6c,0x00,0x03,0x5b,0x5d,0x3d,0x37,0xc8,0x00,0x00,0x00,0x7a,0x53,0x43,0x00, -0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0xa6,0x01, -0x00,0xc0,0x37,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01, -0x80,0x80,0x01,0x01,0x80,0x40,0x20,0x02,0x3f,0xff,0x83,0x01,0x80,0x80,0xb2,0x01, -0xc0,0x01,0x19,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x02,0x00,0x80,0x01,0x02, -0x80,0x05,0x40,0x02,0x00,0xc0,0x21,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29,0x7f, -0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x65,0x61,0x63, -0x68,0x5f,0x6b,0x65,0x79,0x00,0x04,0x73,0x69,0x7a,0x65,0x00,0x02,0x3d,0x3d,0x00, -0x04,0x65,0x61,0x63,0x68,0x0b,0x74,0x00,0x00,0x00,0x6c,0x53,0x43,0x00,0x04,0x00, -0x07,0x00,0x02,0xed,0xeb,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x26,0x02,0x00,0x00, -0x06,0x02,0x80,0x40,0x01,0x02,0x00,0x00,0xa0,0x01,0x81,0x00,0x01,0x02,0x00,0x40, -0x15,0x02,0x80,0x40,0x01,0x03,0x00,0xc0,0x01,0x02,0x00,0x41,0x20,0x02,0x40,0x01, -0x19,0x02,0x00,0x00,0x05,0x00,0x40,0x01,0x97,0x02,0x00,0x80,0x15,0x02,0x80,0x40, -0x01,0x02,0x00,0x80,0xa0,0x02,0x00,0x00,0x29,0xaa,0x9a,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x5b,0x5d,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00, -0x04,0x70,0x75,0x73,0x68,0x3a,0x3a,0x00,0x00,0x00,0x38,0x53,0x43,0x00,0x03,0x00, -0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x26,0x01,0x80,0x00, -0x06,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xfa,0x4e,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x06,0x64,0x65,0x6c,0x65,0x74, -0x65,0x90,0x7d,0x00,0x00,0x00,0x3e,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48, -0x39,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0,0x3f,0x01,0x80,0x00, -0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x00,0x00,0x29,0xb1,0xf4,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x65,0x61,0x63,0x68,0x5f, -0x6b,0x65,0x79,0x81,0xeb,0x00,0x00,0x00,0x6f,0x53,0x43,0x00,0x04,0x00,0x08,0x00, -0x02,0x1c,0x04,0x00,0x00,0x00,0x11,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x06,0x02, -0x80,0x40,0x01,0x02,0x00,0x00,0xa0,0x01,0x81,0x00,0x01,0x02,0x00,0x40,0x15,0x02, -0x80,0x40,0x01,0x03,0x00,0xc0,0x01,0x02,0x00,0x41,0x20,0x02,0x40,0x03,0x19,0x02, -0x00,0xc0,0x01,0x02,0x80,0x80,0x15,0x03,0x00,0x40,0x01,0x03,0x81,0x00,0x01,0x02, -0x80,0x81,0x20,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x29,0xc6,0x2d,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x5b,0x5d,0x00,0x04,0x63,0x61,0x6c, -0x6c,0x00,0x03,0x5b,0x5d,0x3d,0x37,0xc8,0x00,0x00,0x00,0x24,0x53,0x43,0x00,0x01, -0x00,0x02,0x00,0x02,0x56,0xbe,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x05,0x00,0x00, -0x00,0x29,0x8b,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x41,0x53,0x43,0x00,0x01,0x00,0x03,0x00,0x02,0x46,0x9f,0x00,0x00, -0x00,0x04,0x00,0x80,0x00,0x06,0x01,0x00,0x00,0x91,0x00,0x80,0x00,0xa0,0x01,0x00, -0x00,0x29,0x38,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07, -0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x00,0x0a,0x45,0x6e,0x75,0x6d,0x65,0x72,0x61, -0x62,0x6c,0x65,0xfa,0xae,0x00,0x00,0x00,0x68,0x53,0x43,0x00,0x01,0x00,0x02,0x00, -0x02,0x56,0xbe,0x00,0x00,0x00,0x10,0x00,0x80,0x00,0x06,0x00,0x80,0x40,0x47,0x01, -0x00,0x02,0xc0,0x00,0x80,0x00,0x46,0x00,0x80,0x00,0x06,0x00,0x80,0x40,0x47,0x01, -0x00,0x04,0xc0,0x00,0x80,0x40,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x06,0xc0,0x00, -0x80,0x40,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x08,0xc0,0x00,0x80,0x00,0x46,0x00, -0x00,0x00,0x05,0x00,0x00,0x00,0x29,0xb4,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x02,0x00,0x04,0x6c,0x6f,0x6f,0x70,0x00,0x04,0x65,0x76,0x61,0x6c,0x49, -0x1f,0x00,0x00,0x00,0x42,0x53,0x43,0x00,0x02,0x00,0x03,0x00,0x02,0x1f,0xcf,0x00, -0x00,0x00,0x08,0x00,0x00,0x00,0x26,0x00,0x40,0x01,0x17,0x01,0x00,0x00,0x2b,0x01, -0x00,0x00,0x20,0x01,0x00,0x00,0x07,0x01,0x3f,0xfe,0x18,0x00,0x00,0x00,0x05,0x00, -0x00,0x00,0x29,0xce,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, -0x04,0x63,0x61,0x6c,0x6c,0x38,0x03,0x00,0x00,0x00,0x70,0x53,0x43,0x00,0x03,0x00, -0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x07,0x02,0x00,0x00,0x26,0x01,0x80,0x00, -0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00,0x3d,0x02,0x00,0x80,0xa0,0x01,0x80,0x00, -0xa0,0x01,0x80,0x00,0x29,0xfe,0xe8,0x00,0x00,0x00,0x01,0x11,0x00,0x14,0x65,0x76, -0x61,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x69,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74, -0x65,0x64,0x64,0xfa,0x00,0x00,0x00,0x03,0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00, -0x13,0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x65,0x64,0x45, -0x72,0x72,0x6f,0x72,0x00,0x03,0x6e,0x65,0x77,0x64,0x27,0x00,0x00,0x00,0x3e,0x53, +0x02,0x19,0x02,0x00,0x80,0x15,0x02,0x80,0x40,0x01,0x02,0x00,0x80,0xa0,0x00,0x40, +0x00,0x97,0x02,0x00,0x00,0x05,0x02,0x00,0x00,0x29,0xb8,0xa8,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x5b,0x5d,0x00,0x04,0x63,0x61,0x6c,0x6c, +0x00,0x04,0x70,0x75,0x73,0x68,0x3a,0x3a,0x00,0x00,0x00,0x38,0x53,0x43,0x00,0x03, +0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x26,0x01,0x80, +0x00,0x06,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xfa,0x4e, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x06,0x64,0x65,0x6c,0x65, +0x74,0x65,0x90,0x7d,0x00,0x00,0x00,0x3e,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02, +0x48,0x39,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0,0x3f,0x01,0x80, +0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x00,0x00,0x29,0xb1,0xf4, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x65,0x61,0x63,0x68, +0x5f,0x6b,0x65,0x79,0x81,0xeb,0x00,0x00,0x00,0x73,0x53,0x43,0x00,0x04,0x00,0x08, +0x00,0x02,0x1c,0x04,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x26,0x02,0x00,0x00,0x06, +0x02,0x80,0x40,0x01,0x02,0x00,0x00,0xa0,0x01,0x81,0x00,0x01,0x02,0x00,0x40,0x15, +0x02,0x80,0x40,0x01,0x03,0x00,0xc0,0x01,0x02,0x00,0x41,0x20,0x02,0x40,0x01,0x19, +0x02,0x00,0x00,0x05,0x00,0x40,0x02,0x97,0x02,0x00,0xc0,0x01,0x02,0x80,0x80,0x15, +0x03,0x00,0x40,0x01,0x03,0x81,0x00,0x01,0x02,0x80,0x81,0x20,0x02,0x00,0x00,0x29, +0x66,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x5b,0x5d, +0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x03,0x5b,0x5d,0x3d,0x37,0xc8,0x00,0x00,0x00, +0x7a,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00,0x11,0x00, +0x00,0x00,0xa6,0x01,0x00,0xc0,0x37,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01, +0x80,0x00,0x21,0x01,0x80,0x80,0x01,0x01,0x80,0x40,0x20,0x02,0x3f,0xff,0x83,0x01, +0x80,0x80,0xb2,0x01,0xc0,0x01,0x19,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x02, +0x00,0x80,0x01,0x02,0x80,0x05,0x40,0x02,0x00,0xc0,0x21,0x00,0x00,0x00,0x06,0x00, +0x00,0x00,0x29,0x7f,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00, +0x08,0x65,0x61,0x63,0x68,0x5f,0x6b,0x65,0x79,0x00,0x04,0x73,0x69,0x7a,0x65,0x00, +0x02,0x3d,0x3d,0x00,0x04,0x65,0x61,0x63,0x68,0x0b,0x74,0x00,0x00,0x00,0x6c,0x53, +0x43,0x00,0x04,0x00,0x07,0x00,0x02,0xed,0xeb,0x00,0x00,0x00,0x10,0x02,0x00,0x00, +0x26,0x02,0x00,0x00,0x06,0x02,0x80,0x40,0x01,0x02,0x00,0x00,0xa0,0x01,0x81,0x00, +0x01,0x02,0x00,0x40,0x15,0x02,0x80,0x40,0x01,0x03,0x00,0xc0,0x01,0x02,0x00,0x41, +0x20,0x02,0x40,0x01,0x19,0x02,0x00,0x00,0x05,0x00,0x40,0x01,0x97,0x02,0x00,0x80, +0x15,0x02,0x80,0x40,0x01,0x02,0x00,0x80,0xa0,0x02,0x00,0x00,0x29,0xaa,0x9a,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x5b,0x5d,0x00,0x04,0x63, +0x61,0x6c,0x6c,0x00,0x04,0x70,0x75,0x73,0x68,0x3a,0x3a,0x00,0x00,0x00,0x38,0x53, 0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x05,0x02,0x00,0x00, -0x26,0x01,0x80,0x00,0x11,0x02,0x00,0x40,0x01,0x01,0x80,0x40,0xa0,0x01,0x80,0x00, -0x29,0xe8,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x4b, -0x65,0x72,0x6e,0x65,0x6c,0x00,0x04,0x65,0x76,0x61,0x6c,0x1a,0xb1,0x00,0x00,0x00, -0x42,0x53,0x43,0x00,0x02,0x00,0x03,0x00,0x02,0x1f,0xcf,0x00,0x00,0x00,0x08,0x00, -0x00,0x00,0x26,0x00,0x40,0x01,0x17,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x20,0x01, -0x00,0x00,0x07,0x01,0x3f,0xfe,0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0xce, -0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x63,0x61,0x6c, -0x6c,0x38,0x03,0x00,0x00,0x00,0xb8,0x53,0x43,0x00,0x01,0x00,0x04,0x00,0x02,0x36, -0x78,0x00,0x00,0x00,0x16,0x00,0x80,0x00,0x48,0x01,0x00,0x02,0xc0,0x00,0x80,0x00, -0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x04,0xc0,0x00,0x80,0x40,0x46,0x00,0x80,0x00, -0x48,0x01,0x00,0x06,0xc0,0x00,0x80,0x80,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x01, -0x84,0x01,0x80,0x01,0x04,0x02,0x00,0x00,0x05,0x00,0x81,0x01,0x20,0x00,0x80,0x00, -0x48,0x01,0x00,0x0a,0xc0,0x00,0x81,0x40,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x0c, -0xc0,0x00,0x81,0x80,0x46,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x8c,0xae,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x04,0x65,0x61,0x63,0x68,0x00, -0x0a,0x65,0x61,0x63,0x68,0x5f,0x69,0x6e,0x64,0x65,0x78,0x00,0x08,0x63,0x6f,0x6c, -0x6c,0x65,0x63,0x74,0x21,0x00,0x04,0x6d,0x61,0x70,0x21,0x00,0x0c,0x61,0x6c,0x69, -0x61,0x73,0x5f,0x6d,0x65,0x74,0x68,0x6f,0x64,0x00,0x0a,0x69,0x6e,0x69,0x74,0x69, -0x61,0x6c,0x69,0x7a,0x65,0x00,0x06,0x64,0x65,0x6c,0x65,0x74,0x65,0x38,0x72,0x00, -0x00,0x00,0x8b,0x53,0x43,0x00,0x04,0x00,0x08,0x00,0x02,0x1c,0x04,0x00,0x00,0x00, -0x15,0x00,0x00,0x00,0xa6,0x02,0x3f,0xff,0x03,0x02,0x80,0x00,0x06,0x02,0x80,0x00, -0x20,0x02,0x80,0x40,0xaf,0x01,0x01,0x00,0x01,0x01,0x81,0x40,0x01,0x00,0x40,0x03, -0x97,0x02,0x00,0x40,0x01,0x02,0x80,0x00,0x06,0x03,0x00,0x80,0x01,0x03,0x01,0x00, -0xad,0x01,0x01,0x80,0x01,0x02,0x80,0xc0,0xa0,0x02,0x00,0x80,0xa0,0x02,0x00,0x80, -0x01,0x02,0x80,0xc0,0x01,0x02,0x01,0x40,0xb3,0x02,0x3f,0xfa,0x98,0x00,0x00,0x00, -0x06,0x00,0x00,0x00,0x29,0xd4,0x5c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x06,0x00,0x06,0x6c,0x65,0x6e,0x67,0x74,0x68,0x00,0x01,0x2d,0x00,0x04,0x63,0x61, -0x6c,0x6c,0x00,0x02,0x5b,0x5d,0x00,0x01,0x2b,0x00,0x01,0x3c,0xab,0x21,0x00,0x00, -0x00,0x70,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x10, -0x00,0x00,0x00,0xa6,0x01,0x3f,0xff,0x83,0x00,0x40,0x03,0x17,0x01,0x80,0x40,0x01, -0x02,0x00,0x80,0x01,0x01,0x80,0x00,0xa0,0x01,0x80,0x80,0x01,0x01,0x80,0x40,0xad, -0x01,0x00,0xc0,0x01,0x01,0x80,0x80,0x01,0x02,0x00,0x00,0x06,0x02,0x00,0xc0,0x20, -0x01,0x80,0x80,0xb3,0x01,0xbf,0xfa,0x98,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29, -0x8e,0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x63,0x61, -0x6c,0x6c,0x00,0x01,0x2b,0x00,0x01,0x3c,0x00,0x06,0x6c,0x65,0x6e,0x67,0x74,0x68, -0x54,0xf1,0x00,0x00,0x00,0x40,0x53,0x43,0x00,0x02,0x00,0x04,0x00,0x02,0x6f,0x28, -0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0x06,0x01,0x80,0x03,0x40, -0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29,0xfa,0xe2,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x65,0x61,0x63,0x68,0x5f,0x69, -0x6e,0x64,0x65,0x78,0xb6,0xf5,0x00,0x00,0x00,0x57,0x53,0x43,0x00,0x03,0x00,0x07, -0x00,0x02,0x68,0x7b,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x26,0x01,0x80,0x40,0x15, -0x02,0x00,0x00,0x06,0x02,0x80,0x40,0x01,0x02,0x00,0x40,0xa0,0x01,0x80,0x00,0xa0, -0x02,0x00,0x00,0x06,0x02,0x80,0x40,0x01,0x03,0x00,0xc0,0x01,0x02,0x00,0x81,0x20, -0x01,0x80,0x00,0x29,0x75,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, -0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x02,0x5b,0x5d,0x00,0x03,0x5b,0x5d,0x3d,0x3e, -0x8a,0x00,0x00,0x01,0x8c,0x53,0x43,0x00,0x05,0x00,0x09,0x00,0x02,0x3b,0x15,0x00, -0x00,0x00,0x39,0x00,0x20,0x00,0xa6,0x00,0x40,0x01,0x17,0x00,0x40,0x01,0x17,0x00, -0x40,0x01,0x17,0x00,0xbf,0xff,0x83,0x01,0x00,0x00,0x05,0x02,0x80,0x40,0x01,0x03, -0x00,0x00,0x91,0x02,0x80,0x00,0xa0,0x02,0xc0,0x00,0x99,0x00,0x40,0x02,0x17,0x02, -0x80,0x00,0x06,0x03,0x00,0x01,0x91,0x03,0x80,0x00,0x3d,0x02,0x80,0x81,0x20,0x02, -0x80,0x40,0x01,0x03,0x3f,0xff,0x83,0x02,0x81,0x00,0xb3,0x02,0xc0,0x02,0x19,0x02, -0x80,0x00,0x06,0x03,0x00,0x02,0x91,0x03,0x80,0x00,0xbd,0x02,0x80,0x81,0x20,0x02, -0x80,0x00,0x06,0x02,0x81,0x80,0x20,0x02,0x80,0x40,0x01,0x03,0x3f,0xff,0x83,0x02, -0x81,0xc0,0xb5,0x02,0xc0,0x0d,0x19,0x02,0x80,0x00,0x05,0x03,0x00,0x00,0x06,0x03, -0x80,0x40,0x01,0x03,0x82,0x40,0xaf,0x04,0x01,0x40,0x01,0x03,0x02,0x01,0x20,0x02, -0x3f,0xff,0x83,0x00,0x40,0x07,0x17,0x02,0x80,0xc0,0x01,0x02,0xc0,0x02,0x19,0x02, -0x80,0xc0,0x01,0x03,0x01,0x00,0x01,0x02,0x82,0x80,0xa0,0x00,0x40,0x00,0x97,0x02, -0x80,0x80,0x01,0x03,0x00,0x00,0x06,0x03,0x81,0x00,0x01,0x04,0x01,0x40,0x01,0x03, -0x02,0x01,0x20,0x02,0x81,0x00,0x01,0x02,0x82,0xc0,0xad,0x02,0x01,0x40,0x01,0x02, -0x81,0x00,0x01,0x03,0x00,0x40,0x01,0x02,0x81,0x00,0xb3,0x02,0xbf,0xf7,0x18,0x00, -0x00,0x00,0x06,0x00,0x00,0x00,0x29,0x02,0x04,0x00,0x00,0x00,0x02,0x11,0x00,0x21, -0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x49,0x6e,0x74,0x65,0x67,0x65,0x72, -0x20,0x66,0x6f,0x72,0x20,0x31,0x73,0x74,0x20,0x61,0x72,0x67,0x75,0x6d,0x65,0x6e, -0x74,0x11,0x00,0x13,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x20,0x61,0x72,0x72, -0x61,0x79,0x20,0x73,0x69,0x7a,0x65,0x36,0xf1,0x00,0x00,0x00,0x0c,0x00,0x08,0x6b, -0x69,0x6e,0x64,0x5f,0x6f,0x66,0x3f,0x00,0x07,0x49,0x6e,0x74,0x65,0x67,0x65,0x72, -0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x09,0x54,0x79,0x70,0x65,0x45,0x72,0x72, -0x6f,0x72,0x00,0x01,0x3c,0x00,0x0d,0x41,0x72,0x67,0x75,0x6d,0x65,0x6e,0x74,0x45, -0x72,0x72,0x6f,0x72,0x00,0x05,0x63,0x6c,0x65,0x61,0x72,0x00,0x01,0x3e,0x00,0x03, -0x5b,0x5d,0x3d,0x00,0x01,0x2d,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x01,0x2b,0x53, -0xdf,0x00,0x00,0x00,0x90,0x53,0x43,0x00,0x05,0x00,0x07,0x00,0x02,0xda,0xdb,0x00, -0x00,0x00,0x16,0x02,0x00,0x00,0xa6,0x00,0x40,0x02,0x17,0x02,0x80,0x00,0x06,0x03, -0x00,0xc0,0x01,0x02,0x80,0x00,0xa0,0x02,0x00,0x40,0x01,0x02,0x80,0x00,0x06,0x03, -0x00,0x40,0x01,0x02,0x80,0x40,0xa0,0x01,0x81,0x40,0x01,0x02,0xbf,0xfb,0x98,0x02, -0x81,0x00,0x01,0x03,0x00,0x00,0x05,0x02,0x80,0x80,0xb2,0x02,0xc0,0x00,0x99,0x02, -0x80,0x80,0x01,0x02,0xc0,0x01,0x99,0x02,0x80,0x80,0x01,0x02,0x80,0xc0,0x20,0x00, -0x40,0x00,0x97,0x02,0x81,0x00,0x01,0x02,0x80,0x00,0x29,0x67,0xba,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x09,0x64,0x65,0x6c,0x65,0x74,0x65,0x5f, -0x61,0x74,0x00,0x05,0x69,0x6e,0x64,0x65,0x78,0x00,0x02,0x3d,0x3d,0x00,0x04,0x63, -0x61,0x6c,0x6c,0x30,0x9c,0x00,0x00,0x00,0x24,0x53,0x43,0x00,0x01,0x00,0x02,0x00, -0x02,0x56,0xbe,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x8b, -0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x24,0x53,0x43,0x00,0x01,0x00,0x02,0x00,0x02,0x56,0xbe,0x00,0x00,0x00,0x02,0x00, -0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x8b,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x53,0x43,0x00,0x01,0x00,0x03,0x00, -0x02,0x46,0x9f,0x00,0x00,0x00,0x0b,0x00,0x80,0x00,0x06,0x01,0x00,0x00,0x91,0x00, -0x80,0x00,0xa0,0x00,0x80,0x00,0x06,0x01,0x00,0x01,0x11,0x00,0x80,0x00,0xa0,0x00, -0x80,0x00,0x48,0x01,0x00,0x02,0xc0,0x00,0x80,0xc0,0x46,0x00,0x00,0x00,0x05,0x00, -0x00,0x00,0x29,0x51,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00, -0x07,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x00,0x0a,0x45,0x6e,0x75,0x6d,0x65,0x72, -0x61,0x62,0x6c,0x65,0x00,0x0a,0x43,0x6f,0x6d,0x70,0x61,0x72,0x61,0x62,0x6c,0x65, -0x00,0x05,0x73,0x6f,0x72,0x74,0x21,0xd1,0xed,0x00,0x00,0x00,0x47,0x53,0x43,0x00, -0x02,0x00,0x05,0x00,0x02,0x7f,0x09,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0xa6,0x01, -0x00,0x00,0x06,0x01,0x80,0x00,0x06,0x02,0x00,0x40,0x01,0x01,0x80,0x40,0x21,0x01, -0x00,0x00,0xa0,0x01,0x00,0x00,0x29,0x40,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x02,0x00,0x07,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x00,0x04,0x73,0x6f, -0x72,0x74,0x95,0xe4,0x00,0x00,0x00,0x00, +0x26,0x01,0x80,0x00,0x06,0x02,0x00,0x40,0x01,0x01,0x80,0x00,0xa0,0x01,0x80,0x00, +0x29,0xfa,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x06,0x64, +0x65,0x6c,0x65,0x74,0x65,0x90,0x7d,0x00,0x00,0x00,0x3e,0x53,0x43,0x00,0x03,0x00, +0x05,0x00,0x02,0x48,0x39,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0xc0, +0x3f,0x01,0x80,0x00,0x06,0x02,0x00,0x03,0x40,0x01,0x80,0x00,0x21,0x01,0x00,0x00, +0x29,0xb1,0xf4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x65, +0x61,0x63,0x68,0x5f,0x6b,0x65,0x79,0x81,0xeb,0x00,0x00,0x00,0x73,0x53,0x43,0x00, +0x04,0x00,0x08,0x00,0x02,0x1c,0x04,0x00,0x00,0x00,0x12,0x02,0x00,0x00,0x26,0x02, +0x00,0x00,0x06,0x02,0x80,0x40,0x01,0x02,0x00,0x00,0xa0,0x01,0x81,0x00,0x01,0x02, +0x00,0x40,0x15,0x02,0x80,0x40,0x01,0x03,0x00,0xc0,0x01,0x02,0x00,0x41,0x20,0x02, +0x40,0x03,0x19,0x02,0x00,0xc0,0x01,0x02,0x80,0x80,0x15,0x03,0x00,0x40,0x01,0x03, +0x81,0x00,0x01,0x02,0x80,0x81,0x20,0x00,0x40,0x00,0x97,0x02,0x00,0x00,0x05,0x02, +0x00,0x00,0x29,0x30,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00, +0x02,0x5b,0x5d,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x03,0x5b,0x5d,0x3d,0x37,0xc8, +0x00,0x00,0x00,0x24,0x53,0x43,0x00,0x01,0x00,0x02,0x00,0x02,0x56,0xbe,0x00,0x00, +0x00,0x02,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x8b,0x3a,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x53,0x43,0x00,0x01, +0x00,0x03,0x00,0x02,0x46,0x9f,0x00,0x00,0x00,0x04,0x00,0x80,0x00,0x06,0x01,0x00, +0x00,0x91,0x00,0x80,0x00,0xa0,0x01,0x00,0x00,0x29,0x38,0x14,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x00, +0x0a,0x45,0x6e,0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0xfa,0xae,0x00,0x00,0x00, +0x68,0x53,0x43,0x00,0x01,0x00,0x02,0x00,0x02,0x56,0xbe,0x00,0x00,0x00,0x10,0x00, +0x80,0x00,0x06,0x00,0x80,0x40,0x47,0x01,0x00,0x02,0xc0,0x00,0x80,0x00,0x46,0x00, +0x80,0x00,0x06,0x00,0x80,0x40,0x47,0x01,0x00,0x04,0xc0,0x00,0x80,0x40,0x46,0x00, +0x80,0x00,0x48,0x01,0x00,0x06,0xc0,0x00,0x80,0x40,0x46,0x00,0x80,0x00,0x48,0x01, +0x00,0x08,0xc0,0x00,0x80,0x00,0x46,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0xb4, +0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x6c,0x6f,0x6f, +0x70,0x00,0x04,0x65,0x76,0x61,0x6c,0x49,0x1f,0x00,0x00,0x00,0x42,0x53,0x43,0x00, +0x02,0x00,0x03,0x00,0x02,0x1f,0xcf,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x26,0x00, +0x40,0x01,0x17,0x01,0x00,0x00,0x2b,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x07,0x01, +0x3f,0xfe,0x18,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0xce,0x4a,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x63,0x61,0x6c,0x6c,0x38,0x03,0x00, +0x00,0x00,0x70,0x53,0x43,0x00,0x03,0x00,0x06,0x00,0x02,0x78,0x5a,0x00,0x00,0x00, +0x07,0x02,0x00,0x00,0x26,0x01,0x80,0x00,0x06,0x02,0x00,0x00,0x91,0x02,0x80,0x00, +0x3d,0x02,0x00,0x80,0xa0,0x01,0x80,0x00,0xa0,0x01,0x80,0x00,0x29,0xfe,0xe8,0x00, +0x00,0x00,0x01,0x11,0x00,0x14,0x65,0x76,0x61,0x6c,0x20,0x6e,0x6f,0x74,0x20,0x69, +0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x65,0x64,0x64,0xfa,0x00,0x00,0x00,0x03, +0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x13,0x4e,0x6f,0x74,0x49,0x6d,0x70,0x6c, +0x65,0x6d,0x65,0x6e,0x74,0x65,0x64,0x45,0x72,0x72,0x6f,0x72,0x00,0x03,0x6e,0x65, +0x77,0x64,0x27,0x00,0x00,0x00,0x3e,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48, +0x39,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x26,0x01,0x80,0x00,0x11,0x02,0x00,0x40, +0x01,0x01,0x80,0x40,0xa0,0x01,0x80,0x00,0x29,0xe8,0x52,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x4b,0x65,0x72,0x6e,0x65,0x6c,0x00,0x04,0x65, +0x76,0x61,0x6c,0x1a,0xb1,0x00,0x00,0x00,0x42,0x53,0x43,0x00,0x02,0x00,0x03,0x00, +0x02,0x1f,0xcf,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x26,0x00,0x40,0x01,0x17,0x01, +0x00,0x00,0x2b,0x01,0x00,0x00,0x20,0x01,0x00,0x00,0x07,0x01,0x3f,0xfe,0x18,0x00, +0x00,0x00,0x05,0x00,0x00,0x00,0x29,0xce,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x01,0x00,0x04,0x63,0x61,0x6c,0x6c,0x38,0x03,0x00,0x00,0x00,0xb8,0x53, +0x43,0x00,0x01,0x00,0x04,0x00,0x02,0x36,0x78,0x00,0x00,0x00,0x16,0x00,0x80,0x00, +0x48,0x01,0x00,0x02,0xc0,0x00,0x80,0x00,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x04, +0xc0,0x00,0x80,0x40,0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x06,0xc0,0x00,0x80,0x80, +0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x01,0x84,0x01,0x80,0x01,0x04,0x02,0x00,0x00, +0x05,0x00,0x81,0x01,0x20,0x00,0x80,0x00,0x48,0x01,0x00,0x0a,0xc0,0x00,0x81,0x40, +0x46,0x00,0x80,0x00,0x48,0x01,0x00,0x0c,0xc0,0x00,0x81,0x80,0x46,0x00,0x00,0x00, +0x05,0x00,0x00,0x00,0x29,0x8c,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x07,0x00,0x04,0x65,0x61,0x63,0x68,0x00,0x0a,0x65,0x61,0x63,0x68,0x5f,0x69,0x6e, +0x64,0x65,0x78,0x00,0x08,0x63,0x6f,0x6c,0x6c,0x65,0x63,0x74,0x21,0x00,0x04,0x6d, +0x61,0x70,0x21,0x00,0x0c,0x61,0x6c,0x69,0x61,0x73,0x5f,0x6d,0x65,0x74,0x68,0x6f, +0x64,0x00,0x0a,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x69,0x7a,0x65,0x00,0x06,0x64, +0x65,0x6c,0x65,0x74,0x65,0x38,0x72,0x00,0x00,0x00,0xf7,0x53,0x43,0x00,0x05,0x00, +0x08,0x00,0x02,0x2b,0x34,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0xa6,0x02,0xbf,0xff, +0x03,0x03,0x00,0x00,0x06,0x03,0x00,0x00,0x20,0x03,0x00,0x40,0xaf,0x01,0x01,0x40, +0x01,0x01,0x81,0x80,0x01,0x00,0x40,0x0b,0x17,0x02,0x80,0x00,0x06,0x03,0x00,0x80, +0x01,0x03,0x00,0xc0,0xad,0x01,0x01,0x80,0x01,0x02,0x80,0x80,0xa0,0x02,0x01,0x40, +0x01,0x02,0x81,0x00,0x01,0x02,0xc0,0x00,0x99,0x00,0x40,0x05,0x17,0x02,0x81,0x00, +0x01,0x03,0x00,0x00,0x05,0x02,0x81,0x00,0xb2,0x02,0xc0,0x02,0x19,0x02,0x80,0xc0, +0x01,0x03,0x00,0x00,0x06,0x03,0x00,0x00,0x20,0x02,0x81,0x40,0xb6,0x02,0xc0,0x00, +0x99,0x00,0x40,0x08,0x97,0x02,0x80,0x40,0x01,0x03,0x01,0x00,0x01,0x02,0x81,0x80, +0xa0,0x02,0x80,0x80,0x01,0x03,0x00,0xc0,0x01,0x02,0x81,0xc0,0xb3,0x02,0xc0,0x02, +0x19,0x02,0x80,0xc0,0x01,0x03,0x00,0x00,0x06,0x03,0x00,0x00,0x20,0x02,0x81,0xc0, +0xb3,0x02,0xc0,0x02,0x19,0x02,0x80,0x00,0x06,0x02,0x80,0x00,0x20,0x02,0x80,0x40, +0xaf,0x01,0x81,0x40,0x01,0x02,0xbf,0xee,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00, +0x29,0x17,0xb5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x06,0x6c, +0x65,0x6e,0x67,0x74,0x68,0x00,0x01,0x2d,0x00,0x02,0x5b,0x5d,0x00,0x01,0x2b,0x00, +0x02,0x3d,0x3d,0x00,0x02,0x3e,0x3d,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x01,0x3c, +0x40,0xc4,0x00,0x00,0x00,0x70,0x53,0x43,0x00,0x03,0x00,0x05,0x00,0x02,0x48,0x39, +0x00,0x00,0x00,0x10,0x00,0x00,0x00,0xa6,0x01,0x3f,0xff,0x83,0x00,0x40,0x03,0x17, +0x01,0x80,0x40,0x01,0x02,0x00,0x80,0x01,0x01,0x80,0x00,0xa0,0x01,0x80,0x80,0x01, +0x01,0x80,0x40,0xad,0x01,0x00,0xc0,0x01,0x01,0x80,0x80,0x01,0x02,0x00,0x00,0x06, +0x02,0x00,0xc0,0x20,0x01,0x80,0x80,0xb3,0x01,0xbf,0xfa,0x98,0x00,0x00,0x00,0x06, +0x00,0x00,0x00,0x29,0x8e,0x95,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04, +0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x01,0x2b,0x00,0x01,0x3c,0x00,0x06,0x6c,0x65, +0x6e,0x67,0x74,0x68,0x54,0xf1,0x00,0x00,0x00,0x40,0x53,0x43,0x00,0x02,0x00,0x04, +0x00,0x02,0x6f,0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xa6,0x01,0x00,0x00,0x06, +0x01,0x80,0x03,0x40,0x01,0x00,0x00,0x21,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29, +0xfa,0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x65,0x61, +0x63,0x68,0x5f,0x69,0x6e,0x64,0x65,0x78,0xb6,0xf5,0x00,0x00,0x00,0x57,0x53,0x43, +0x00,0x03,0x00,0x07,0x00,0x02,0x68,0x7b,0x00,0x00,0x00,0x0b,0x02,0x00,0x00,0x26, +0x01,0x80,0x40,0x15,0x02,0x00,0x00,0x06,0x02,0x80,0x40,0x01,0x02,0x00,0x40,0xa0, +0x01,0x80,0x00,0xa0,0x02,0x00,0x00,0x06,0x02,0x80,0x40,0x01,0x03,0x00,0xc0,0x01, +0x02,0x00,0x81,0x20,0x01,0x80,0x00,0x29,0x75,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x03,0x00,0x04,0x63,0x61,0x6c,0x6c,0x00,0x02,0x5b,0x5d,0x00,0x03, +0x5b,0x5d,0x3d,0x3e,0x8a,0x00,0x00,0x01,0x8c,0x53,0x43,0x00,0x05,0x00,0x09,0x00, +0x02,0x3b,0x15,0x00,0x00,0x00,0x39,0x00,0x20,0x00,0xa6,0x00,0x40,0x01,0x17,0x00, +0x40,0x01,0x17,0x00,0x40,0x01,0x17,0x00,0xbf,0xff,0x83,0x01,0x00,0x00,0x05,0x02, +0x80,0x40,0x01,0x03,0x00,0x00,0x91,0x02,0x80,0x00,0xa0,0x02,0xc0,0x00,0x99,0x00, +0x40,0x02,0x17,0x02,0x80,0x00,0x06,0x03,0x00,0x01,0x91,0x03,0x80,0x00,0x3d,0x02, +0x80,0x81,0x20,0x02,0x80,0x40,0x01,0x03,0x3f,0xff,0x83,0x02,0x81,0x00,0xb3,0x02, +0xc0,0x02,0x19,0x02,0x80,0x00,0x06,0x03,0x00,0x02,0x91,0x03,0x80,0x00,0xbd,0x02, +0x80,0x81,0x20,0x02,0x80,0x00,0x06,0x02,0x81,0x80,0x20,0x02,0x80,0x40,0x01,0x03, +0x3f,0xff,0x83,0x02,0x81,0xc0,0xb5,0x02,0xc0,0x0d,0x19,0x02,0x80,0x00,0x05,0x03, +0x00,0x00,0x06,0x03,0x80,0x40,0x01,0x03,0x82,0x40,0xaf,0x04,0x01,0x40,0x01,0x03, +0x02,0x01,0x20,0x02,0x3f,0xff,0x83,0x00,0x40,0x07,0x17,0x02,0x80,0xc0,0x01,0x02, +0xc0,0x02,0x19,0x02,0x80,0xc0,0x01,0x03,0x01,0x00,0x01,0x02,0x82,0x80,0xa0,0x00, +0x40,0x00,0x97,0x02,0x80,0x80,0x01,0x03,0x00,0x00,0x06,0x03,0x81,0x00,0x01,0x04, +0x01,0x40,0x01,0x03,0x02,0x01,0x20,0x02,0x81,0x00,0x01,0x02,0x82,0xc0,0xad,0x02, +0x01,0x40,0x01,0x02,0x81,0x00,0x01,0x03,0x00,0x40,0x01,0x02,0x81,0x00,0xb3,0x02, +0xbf,0xf7,0x18,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29,0x02,0x04,0x00,0x00,0x00, +0x02,0x11,0x00,0x21,0x65,0x78,0x70,0x65,0x63,0x74,0x65,0x64,0x20,0x49,0x6e,0x74, +0x65,0x67,0x65,0x72,0x20,0x66,0x6f,0x72,0x20,0x31,0x73,0x74,0x20,0x61,0x72,0x67, +0x75,0x6d,0x65,0x6e,0x74,0x11,0x00,0x13,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65, +0x20,0x61,0x72,0x72,0x61,0x79,0x20,0x73,0x69,0x7a,0x65,0x36,0xf1,0x00,0x00,0x00, +0x0c,0x00,0x08,0x6b,0x69,0x6e,0x64,0x5f,0x6f,0x66,0x3f,0x00,0x07,0x49,0x6e,0x74, +0x65,0x67,0x65,0x72,0x00,0x05,0x72,0x61,0x69,0x73,0x65,0x00,0x09,0x54,0x79,0x70, +0x65,0x45,0x72,0x72,0x6f,0x72,0x00,0x01,0x3c,0x00,0x0d,0x41,0x72,0x67,0x75,0x6d, +0x65,0x6e,0x74,0x45,0x72,0x72,0x6f,0x72,0x00,0x05,0x63,0x6c,0x65,0x61,0x72,0x00, +0x01,0x3e,0x00,0x03,0x5b,0x5d,0x3d,0x00,0x01,0x2d,0x00,0x04,0x63,0x61,0x6c,0x6c, +0x00,0x01,0x2b,0x53,0xdf,0x00,0x00,0x00,0x90,0x53,0x43,0x00,0x05,0x00,0x07,0x00, +0x02,0xda,0xdb,0x00,0x00,0x00,0x16,0x02,0x00,0x00,0xa6,0x00,0x40,0x02,0x17,0x02, +0x80,0x00,0x06,0x03,0x00,0xc0,0x01,0x02,0x80,0x00,0xa0,0x02,0x00,0x40,0x01,0x02, +0x80,0x00,0x06,0x03,0x00,0x40,0x01,0x02,0x80,0x40,0xa0,0x01,0x81,0x40,0x01,0x02, +0xbf,0xfb,0x98,0x02,0x81,0x00,0x01,0x03,0x00,0x00,0x05,0x02,0x80,0x80,0xb2,0x02, +0xc0,0x00,0x99,0x02,0x80,0x80,0x01,0x02,0xc0,0x01,0x99,0x02,0x80,0x80,0x01,0x02, +0x80,0xc0,0x20,0x00,0x40,0x00,0x97,0x02,0x81,0x00,0x01,0x02,0x80,0x00,0x29,0x67, +0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x09,0x64,0x65,0x6c, +0x65,0x74,0x65,0x5f,0x61,0x74,0x00,0x05,0x69,0x6e,0x64,0x65,0x78,0x00,0x02,0x3d, +0x3d,0x00,0x04,0x63,0x61,0x6c,0x6c,0x30,0x9c,0x00,0x00,0x00,0x24,0x53,0x43,0x00, +0x01,0x00,0x02,0x00,0x02,0x56,0xbe,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x05,0x00, +0x00,0x00,0x29,0x8b,0x3a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x24,0x53,0x43,0x00,0x01,0x00,0x02,0x00,0x02,0x56,0xbe,0x00, +0x00,0x00,0x02,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x8b,0x3a,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x53,0x43,0x00, +0x01,0x00,0x03,0x00,0x02,0x46,0x9f,0x00,0x00,0x00,0x0b,0x00,0x80,0x00,0x06,0x01, +0x00,0x00,0x91,0x00,0x80,0x00,0xa0,0x00,0x80,0x00,0x06,0x01,0x00,0x01,0x11,0x00, +0x80,0x00,0xa0,0x00,0x80,0x00,0x48,0x01,0x00,0x02,0xc0,0x00,0x80,0xc0,0x46,0x00, +0x00,0x00,0x05,0x00,0x00,0x00,0x29,0x51,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x04,0x00,0x07,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x00,0x0a,0x45,0x6e, +0x75,0x6d,0x65,0x72,0x61,0x62,0x6c,0x65,0x00,0x0a,0x43,0x6f,0x6d,0x70,0x61,0x72, +0x61,0x62,0x6c,0x65,0x00,0x05,0x73,0x6f,0x72,0x74,0x21,0xd1,0xed,0x00,0x00,0x00, +0x47,0x53,0x43,0x00,0x02,0x00,0x05,0x00,0x02,0x7f,0x09,0x00,0x00,0x00,0x07,0x00, +0x00,0x00,0xa6,0x01,0x00,0x00,0x06,0x01,0x80,0x00,0x06,0x02,0x00,0x40,0x01,0x01, +0x80,0x40,0x21,0x01,0x00,0x00,0xa0,0x01,0x00,0x00,0x29,0x40,0x81,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,0x72,0x65,0x70,0x6c,0x61,0x63,0x65, +0x00,0x04,0x73,0x6f,0x72,0x74,0x95,0xe4,0x00,0x00,0x00,0x00, }; Renamed: vendor/mruby-4728070/src/mruby_core.rake (+1 -1) 94% =================================================================== --- vendor/mruby-b5830ae/src/mruby_core.rake 2013-01-16 18:58:35 +0900 (bc84ed6) +++ vendor/mruby-4728070/src/mruby_core.rake 2013-01-17 11:30:40 +0900 (7db1dbf) @@ -6,7 +6,7 @@ MRuby.each_target do self.libmruby << objs file "#{build_dir}/lib/libmruby_core.a" => objs do |t| - archive t.name, 'r', t.prerequisites + archive t.name, 'rs', t.prerequisites end # Parser Renamed: vendor/mruby-4728070/src/name2ctype.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/node.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/numeric.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/object.c (+16 -16) 96% =================================================================== --- vendor/mruby-b5830ae/src/object.c 2013-01-16 18:58:35 +0900 (51b5c12) +++ vendor/mruby-4728070/src/object.c 2013-01-17 11:30:40 +0900 (99034e3) @@ -112,10 +112,10 @@ nil_inspect(mrb_state *mrb, mrb_value obj) static mrb_value true_and(mrb_state *mrb, mrb_value obj) { - mrb_value obj2; + int obj2; - mrb_get_args(mrb, "o", &obj2); - return mrb_test(obj2)?mrb_true_value():mrb_false_value(); + mrb_get_args(mrb, "b", &obj2); + return obj2 ? mrb_true_value() : mrb_false_value(); } /* 15.2.5.3.2 */ @@ -131,10 +131,10 @@ true_and(mrb_state *mrb, mrb_value obj) static mrb_value true_xor(mrb_state *mrb, mrb_value obj) { - mrb_value obj2; + int obj2; - mrb_get_args(mrb, "o", &obj2); - return mrb_test(obj2)?mrb_false_value():mrb_true_value(); + mrb_get_args(mrb, "b", &obj2); + return obj2 ? mrb_false_value() : mrb_true_value(); } /* 15.2.5.3.3 */ @@ -171,9 +171,9 @@ true_to_s(mrb_state *mrb, mrb_value obj) static mrb_value true_or(mrb_state *mrb, mrb_value obj) { - mrb_value obj2; + int obj2; - mrb_get_args(mrb, "o", &obj2); + mrb_get_args(mrb, "b", &obj2); return mrb_true_value(); } @@ -202,9 +202,9 @@ true_or(mrb_state *mrb, mrb_value obj) static mrb_value false_and(mrb_state *mrb, mrb_value obj) { - mrb_value obj2; + int obj2; - mrb_get_args(mrb, "o", &obj2); + mrb_get_args(mrb, "b", &obj2); return mrb_false_value(); } @@ -224,10 +224,10 @@ false_and(mrb_state *mrb, mrb_value obj) static mrb_value false_xor(mrb_state *mrb, mrb_value obj) { - mrb_value obj2; + int obj2; - mrb_get_args(mrb, "o", &obj2); - return mrb_test(obj2)?mrb_true_value():mrb_false_value(); + mrb_get_args(mrb, "b", &obj2); + return obj2 ? mrb_true_value() : mrb_false_value(); } /* 15.2.4.3.3 */ @@ -244,10 +244,10 @@ false_xor(mrb_state *mrb, mrb_value obj) static mrb_value false_or(mrb_state *mrb, mrb_value obj) { - mrb_value obj2; + int obj2; - mrb_get_args(mrb, "o", &obj2); - return mrb_test(obj2)?mrb_true_value():mrb_false_value(); + mrb_get_args(mrb, "b", &obj2); + return obj2 ? mrb_true_value() : mrb_false_value(); } /* 15.2.6.3.3 */ Renamed: vendor/mruby-4728070/src/oniguruma.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/opcode.h (+0 -0) 100% =================================================================== Added: vendor/mruby-4728070/src/parse.c (+11656 -0) 100644 =================================================================== --- /dev/null +++ vendor/mruby-4728070/src/parse.c 2013-01-17 11:30:40 +0900 (d1c43fa) @@ -0,0 +1,11656 @@ +/* A Bison parser, made by GNU Bison 2.5. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.5" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + + + +/* Copy the first part of user declarations. */ + +/* Line 268 of yacc.c */ +#line 7 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + +#undef PARSER_TEST +#undef PARSER_DEBUG + +#define YYDEBUG 1 +#define YYERROR_VERBOSE 1 +/* + * Force yacc to use our memory management. This is a little evil because + * the macros assume that "parser_state *p" is in scope + */ +#define YYMALLOC(n) mrb_malloc(p->mrb, (n)) +#define YYFREE(o) mrb_free(p->mrb, (o)) +#define YYSTACK_USE_ALLOCA 0 + +#include "mruby.h" +#include "mruby/compile.h" +#include "mruby/proc.h" +#include "node.h" + +#include <stdio.h> +#include <errno.h> +#include <ctype.h> +#include <string.h> + +#define YYLEX_PARAM p + +typedef mrb_ast_node node; +typedef struct mrb_parser_state parser_state; + +static int yylex(void *lval, parser_state *p); +static void yyerror(parser_state *p, const char *s); +static void yywarn(parser_state *p, const char *s); +static void yywarning(parser_state *p, const char *s); +static void backref_error(parser_state *p, node *n); + +#define identchar(c) (isalnum(c) || (c) == '_' || !isascii(c)) + +typedef unsigned int stack_type; + +#define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1)) +#define BITSTACK_POP(stack) ((stack) = (stack) >> 1) +#define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1)) +#define BITSTACK_SET_P(stack) ((stack)&1) + +#define COND_PUSH(n) BITSTACK_PUSH(p->cond_stack, (n)) +#define COND_POP() BITSTACK_POP(p->cond_stack) +#define COND_LEXPOP() BITSTACK_LEXPOP(p->cond_stack) +#define COND_P() BITSTACK_SET_P(p->cond_stack) + +#define CMDARG_PUSH(n) BITSTACK_PUSH(p->cmdarg_stack, (n)) +#define CMDARG_POP() BITSTACK_POP(p->cmdarg_stack) +#define CMDARG_LEXPOP() BITSTACK_LEXPOP(p->cmdarg_stack) +#define CMDARG_P() BITSTACK_SET_P(p->cmdarg_stack) + +#define sym(x) ((mrb_sym)(intptr_t)(x)) +#define nsym(x) ((node*)(intptr_t)(x)) + +static mrb_sym +intern_gen(parser_state *p, const char *s) +{ + return mrb_intern(p->mrb, s); +} +#define intern(s) intern_gen(p,(s)) + +static void +cons_free_gen(parser_state *p, node *cons) +{ + cons->cdr = p->cells; + p->cells = cons; +} +#define cons_free(c) cons_free_gen(p, (c)) + +static void* +parser_palloc(parser_state *p, size_t size) +{ + void *m = mrb_pool_alloc(p->pool, size); + + if (!m) { + longjmp(p->jmp, 1); + } + return m; +} + +static node* +cons_gen(parser_state *p, node *car, node *cdr) +{ + node *c; + + if (p->cells) { + c = p->cells; + p->cells = p->cells->cdr; + } + else { + c = (node *)parser_palloc(p, sizeof(mrb_ast_node)); + } + + c->car = car; + c->cdr = cdr; + c->lineno = p->lineno; + return c; +} +#define cons(a,b) cons_gen(p,(a),(b)) + +static node* +list1_gen(parser_state *p, node *a) +{ + return cons(a, 0); +} +#define list1(a) list1_gen(p, (a)) + +static node* +list2_gen(parser_state *p, node *a, node *b) +{ + return cons(a, cons(b,0)); +} +#define list2(a,b) list2_gen(p, (a),(b)) + +static node* +list3_gen(parser_state *p, node *a, node *b, node *c) +{ + return cons(a, cons(b, cons(c,0))); +} +#define list3(a,b,c) list3_gen(p, (a),(b),(c)) + +static node* +list4_gen(parser_state *p, node *a, node *b, node *c, node *d) +{ + return cons(a, cons(b, cons(c, cons(d, 0)))); +} +#define list4(a,b,c,d) list4_gen(p, (a),(b),(c),(d)) + +static node* +list5_gen(parser_state *p, node *a, node *b, node *c, node *d, node *e) +{ + return cons(a, cons(b, cons(c, cons(d, cons(e, 0))))); +} +#define list5(a,b,c,d,e) list5_gen(p, (a),(b),(c),(d),(e)) + +static node* +list6_gen(parser_state *p, node *a, node *b, node *c, node *d, node *e, node *f) +{ + return cons(a, cons(b, cons(c, cons(d, cons(e, cons(f, 0)))))); +} +#define list6(a,b,c,d,e,f) list6_gen(p, (a),(b),(c),(d),(e),(f)) + +static node* +append_gen(parser_state *p, node *a, node *b) +{ + node *c = a; + + if (!a) return b; + while (c->cdr) { + c = c->cdr; + } + if (b) { + c->cdr = b; + } + return a; +} +#define append(a,b) append_gen(p,(a),(b)) +#define push(a,b) append_gen(p,(a),list1(b)) + +static char* +parser_strndup(parser_state *p, const char *s, size_t len) +{ + char *b = (char *)parser_palloc(p, len+1); + + memcpy(b, s, len); + b[len] = '\0'; + return b; +} +#define strndup(s,len) parser_strndup(p, s, len) + +static char* +parser_strdup(parser_state *p, const char *s) +{ + return parser_strndup(p, s, strlen(s)); +} +#undef strdup +#define strdup(s) parser_strdup(p, s) + +// xxx ----------------------------- + +static node* +local_switch(parser_state *p) +{ + node *prev = p->locals; + + p->locals = cons(0, 0); + return prev; +} + +static void +local_resume(parser_state *p, node *prev) +{ + p->locals = prev; +} + +static void +local_nest(parser_state *p) +{ + p->locals = cons(0, p->locals); +} + +static void +local_unnest(parser_state *p) +{ + p->locals = p->locals->cdr; +} + +static int +local_var_p(parser_state *p, mrb_sym sym) +{ + node *l = p->locals; + + while (l) { + node *n = l->car; + while (n) { + if (sym(n->car) == sym) return 1; + n = n->cdr; + } + l = l->cdr; + } + return 0; +} + +static void +local_add_f(parser_state *p, mrb_sym sym) +{ + p->locals->car = push(p->locals->car, nsym(sym)); +} + +static void +local_add(parser_state *p, mrb_sym sym) +{ + if (!local_var_p(p, sym)) { + local_add_f(p, sym); + } +} + +// (:scope (vars..) (prog...)) +static node* +new_scope(parser_state *p, node *body) +{ + return cons((node*)NODE_SCOPE, cons(p->locals->car, body)); +} + +// (:begin prog...) +static node* +new_begin(parser_state *p, node *body) +{ + if (body) + return list2((node*)NODE_BEGIN, body); + return cons((node*)NODE_BEGIN, 0); +} + +#define newline_node(n) (n) + +// (:rescue body rescue else) +static node* +new_rescue(parser_state *p, node *body, node *resq, node *els) +{ + return list4((node*)NODE_RESCUE, body, resq, els); +} + +// (:ensure body ensure) +static node* +new_ensure(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_ENSURE, cons(a, cons(0, b))); +} + +// (:nil) +static node* +new_nil(parser_state *p) +{ + return list1((node*)NODE_NIL); +} + +// (:true) +static node* +new_true(parser_state *p) +{ + return list1((node*)NODE_TRUE); +} + +// (:false) +static node* +new_false(parser_state *p) +{ + return list1((node*)NODE_FALSE); +} + +// (:alias new old) +static node* +new_alias(parser_state *p, mrb_sym a, mrb_sym b) +{ + return cons((node*)NODE_ALIAS, cons(nsym(a), nsym(b))); +} + +// (:if cond then else) +static node* +new_if(parser_state *p, node *a, node *b, node *c) +{ + return list4((node*)NODE_IF, a, b, c); +} + +// (:unless cond then else) +static node* +new_unless(parser_state *p, node *a, node *b, node *c) +{ + return list4((node*)NODE_IF, a, c, b); +} + +// (:while cond body) +static node* +new_while(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_WHILE, cons(a, b)); +} + +// (:until cond body) +static node* +new_until(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_UNTIL, cons(a, b)); +} + +// (:for var obj body) +static node* +new_for(parser_state *p, node *v, node *o, node *b) +{ + return list4((node*)NODE_FOR, v, o, b); +} + +// (:case a ((when ...) body) ((when...) body)) +static node* +new_case(parser_state *p, node *a, node *b) +{ + node *n = list2((node*)NODE_CASE, a); + node *n2 = n; + + while (n2->cdr) { + n2 = n2->cdr; + } + n2->cdr = b; + return n; +} + +// (:postexe a) +static node* +new_postexe(parser_state *p, node *a) +{ + return cons((node*)NODE_POSTEXE, a); +} + +// (:self) +static node* +new_self(parser_state *p) +{ + return list1((node*)NODE_SELF); +} + +// (:call a b c) +static node* +new_call(parser_state *p, node *a, mrb_sym b, node *c) +{ + return list4((node*)NODE_CALL, a, nsym(b), c); +} + +// (:fcall self mid args) +static node* +new_fcall(parser_state *p, mrb_sym b, node *c) +{ + return list4((node*)NODE_FCALL, new_self(p), nsym(b), c); +} + +#if 0 +// (:vcall self mid) +static node* +new_vcall(parser_state *p, mrb_sym b) +{ + return list3((node*)NODE_VCALL, new_self(p), (node*)b); +} +#endif + +// (:super . c) +static node* +new_super(parser_state *p, node *c) +{ + return cons((node*)NODE_SUPER, c); +} + +// (:zsuper) +static node* +new_zsuper(parser_state *p) +{ + return list1((node*)NODE_ZSUPER); +} + +// (:yield . c) +static node* +new_yield(parser_state *p, node *c) +{ + if (c) { + if (c->cdr) { + yyerror(p, "both block arg and actual block given"); + } + return cons((node*)NODE_YIELD, c->car); + } + return cons((node*)NODE_YIELD, 0); +} + +// (:return . c) +static node* +new_return(parser_state *p, node *c) +{ + return cons((node*)NODE_RETURN, c); +} + +// (:break . c) +static node* +new_break(parser_state *p, node *c) +{ + return cons((node*)NODE_BREAK, c); +} + +// (:next . c) +static node* +new_next(parser_state *p, node *c) +{ + return cons((node*)NODE_NEXT, c); +} + +// (:redo) +static node* +new_redo(parser_state *p) +{ + return list1((node*)NODE_REDO); +} + +// (:retry) +static node* +new_retry(parser_state *p) +{ + return list1((node*)NODE_RETRY); +} + +// (:dot2 a b) +static node* +new_dot2(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_DOT2, cons(a, b)); +} + +// (:dot3 a b) +static node* +new_dot3(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_DOT3, cons(a, b)); +} + +// (:colon2 b c) +static node* +new_colon2(parser_state *p, node *b, mrb_sym c) +{ + return cons((node*)NODE_COLON2, cons(b, nsym(c))); +} + +// (:colon3 . c) +static node* +new_colon3(parser_state *p, mrb_sym c) +{ + return cons((node*)NODE_COLON3, nsym(c)); +} + +// (:and a b) +static node* +new_and(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_AND, cons(a, b)); +} + +// (:or a b) +static node* +new_or(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_OR, cons(a, b)); +} + +// (:array a...) +static node* +new_array(parser_state *p, node *a) +{ + return cons((node*)NODE_ARRAY, a); +} + +// (:splat . a) +static node* +new_splat(parser_state *p, node *a) +{ + return cons((node*)NODE_SPLAT, a); +} + +// (:hash (k . v) (k . v)...) +static node* +new_hash(parser_state *p, node *a) +{ + return cons((node*)NODE_HASH, a); +} + +// (:sym . a) +static node* +new_sym(parser_state *p, mrb_sym sym) +{ + return cons((node*)NODE_SYM, nsym(sym)); +} + +static mrb_sym +new_strsym(parser_state *p, node* str) +{ + const char *s = (const char*)str->cdr->car; + size_t len = (size_t)str->cdr->cdr; + + return mrb_intern2(p->mrb, s, len); +} + +// (:lvar . a) +static node* +new_lvar(parser_state *p, mrb_sym sym) +{ + return cons((node*)NODE_LVAR, nsym(sym)); +} + +// (:gvar . a) +static node* +new_gvar(parser_state *p, mrb_sym sym) +{ + return cons((node*)NODE_GVAR, nsym(sym)); +} + +// (:ivar . a) +static node* +new_ivar(parser_state *p, mrb_sym sym) +{ + return cons((node*)NODE_IVAR, nsym(sym)); +} + +// (:cvar . a) +static node* +new_cvar(parser_state *p, mrb_sym sym) +{ + return cons((node*)NODE_CVAR, nsym(sym)); +} + +// (:const . a) +static node* +new_const(parser_state *p, mrb_sym sym) +{ + return cons((node*)NODE_CONST, nsym(sym)); +} + +// (:undef a...) +static node* +new_undef(parser_state *p, mrb_sym sym) +{ + return cons((node*)NODE_UNDEF, nsym(sym)); +} + +// (:class class super body) +static node* +new_class(parser_state *p, node *c, node *s, node *b) +{ + return list4((node*)NODE_CLASS, c, s, cons(p->locals->car, b)); +} + +// (:sclass obj body) +static node* +new_sclass(parser_state *p, node *o, node *b) +{ + return list3((node*)NODE_SCLASS, o, cons(p->locals->car, b)); +} + +// (:module module body) +static node* +new_module(parser_state *p, node *m, node *b) +{ + return list3((node*)NODE_MODULE, m, cons(p->locals->car, b)); +} + +// (:def m lv (arg . body)) +static node* +new_def(parser_state *p, mrb_sym m, node *a, node *b) +{ + return list5((node*)NODE_DEF, nsym(m), p->locals->car, a, b); +} + +// (:sdef obj m lv (arg . body)) +static node* +new_sdef(parser_state *p, node *o, mrb_sym m, node *a, node *b) +{ + return list6((node*)NODE_SDEF, o, nsym(m), p->locals->car, a, b); +} + +// (:arg . sym) +static node* +new_arg(parser_state *p, mrb_sym sym) +{ + return cons((node*)NODE_ARG, nsym(sym)); +} + +// (m o r m2 b) +// m: (a b c) +// o: ((a . e1) (b . e2)) +// r: a +// m2: (a b c) +// b: a +static node* +new_args(parser_state *p, node *m, node *opt, mrb_sym rest, node *m2, mrb_sym blk) +{ + node *n; + + n = cons(m2, nsym(blk)); + n = cons(nsym(rest), n); + n = cons(opt, n); + return cons(m, n); +} + +// (:block_arg . a) +static node* +new_block_arg(parser_state *p, node *a) +{ + return cons((node*)NODE_BLOCK_ARG, a); +} + +// (:block arg body) +static node* +new_block(parser_state *p, node *a, node *b) +{ + return list4((node*)NODE_BLOCK, p->locals->car, a, b); +} + +// (:lambda arg body) +static node* +new_lambda(parser_state *p, node *a, node *b) +{ + return list4((node*)NODE_LAMBDA, p->locals->car, a, b); +} + +// (:asgn lhs rhs) +static node* +new_asgn(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_ASGN, cons(a, b)); +} + +// (:masgn mlhs=(pre rest post) mrhs) +static node* +new_masgn(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_MASGN, cons(a, b)); +} + +// (:asgn lhs rhs) +static node* +new_op_asgn(parser_state *p, node *a, mrb_sym op, node *b) +{ + return list4((node*)NODE_OP_ASGN, a, nsym(op), b); +} + +// (:int . i) +static node* +new_int(parser_state *p, const char *s, int base) +{ + return list3((node*)NODE_INT, (node*)strdup(s), (node*)(intptr_t)base); +} + +// (:float . i) +static node* +new_float(parser_state *p, const char *s) +{ + return cons((node*)NODE_FLOAT, (node*)strdup(s)); +} + +// (:str . (s . len)) +static node* +new_str(parser_state *p, const char *s, int len) +{ + return cons((node*)NODE_STR, cons((node*)strndup(s, len), (node*)(intptr_t)len)); +} + +// (:dstr . a) +static node* +new_dstr(parser_state *p, node *a) +{ + return cons((node*)NODE_DSTR, a); +} + +// (:dsym . a) +static node* +new_dsym(parser_state *p, node *a) +{ + return cons((node*)NODE_DSYM, new_dstr(p, a)); +} + +// (:backref . n) +static node* +new_back_ref(parser_state *p, int n) +{ + return cons((node*)NODE_BACK_REF, (node*)(intptr_t)n); +} + +// (:nthref . n) +static node* +new_nth_ref(parser_state *p, int n) +{ + return cons((node*)NODE_NTH_REF, (node*)(intptr_t)n); +} + +static void +new_bv(parser_state *p, mrb_sym id) +{ +} + +// xxx ----------------------------- + +// (:call a op) +static node* +call_uni_op(parser_state *p, node *recv, char *m) +{ + return new_call(p, recv, intern(m), 0); +} + +// (:call a op b) +static node* +call_bin_op(parser_state *p, node *recv, char *m, node *arg1) +{ + return new_call(p, recv, intern(m), list1(list1(arg1))); +} + +// (:match (a . b)) +static node* +match_op(parser_state *p, node *a, node *b) +{ + return cons((node*)NODE_MATCH, cons((node*)a, (node*)b)); +} + + +static void +args_with_block(parser_state *p, node *a, node *b) +{ + if (b) { + if (a->cdr) { + yyerror(p, "both block arg and actual block given"); + } + a->cdr = b; + } +} + +static void +call_with_block(parser_state *p, node *a, node *b) +{ + node *n; + + if (a->car == (node*)NODE_SUPER || + a->car == (node*)NODE_ZSUPER) { + if (!a->cdr) a->cdr = cons(0, b); + else { + args_with_block(p, a->cdr, b); + } + } + else { + n = a->cdr->cdr->cdr; + if (!n->car) n->car = cons(0, b); + else { + args_with_block(p, n->car, b); + } + } +} + +static node* +negate_lit(parser_state *p, node *n) +{ + return cons((node*)NODE_NEGATE, n); +} + +static node* +cond(node *n) +{ + return n; +} + +static node* +ret_args(parser_state *p, node *n) +{ + if (n->cdr) { + yyerror(p, "block argument should not be given"); + } + if (!n->car->cdr) return n->car->car; + return new_array(p, n->car); +} + +static void +assignable(parser_state *p, node *lhs) +{ + if ((int)(intptr_t)lhs->car == NODE_LVAR) { + local_add(p, sym(lhs->cdr)); + } +} + +static node* +var_reference(parser_state *p, node *lhs) +{ + node *n; + + if ((int)(intptr_t)lhs->car == NODE_LVAR) { + if (!local_var_p(p, sym(lhs->cdr))) { + n = new_fcall(p, sym(lhs->cdr), 0); + cons_free(lhs); + return n; + } + } + + return lhs; +} + +// xxx ----------------------------- + + + +/* Line 268 of yacc.c */ +#line 902 "build/host//home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/y.tab.c" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + keyword_class = 258, + keyword_module = 259, + keyword_def = 260, + keyword_undef = 261, + keyword_begin = 262, + keyword_rescue = 263, + keyword_ensure = 264, + keyword_end = 265, + keyword_if = 266, + keyword_unless = 267, + keyword_then = 268, + keyword_elsif = 269, + keyword_else = 270, + keyword_case = 271, + keyword_when = 272, + keyword_while = 273, + keyword_until = 274, + keyword_for = 275, + keyword_break = 276, + keyword_next = 277, + keyword_redo = 278, + keyword_retry = 279, + keyword_in = 280, + keyword_do = 281, + keyword_do_cond = 282, + keyword_do_block = 283, + keyword_do_LAMBDA = 284, + keyword_return = 285, + keyword_yield = 286, + keyword_super = 287, + keyword_self = 288, + keyword_nil = 289, + keyword_true = 290, + keyword_false = 291, + keyword_and = 292, + keyword_or = 293, + keyword_not = 294, + modifier_if = 295, + modifier_unless = 296, + modifier_while = 297, + modifier_until = 298, + modifier_rescue = 299, + keyword_alias = 300, + keyword_BEGIN = 301, + keyword_END = 302, + keyword__LINE__ = 303, + keyword__FILE__ = 304, + keyword__ENCODING__ = 305, + tIDENTIFIER = 306, + tFID = 307, + tGVAR = 308, + tIVAR = 309, + tCONSTANT = 310, + tCVAR = 311, + tLABEL = 312, + tINTEGER = 313, + tFLOAT = 314, + tCHAR = 315, + tREGEXP = 316, + tSTRING = 317, + tSTRING_PART = 318, + tNTH_REF = 319, + tBACK_REF = 320, + tREGEXP_END = 321, + tUPLUS = 322, + tUMINUS = 323, + tPOW = 324, + tCMP = 325, + tEQ = 326, + tEQQ = 327, + tNEQ = 328, + tGEQ = 329, + tLEQ = 330, + tANDOP = 331, + tOROP = 332, + tMATCH = 333, + tNMATCH = 334, + tDOT2 = 335, + tDOT3 = 336, + tAREF = 337, + tASET = 338, + tLSHFT = 339, + tRSHFT = 340, + tCOLON2 = 341, + tCOLON3 = 342, + tOP_ASGN = 343, + tASSOC = 344, + tLPAREN = 345, + tLPAREN_ARG = 346, + tRPAREN = 347, + tLBRACK = 348, + tLBRACE = 349, + tLBRACE_ARG = 350, + tSTAR = 351, + tAMPER = 352, + tLAMBDA = 353, + tSYMBEG = 354, + tREGEXP_BEG = 355, + tWORDS_BEG = 356, + tQWORDS_BEG = 357, + tSTRING_BEG = 358, + tSTRING_DVAR = 359, + tLAMBEG = 360, + tLOWEST = 361, + tUMINUS_NUM = 362, + idNULL = 363, + idRespond_to = 364, + idIFUNC = 365, + idCFUNC = 366, + id_core_set_method_alias = 367, + id_core_set_variable_alias = 368, + id_core_undef_method = 369, + id_core_define_method = 370, + id_core_define_singleton_method = 371, + id_core_set_postexe = 372, + tLAST_TOKEN = 373 + }; +#endif + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ + +/* Line 293 of yacc.c */ +#line 841 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + + node *nd; + mrb_sym id; + int num; + unsigned int stack; + const struct vtable *vars; + + + +/* Line 293 of yacc.c */ +#line 1066 "build/host//home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/y.tab.c" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +#endif + + +/* Copy the second part of user declarations. */ + + +/* Line 343 of yacc.c */ +#line 1078 "build/host//home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/y.tab.c" + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) +#else +static int +YYID (yyi) + int yyi; +#endif +{ + return yyi; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 3 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 10263 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 144 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 147 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 523 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 927 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 373 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 143, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 121, 2, 2, 2, 119, 114, 2, + 139, 140, 117, 115, 138, 116, 137, 118, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 109, 142, + 111, 107, 110, 108, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 136, 2, 141, 113, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 134, 112, 135, 122, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 120, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 4, 7, 10, 12, 14, 18, 21, + 23, 24, 30, 35, 38, 40, 42, 46, 49, 50, + 55, 58, 62, 66, 70, 74, 78, 83, 85, 89, + 93, 100, 106, 112, 118, 124, 128, 132, 136, 140, + 142, 146, 150, 152, 156, 160, 164, 167, 169, 171, + 173, 175, 177, 182, 183, 189, 192, 196, 201, 207, + 212, 218, 221, 224, 227, 230, 233, 235, 239, 241, + 245, 247, 250, 254, 260, 263, 268, 271, 276, 278, + 282, 284, 288, 291, 295, 297, 300, 302, 307, 311, + 315, 319, 323, 326, 328, 330, 335, 339, 343, 347, + 351, 354, 356, 358, 360, 363, 365, 369, 371, 373, + 375, 377, 379, 381, 383, 385, 387, 388, 393, 395, + 397, 399, 401, 403, 405, 407, 409, 411, 413, 415, + 417, 419, 421, 423, 425, 427, 429, 431, 433, 435, + 437, 439, 441, 443, 445, 447, 449, 451, 453, 455, + 457, 459, 461, 463, 465, 467, 469, 471, 473, 475, + 477, 479, 481, 483, 485, 487, 489, 491, 493, 495, + 497, 499, 501, 503, 505, 507, 509, 511, 513, 515, + 517, 519, 521, 523, 525, 527, 529, 533, 539, 543, + 549, 556, 562, 568, 574, 580, 585, 589, 593, 597, + 601, 605, 609, 613, 617, 621, 626, 631, 634, 637, + 641, 645, 649, 653, 657, 661, 665, 669, 673, 677, + 681, 685, 689, 692, 695, 699, 703, 707, 711, 718, + 720, 722, 724, 727, 732, 735, 739, 741, 743, 745, + 747, 750, 755, 758, 760, 763, 766, 771, 773, 774, + 777, 780, 783, 785, 787, 790, 794, 799, 803, 808, + 811, 813, 815, 817, 819, 821, 823, 824, 829, 830, + 835, 836, 840, 844, 848, 851, 855, 859, 861, 866, + 870, 872, 877, 881, 884, 886, 889, 890, 895, 902, + 909, 910, 911, 919, 920, 921, 929, 935, 940, 941, + 942, 952, 953, 960, 961, 962, 971, 972, 978, 979, + 986, 987, 988, 998, 1000, 1002, 1004, 1006, 1008, 1010, + 1012, 1015, 1017, 1019, 1021, 1027, 1029, 1032, 1034, 1036, + 1038, 1042, 1044, 1048, 1050, 1055, 1062, 1066, 1072, 1075, + 1080, 1082, 1086, 1093, 1102, 1107, 1114, 1119, 1122, 1129, + 1132, 1137, 1144, 1147, 1152, 1155, 1160, 1162, 1164, 1166, + 1170, 1172, 1177, 1179, 1184, 1186, 1190, 1192, 1194, 1199, + 1201, 1205, 1209, 1210, 1216, 1219, 1224, 1230, 1236, 1239, + 1244, 1249, 1253, 1257, 1261, 1264, 1266, 1271, 1272, 1278, + 1279, 1285, 1291, 1293, 1295, 1302, 1304, 1306, 1308, 1310, + 1313, 1315, 1318, 1320, 1322, 1324, 1326, 1328, 1331, 1335, + 1336, 1341, 1342, 1348, 1350, 1352, 1357, 1360, 1362, 1364, + 1366, 1368, 1370, 1373, 1375, 1377, 1380, 1383, 1385, 1387, + 1389, 1391, 1393, 1395, 1397, 1399, 1401, 1403, 1405, 1407, + 1409, 1411, 1413, 1415, 1416, 1421, 1424, 1428, 1431, 1438, + 1447, 1452, 1459, 1464, 1471, 1474, 1479, 1486, 1489, 1494, + 1497, 1502, 1504, 1505, 1507, 1509, 1511, 1513, 1515, 1517, + 1519, 1523, 1525, 1529, 1533, 1537, 1539, 1543, 1545, 1549, + 1551, 1553, 1556, 1558, 1560, 1562, 1565, 1568, 1570, 1572, + 1573, 1578, 1580, 1583, 1585, 1589, 1593, 1596, 1598, 1600, + 1602, 1604, 1606, 1608, 1610, 1612, 1614, 1616, 1618, 1620, + 1621, 1623, 1624, 1626, 1629, 1632, 1633, 1635, 1637, 1639, + 1641, 1643, 1645, 1648 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 145, 0, -1, -1, 146, 147, -1, 148, 282, -1, + 290, -1, 149, -1, 148, 289, 149, -1, 1, 149, + -1, 154, -1, -1, 46, 150, 134, 147, 135, -1, + 152, 238, 216, 241, -1, 153, 282, -1, 290, -1, + 154, -1, 153, 289, 154, -1, 1, 154, -1, -1, + 45, 175, 155, 175, -1, 6, 177, -1, 154, 40, + 158, -1, 154, 41, 158, -1, 154, 42, 158, -1, + 154, 43, 158, -1, 154, 44, 154, -1, 47, 134, + 152, 135, -1, 156, -1, 164, 107, 159, -1, 253, + 88, 159, -1, 212, 136, 186, 285, 88, 159, -1, + 212, 137, 51, 88, 159, -1, 212, 137, 55, 88, + 159, -1, 212, 86, 55, 88, 159, -1, 212, 86, + 51, 88, 159, -1, 255, 88, 159, -1, 171, 107, + 193, -1, 164, 107, 182, -1, 164, 107, 193, -1, + 157, -1, 171, 107, 159, -1, 171, 107, 156, -1, + 159, -1, 157, 37, 157, -1, 157, 38, 157, -1, + 39, 283, 157, -1, 121, 159, -1, 181, -1, 157, + -1, 163, -1, 160, -1, 231, -1, 231, 281, 279, + 188, -1, -1, 95, 162, 222, 152, 135, -1, 278, + 188, -1, 278, 188, 161, -1, 212, 137, 279, 188, + -1, 212, 137, 279, 188, 161, -1, 212, 86, 279, + 188, -1, 212, 86, 279, 188, 161, -1, 32, 188, + -1, 31, 188, -1, 30, 187, -1, 21, 187, -1, + 22, 187, -1, 166, -1, 90, 165, 284, -1, 166, + -1, 90, 165, 284, -1, 168, -1, 168, 167, -1, + 168, 96, 170, -1, 168, 96, 170, 138, 169, -1, + 168, 96, -1, 168, 96, 138, 169, -1, 96, 170, + -1, 96, 170, 138, 169, -1, 96, -1, 96, 138, + 169, -1, 170, -1, 90, 165, 284, -1, 167, 138, + -1, 168, 167, 138, -1, 167, -1, 168, 167, -1, + 252, -1, 212, 136, 186, 285, -1, 212, 137, 51, + -1, 212, 86, 51, -1, 212, 137, 55, -1, 212, + 86, 55, -1, 87, 55, -1, 255, -1, 252, -1, + 212, 136, 186, 285, -1, 212, 137, 51, -1, 212, + 86, 51, -1, 212, 137, 55, -1, 212, 86, 55, + -1, 87, 55, -1, 255, -1, 51, -1, 55, -1, + 87, 172, -1, 172, -1, 212, 86, 172, -1, 51, + -1, 55, -1, 52, -1, 179, -1, 180, -1, 174, + -1, 249, -1, 175, -1, 175, -1, -1, 177, 138, + 178, 176, -1, 112, -1, 113, -1, 114, -1, 70, + -1, 71, -1, 72, -1, 78, -1, 79, -1, 110, + -1, 74, -1, 111, -1, 75, -1, 73, -1, 84, + -1, 85, -1, 115, -1, 116, -1, 117, -1, 96, + -1, 118, -1, 119, -1, 69, -1, 121, -1, 122, + -1, 67, -1, 68, -1, 82, -1, 83, -1, 48, + -1, 49, -1, 50, -1, 46, -1, 47, -1, 45, + -1, 37, -1, 7, -1, 21, -1, 16, -1, 3, + -1, 5, -1, 26, -1, 15, -1, 14, -1, 10, + -1, 9, -1, 36, -1, 20, -1, 25, -1, 4, + -1, 22, -1, 34, -1, 39, -1, 38, -1, 23, + -1, 8, -1, 24, -1, 30, -1, 33, -1, 32, + -1, 13, -1, 35, -1, 6, -1, 17, -1, 31, + -1, 11, -1, 12, -1, 18, -1, 19, -1, 171, + 107, 181, -1, 171, 107, 181, 44, 181, -1, 253, + 88, 181, -1, 253, 88, 181, 44, 181, -1, 212, + 136, 186, 285, 88, 181, -1, 212, 137, 51, 88, + 181, -1, 212, 137, 55, 88, 181, -1, 212, 86, + 51, 88, 181, -1, 212, 86, 55, 88, 181, -1, + 87, 55, 88, 181, -1, 255, 88, 181, -1, 181, + 80, 181, -1, 181, 81, 181, -1, 181, 115, 181, + -1, 181, 116, 181, -1, 181, 117, 181, -1, 181, + 118, 181, -1, 181, 119, 181, -1, 181, 69, 181, + -1, 120, 58, 69, 181, -1, 120, 59, 69, 181, + -1, 67, 181, -1, 68, 181, -1, 181, 112, 181, + -1, 181, 113, 181, -1, 181, 114, 181, -1, 181, + 70, 181, -1, 181, 110, 181, -1, 181, 74, 181, + -1, 181, 111, 181, -1, 181, 75, 181, -1, 181, + 71, 181, -1, 181, 72, 181, -1, 181, 73, 181, + -1, 181, 78, 181, -1, 181, 79, 181, -1, 121, + 181, -1, 122, 181, -1, 181, 84, 181, -1, 181, + 85, 181, -1, 181, 76, 181, -1, 181, 77, 181, + -1, 181, 108, 181, 283, 109, 181, -1, 194, -1, + 181, -1, 290, -1, 192, 286, -1, 192, 138, 276, + 286, -1, 276, 286, -1, 139, 186, 284, -1, 290, + -1, 184, -1, 290, -1, 187, -1, 192, 138, -1, + 192, 138, 276, 138, -1, 276, 138, -1, 163, -1, + 192, 191, -1, 276, 191, -1, 192, 138, 276, 191, + -1, 190, -1, -1, 189, 187, -1, 97, 182, -1, + 138, 190, -1, 290, -1, 182, -1, 96, 182, -1, + 192, 138, 182, -1, 192, 138, 96, 182, -1, 192, + 138, 182, -1, 192, 138, 96, 182, -1, 96, 182, + -1, 242, -1, 243, -1, 247, -1, 254, -1, 255, + -1, 52, -1, -1, 7, 195, 151, 10, -1, -1, + 91, 157, 196, 284, -1, -1, 91, 197, 284, -1, + 90, 152, 140, -1, 212, 86, 55, -1, 87, 55, + -1, 93, 183, 141, -1, 94, 275, 135, -1, 30, + -1, 31, 139, 187, 284, -1, 31, 139, 284, -1, + 31, -1, 39, 139, 157, 284, -1, 39, 139, 284, + -1, 278, 233, -1, 232, -1, 232, 233, -1, -1, + 98, 198, 227, 228, -1, 11, 158, 213, 152, 215, + 10, -1, 12, 158, 213, 152, 216, 10, -1, -1, + -1, 18, 199, 158, 214, 200, 152, 10, -1, -1, + -1, 19, 201, 158, 214, 202, 152, 10, -1, 16, + 158, 282, 236, 10, -1, 16, 282, 236, 10, -1, + -1, -1, 20, 217, 25, 203, 158, 214, 204, 152, + 10, -1, -1, 3, 173, 256, 205, 151, 10, -1, + -1, -1, 3, 84, 157, 206, 287, 207, 151, 10, + -1, -1, 4, 173, 208, 151, 10, -1, -1, 5, + 174, 209, 258, 151, 10, -1, -1, -1, 5, 273, + 281, 210, 174, 211, 258, 151, 10, -1, 21, -1, + 22, -1, 23, -1, 24, -1, 194, -1, 287, -1, + 13, -1, 287, 13, -1, 287, -1, 27, -1, 216, + -1, 14, 158, 213, 152, 215, -1, 290, -1, 15, + 152, -1, 171, -1, 164, -1, 261, -1, 90, 220, + 284, -1, 218, -1, 219, 138, 218, -1, 219, -1, + 219, 138, 96, 261, -1, 219, 138, 96, 261, 138, + 219, -1, 219, 138, 96, -1, 219, 138, 96, 138, + 219, -1, 96, 261, -1, 96, 261, 138, 219, -1, + 96, -1, 96, 138, 219, -1, 263, 138, 266, 138, + 269, 272, -1, 263, 138, 266, 138, 269, 138, 263, + 272, -1, 263, 138, 266, 272, -1, 263, 138, 266, + 138, 263, 272, -1, 263, 138, 269, 272, -1, 263, + 138, -1, 263, 138, 269, 138, 263, 272, -1, 263, + 272, -1, 266, 138, 269, 272, -1, 266, 138, 269, + 138, 263, 272, -1, 266, 272, -1, 266, 138, 263, + 272, -1, 269, 272, -1, 269, 138, 263, 272, -1, + 271, -1, 290, -1, 223, -1, 112, 224, 112, -1, + 77, -1, 112, 221, 224, 112, -1, 283, -1, 283, + 142, 225, 283, -1, 226, -1, 225, 138, 226, -1, + 51, -1, 260, -1, 139, 259, 224, 140, -1, 259, + -1, 105, 152, 135, -1, 29, 152, 10, -1, -1, + 28, 230, 222, 152, 10, -1, 163, 229, -1, 231, + 281, 279, 185, -1, 231, 281, 279, 185, 233, -1, + 231, 281, 279, 188, 229, -1, 278, 184, -1, 212, + 137, 279, 185, -1, 212, 86, 279, 184, -1, 212, + 86, 280, -1, 212, 137, 184, -1, 212, 86, 184, + -1, 32, 184, -1, 32, -1, 212, 136, 186, 285, + -1, -1, 134, 234, 222, 152, 135, -1, -1, 26, + 235, 222, 152, 10, -1, 17, 192, 213, 152, 237, + -1, 216, -1, 236, -1, 8, 239, 240, 213, 152, + 238, -1, 290, -1, 182, -1, 193, -1, 290, -1, + 89, 171, -1, 290, -1, 9, 152, -1, 290, -1, + 251, -1, 248, -1, 60, -1, 62, -1, 103, 62, + -1, 103, 244, 62, -1, -1, 63, 245, 152, 135, + -1, -1, 244, 63, 246, 152, 135, -1, 61, -1, + 249, -1, 99, 103, 244, 62, -1, 99, 250, -1, + 174, -1, 54, -1, 53, -1, 56, -1, 62, -1, + 103, 62, -1, 58, -1, 59, -1, 120, 58, -1, + 120, 59, -1, 51, -1, 54, -1, 53, -1, 56, + -1, 55, -1, 252, -1, 252, -1, 34, -1, 33, + -1, 35, -1, 36, -1, 49, -1, 48, -1, 64, + -1, 65, -1, 287, -1, -1, 111, 257, 158, 287, + -1, 1, 287, -1, 139, 259, 284, -1, 259, 287, + -1, 263, 138, 267, 138, 269, 272, -1, 263, 138, + 267, 138, 269, 138, 263, 272, -1, 263, 138, 267, + 272, -1, 263, 138, 267, 138, 263, 272, -1, 263, + 138, 269, 272, -1, 263, 138, 269, 138, 263, 272, + -1, 263, 272, -1, 267, 138, 269, 272, -1, 267, + 138, 269, 138, 263, 272, -1, 267, 272, -1, 267, + 138, 263, 272, -1, 269, 272, -1, 269, 138, 263, + 272, -1, 271, -1, -1, 55, -1, 54, -1, 53, + -1, 56, -1, 260, -1, 51, -1, 261, -1, 90, + 220, 284, -1, 262, -1, 263, 138, 262, -1, 51, + 107, 182, -1, 51, 107, 212, -1, 265, -1, 266, + 138, 265, -1, 264, -1, 267, 138, 264, -1, 117, + -1, 96, -1, 268, 51, -1, 268, -1, 114, -1, + 97, -1, 270, 51, -1, 138, 271, -1, 290, -1, + 254, -1, -1, 139, 274, 157, 284, -1, 290, -1, + 276, 286, -1, 277, -1, 276, 138, 277, -1, 182, + 89, 182, -1, 57, 182, -1, 51, -1, 55, -1, + 52, -1, 51, -1, 55, -1, 52, -1, 179, -1, + 51, -1, 52, -1, 179, -1, 137, -1, 86, -1, + -1, 289, -1, -1, 288, -1, 283, 140, -1, 283, + 141, -1, -1, 288, -1, 138, -1, 142, -1, 288, + -1, 143, -1, 287, -1, 289, 142, -1, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 996, 996, 996, 1006, 1012, 1016, 1020, 1024, 1030, + 1032, 1031, 1043, 1069, 1075, 1079, 1083, 1087, 1093, 1093, + 1097, 1101, 1105, 1109, 1113, 1117, 1121, 1126, 1127, 1131, + 1135, 1139, 1143, 1147, 1152, 1156, 1161, 1165, 1169, 1173, + 1176, 1180, 1187, 1188, 1192, 1196, 1200, 1204, 1207, 1214, + 1215, 1218, 1219, 1223, 1222, 1235, 1239, 1244, 1248, 1253, + 1257, 1262, 1266, 1270, 1274, 1278, 1284, 1288, 1294, 1295, + 1301, 1305, 1309, 1313, 1317, 1321, 1325, 1329, 1333, 1337, + 1343, 1344, 1350, 1354, 1360, 1364, 1370, 1374, 1378, 1382, + 1386, 1390, 1396, 1402, 1409, 1413, 1417, 1421, 1425, 1429, + 1435, 1441, 1448, 1452, 1455, 1459, 1463, 1469, 1470, 1471, + 1472, 1477, 1484, 1485, 1488, 1494, 1498, 1498, 1504, 1505, + 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, + 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, + 1526, 1527, 1528, 1529, 1530, 1531, 1534, 1534, 1534, 1535, + 1535, 1536, 1536, 1536, 1537, 1537, 1537, 1537, 1538, 1538, + 1538, 1539, 1539, 1539, 1540, 1540, 1540, 1540, 1541, 1541, + 1541, 1541, 1542, 1542, 1542, 1542, 1543, 1543, 1543, 1543, + 1544, 1544, 1544, 1544, 1545, 1545, 1548, 1552, 1556, 1560, + 1564, 1568, 1572, 1576, 1580, 1585, 1590, 1595, 1599, 1603, + 1607, 1611, 1615, 1619, 1623, 1627, 1631, 1635, 1639, 1643, + 1647, 1651, 1655, 1659, 1663, 1667, 1671, 1675, 1679, 1683, + 1687, 1696, 1700, 1704, 1708, 1712, 1716, 1720, 1724, 1728, + 1734, 1741, 1742, 1746, 1750, 1756, 1762, 1763, 1766, 1767, + 1768, 1772, 1776, 1782, 1786, 1790, 1794, 1798, 1804, 1804, + 1815, 1821, 1825, 1831, 1835, 1839, 1843, 1849, 1853, 1857, + 1863, 1864, 1865, 1866, 1867, 1868, 1873, 1872, 1883, 1883, + 1887, 1887, 1891, 1895, 1899, 1903, 1907, 1911, 1915, 1919, + 1923, 1927, 1931, 1935, 1939, 1940, 1946, 1945, 1958, 1965, + 1972, 1972, 1972, 1978, 1978, 1978, 1984, 1990, 1995, 1997, + 1994, 2004, 2003, 2016, 2021, 2015, 2034, 2033, 2046, 2045, + 2058, 2059, 2058, 2072, 2076, 2080, 2084, 2090, 2097, 2098, + 2099, 2102, 2103, 2106, 2107, 2115, 2116, 2122, 2126, 2129, + 2133, 2139, 2143, 2149, 2153, 2157, 2161, 2165, 2169, 2173, + 2177, 2181, 2187, 2191, 2195, 2199, 2203, 2207, 2211, 2215, + 2219, 2223, 2227, 2231, 2235, 2239, 2243, 2249, 2250, 2257, + 2262, 2267, 2274, 2278, 2284, 2285, 2288, 2293, 2296, 2300, + 2306, 2310, 2317, 2316, 2329, 2339, 2343, 2348, 2355, 2359, + 2363, 2367, 2371, 2375, 2379, 2383, 2387, 2394, 2393, 2404, + 2403, 2415, 2423, 2432, 2435, 2442, 2445, 2449, 2450, 2453, + 2457, 2460, 2464, 2467, 2468, 2471, 2472, 2473, 2477, 2484, + 2483, 2496, 2494, 2508, 2511, 2515, 2522, 2529, 2530, 2531, + 2532, 2533, 2537, 2543, 2544, 2545, 2549, 2555, 2559, 2563, + 2567, 2571, 2577, 2583, 2587, 2591, 2595, 2599, 2603, 2610, + 2619, 2620, 2623, 2628, 2627, 2636, 2643, 2649, 2655, 2659, + 2663, 2667, 2671, 2675, 2679, 2683, 2687, 2691, 2695, 2699, + 2703, 2707, 2712, 2718, 2723, 2728, 2733, 2740, 2744, 2751, + 2755, 2761, 2765, 2771, 2778, 2785, 2789, 2795, 2799, 2805, + 2806, 2809, 2814, 2821, 2822, 2825, 2832, 2836, 2843, 2848, + 2848, 2870, 2871, 2877, 2881, 2887, 2891, 2897, 2898, 2899, + 2902, 2903, 2904, 2905, 2908, 2909, 2910, 2913, 2914, 2917, + 2918, 2921, 2922, 2925, 2928, 2931, 2932, 2933, 2936, 2937, + 2940, 2946, 2947, 2951 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "keyword_class", "keyword_module", + "keyword_def", "keyword_undef", "keyword_begin", "keyword_rescue", + "keyword_ensure", "keyword_end", "keyword_if", "keyword_unless", + "keyword_then", "keyword_elsif", "keyword_else", "keyword_case", + "keyword_when", "keyword_while", "keyword_until", "keyword_for", + "keyword_break", "keyword_next", "keyword_redo", "keyword_retry", + "keyword_in", "keyword_do", "keyword_do_cond", "keyword_do_block", + "keyword_do_LAMBDA", "keyword_return", "keyword_yield", "keyword_super", + "keyword_self", "keyword_nil", "keyword_true", "keyword_false", + "keyword_and", "keyword_or", "keyword_not", "modifier_if", + "modifier_unless", "modifier_while", "modifier_until", "modifier_rescue", + "keyword_alias", "keyword_BEGIN", "keyword_END", "keyword__LINE__", + "keyword__FILE__", "keyword__ENCODING__", "tIDENTIFIER", "tFID", "tGVAR", + "tIVAR", "tCONSTANT", "tCVAR", "tLABEL", "tINTEGER", "tFLOAT", "tCHAR", + "tREGEXP", "tSTRING", "tSTRING_PART", "tNTH_REF", "tBACK_REF", + "tREGEXP_END", "tUPLUS", "tUMINUS", "tPOW", "tCMP", "tEQ", "tEQQ", + "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH", "tDOT2", + "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2", "tCOLON3", + "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN_ARG", "tRPAREN", "tLBRACK", + "tLBRACE", "tLBRACE_ARG", "tSTAR", "tAMPER", "tLAMBDA", "tSYMBEG", + "tREGEXP_BEG", "tWORDS_BEG", "tQWORDS_BEG", "tSTRING_BEG", + "tSTRING_DVAR", "tLAMBEG", "tLOWEST", "'='", "'?'", "':'", "'>'", "'<'", + "'|'", "'^'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "tUMINUS_NUM", + "'!'", "'~'", "idNULL", "idRespond_to", "idIFUNC", "idCFUNC", + "id_core_set_method_alias", "id_core_set_variable_alias", + "id_core_undef_method", "id_core_define_method", + "id_core_define_singleton_method", "id_core_set_postexe", "tLAST_TOKEN", + "'{'", "'}'", "'['", "'.'", "','", "'('", "')'", "']'", "';'", "'\\n'", + "$accept", "program", "$@1", "top_compstmt", "top_stmts", "top_stmt", + "@2", "bodystmt", "compstmt", "stmts", "stmt", "$@3", "command_asgn", + "expr", "expr_value", "command_call", "block_command", "cmd_brace_block", + "$@4", "command", "mlhs", "mlhs_inner", "mlhs_basic", "mlhs_item", + "mlhs_list", "mlhs_post", "mlhs_node", "lhs", "cname", "cpath", "fname", + "fsym", "fitem", "undef_list", "$@5", "op", "reswords", "arg", + "arg_value", "aref_args", "paren_args", "opt_paren_args", + "opt_call_args", "call_args", "command_args", "@6", "block_arg", + "opt_block_arg", "args", "mrhs", "primary", "$@7", "$@8", "$@9", "@10", + "$@11", "$@12", "$@13", "$@14", "$@15", "$@16", "@17", "@18", "@19", + "@20", "@21", "$@22", "@23", "primary_value", "then", "do", "if_tail", + "opt_else", "for_var", "f_marg", "f_marg_list", "f_margs", "block_param", + "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", + "f_larglist", "lambda_body", "do_block", "$@24", "block_call", + "method_call", "brace_block", "$@25", "$@26", "case_body", "cases", + "opt_rescue", "exc_list", "exc_var", "opt_ensure", "literal", "string", + "string_interp", "@27", "@28", "regexp", "symbol", "basic_symbol", "sym", + "numeric", "variable", "var_lhs", "var_ref", "backref", "superclass", + "$@29", "f_arglist", "f_args", "f_bad_arg", "f_norm_arg", "f_arg_item", + "f_arg", "f_opt", "f_block_opt", "f_block_optarg", "f_optarg", + "restarg_mark", "f_rest_arg", "blkarg_mark", "f_block_arg", + "opt_f_block_arg", "singleton", "$@30", "assoc_list", "assocs", "assoc", + "operation", "operation2", "operation3", "dot_or_colon", "opt_terms", + "opt_nl", "rparen", "rbracket", "trailer", "term", "nl", "terms", "none", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 61, 63, 58, + 62, 60, 124, 94, 38, 43, 45, 42, 47, 37, + 362, 33, 126, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 123, 125, 91, 46, 44, 40, + 41, 93, 59, 10 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 144, 146, 145, 147, 148, 148, 148, 148, 149, + 150, 149, 151, 152, 153, 153, 153, 153, 155, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 156, 156, 157, 157, 157, 157, 157, 157, 158, 159, + 159, 160, 160, 162, 161, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 164, 164, 165, 165, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 167, 167, 168, 168, 169, 169, 170, 170, 170, 170, + 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, + 171, 171, 172, 172, 173, 173, 173, 174, 174, 174, + 174, 174, 175, 175, 176, 177, 178, 177, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 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, 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, 181, 181, + 182, 183, 183, 183, 183, 184, 185, 185, 186, 186, + 186, 186, 186, 187, 187, 187, 187, 187, 189, 188, + 190, 191, 191, 192, 192, 192, 192, 193, 193, 193, + 194, 194, 194, 194, 194, 194, 195, 194, 196, 194, + 197, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 198, 194, 194, 194, + 199, 200, 194, 201, 202, 194, 194, 194, 203, 204, + 194, 205, 194, 206, 207, 194, 208, 194, 209, 194, + 210, 211, 194, 194, 194, 194, 194, 212, 213, 213, + 213, 214, 214, 215, 215, 216, 216, 217, 217, 218, + 218, 219, 219, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 222, 222, 223, + 223, 223, 224, 224, 225, 225, 226, 226, 227, 227, + 228, 228, 230, 229, 231, 231, 231, 231, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 234, 233, 235, + 233, 236, 237, 237, 238, 238, 239, 239, 239, 240, + 240, 241, 241, 242, 242, 243, 243, 243, 243, 245, + 244, 246, 244, 247, 248, 248, 249, 250, 250, 250, + 250, 250, 250, 251, 251, 251, 251, 252, 252, 252, + 252, 252, 253, 254, 254, 254, 254, 254, 254, 254, + 255, 255, 256, 257, 256, 256, 258, 258, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 260, 260, 260, 260, 261, 261, 262, + 262, 263, 263, 264, 265, 266, 266, 267, 267, 268, + 268, 269, 269, 270, 270, 271, 272, 272, 273, 274, + 273, 275, 275, 276, 276, 277, 277, 278, 278, 278, + 279, 279, 279, 279, 280, 280, 280, 281, 281, 282, + 282, 283, 283, 284, 285, 286, 286, 286, 287, 287, + 288, 289, 289, 290 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 0, 2, 2, 1, 1, 3, 2, 1, + 0, 5, 4, 2, 1, 1, 3, 2, 0, 4, + 2, 3, 3, 3, 3, 3, 4, 1, 3, 3, + 6, 5, 5, 5, 5, 3, 3, 3, 3, 1, + 3, 3, 1, 3, 3, 3, 2, 1, 1, 1, + 1, 1, 4, 0, 5, 2, 3, 4, 5, 4, + 5, 2, 2, 2, 2, 2, 1, 3, 1, 3, + 1, 2, 3, 5, 2, 4, 2, 4, 1, 3, + 1, 3, 2, 3, 1, 2, 1, 4, 3, 3, + 3, 3, 2, 1, 1, 4, 3, 3, 3, 3, + 2, 1, 1, 1, 2, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 5, 3, 5, + 6, 5, 5, 5, 5, 4, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 4, 4, 2, 2, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 2, 2, 3, 3, 3, 3, 6, 1, + 1, 1, 2, 4, 2, 3, 1, 1, 1, 1, + 2, 4, 2, 1, 2, 2, 4, 1, 0, 2, + 2, 2, 1, 1, 2, 3, 4, 3, 4, 2, + 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 0, 3, 3, 3, 2, 3, 3, 1, 4, 3, + 1, 4, 3, 2, 1, 2, 0, 4, 6, 6, + 0, 0, 7, 0, 0, 7, 5, 4, 0, 0, + 9, 0, 6, 0, 0, 8, 0, 5, 0, 6, + 0, 0, 9, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 1, 1, 5, 1, 2, 1, 1, 1, + 3, 1, 3, 1, 4, 6, 3, 5, 2, 4, + 1, 3, 6, 8, 4, 6, 4, 2, 6, 2, + 4, 6, 2, 4, 2, 4, 1, 1, 1, 3, + 1, 4, 1, 4, 1, 3, 1, 1, 4, 1, + 3, 3, 0, 5, 2, 4, 5, 5, 2, 4, + 4, 3, 3, 3, 2, 1, 4, 0, 5, 0, + 5, 5, 1, 1, 6, 1, 1, 1, 1, 2, + 1, 2, 1, 1, 1, 1, 1, 2, 3, 0, + 4, 0, 5, 1, 1, 4, 2, 1, 1, 1, + 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 2, 3, 2, 6, 8, + 4, 6, 4, 6, 2, 4, 6, 2, 4, 2, + 4, 1, 0, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 3, 3, 3, 1, 3, 1, 3, 1, + 1, 2, 1, 1, 1, 2, 2, 1, 1, 0, + 4, 1, 2, 1, 3, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 0, 1, 2, 2, 0, 1, 1, 1, 1, + 1, 1, 2, 0 +}; + +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 2, 0, 0, 1, 0, 0, 0, 0, 0, 266, + 0, 0, 509, 290, 293, 0, 313, 314, 315, 316, + 277, 280, 385, 435, 434, 436, 437, 511, 0, 10, + 0, 439, 438, 427, 265, 429, 428, 431, 430, 423, + 424, 405, 413, 406, 440, 441, 0, 0, 0, 0, + 270, 523, 523, 78, 286, 0, 0, 0, 0, 0, + 3, 509, 6, 9, 27, 39, 42, 50, 49, 0, + 66, 0, 70, 80, 0, 47, 229, 0, 51, 284, + 260, 261, 262, 404, 414, 403, 433, 0, 263, 264, + 248, 5, 8, 313, 314, 277, 280, 385, 0, 102, + 103, 0, 0, 0, 0, 105, 0, 317, 0, 433, + 264, 0, 306, 156, 166, 157, 179, 153, 172, 162, + 161, 182, 183, 177, 160, 159, 155, 180, 184, 185, + 164, 154, 167, 171, 173, 165, 158, 174, 181, 176, + 175, 168, 178, 163, 152, 170, 169, 151, 149, 150, + 146, 147, 148, 107, 109, 108, 142, 143, 139, 121, + 122, 123, 130, 127, 129, 124, 125, 144, 145, 131, + 132, 136, 126, 128, 118, 119, 120, 133, 134, 135, + 137, 138, 140, 141, 489, 308, 110, 111, 488, 0, + 175, 168, 178, 163, 146, 147, 107, 108, 0, 112, + 115, 20, 113, 0, 0, 48, 0, 0, 0, 433, + 0, 264, 0, 518, 520, 509, 0, 521, 519, 510, + 0, 0, 0, 328, 327, 0, 0, 433, 264, 0, + 0, 0, 0, 243, 230, 253, 64, 247, 523, 523, + 493, 65, 63, 511, 62, 0, 523, 384, 61, 511, + 0, 512, 18, 0, 0, 207, 0, 208, 274, 0, + 0, 0, 509, 15, 511, 68, 14, 268, 511, 0, + 515, 515, 231, 0, 0, 515, 491, 0, 0, 76, + 0, 86, 93, 462, 419, 418, 420, 421, 0, 417, + 416, 407, 409, 0, 425, 426, 46, 222, 223, 4, + 510, 0, 0, 0, 0, 0, 0, 0, 372, 374, + 0, 82, 0, 74, 71, 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, 523, 0, 508, 507, 0, 389, 387, + 285, 0, 0, 378, 55, 283, 303, 102, 103, 104, + 425, 426, 0, 443, 301, 442, 0, 523, 0, 0, + 0, 462, 310, 0, 116, 0, 523, 274, 319, 0, + 318, 0, 0, 523, 0, 0, 0, 0, 0, 0, + 0, 522, 0, 0, 274, 0, 523, 0, 298, 496, + 254, 250, 0, 0, 244, 252, 0, 245, 511, 0, + 279, 249, 511, 239, 523, 523, 238, 511, 282, 45, + 0, 0, 0, 0, 0, 0, 17, 511, 272, 13, + 510, 67, 511, 271, 275, 517, 232, 516, 517, 234, + 276, 492, 92, 84, 0, 79, 0, 0, 523, 0, + 468, 465, 464, 463, 466, 0, 480, 484, 483, 479, + 462, 0, 369, 467, 469, 471, 523, 477, 523, 482, + 523, 0, 461, 422, 0, 0, 408, 411, 0, 0, + 7, 21, 22, 23, 24, 25, 43, 44, 523, 0, + 28, 37, 0, 38, 511, 0, 72, 83, 41, 40, + 0, 186, 253, 36, 204, 212, 217, 218, 219, 214, + 216, 226, 227, 220, 221, 197, 198, 224, 225, 511, + 213, 215, 209, 210, 211, 199, 200, 201, 202, 203, + 500, 505, 501, 506, 383, 248, 381, 511, 500, 502, + 501, 503, 382, 523, 500, 501, 248, 523, 523, 29, + 188, 35, 196, 53, 56, 0, 445, 0, 0, 102, + 103, 106, 0, 511, 523, 0, 511, 462, 0, 0, + 0, 0, 267, 523, 523, 395, 523, 320, 186, 504, + 273, 511, 500, 501, 523, 0, 0, 297, 322, 291, + 321, 294, 504, 273, 511, 500, 501, 0, 495, 0, + 255, 251, 523, 494, 278, 513, 235, 240, 242, 281, + 19, 0, 26, 195, 69, 16, 269, 515, 85, 77, + 89, 91, 511, 500, 501, 0, 468, 0, 340, 331, + 333, 511, 329, 511, 0, 0, 287, 0, 454, 487, + 0, 457, 481, 0, 459, 485, 415, 0, 0, 205, + 206, 360, 511, 0, 358, 357, 259, 0, 81, 75, + 0, 0, 0, 0, 0, 0, 380, 59, 0, 386, + 0, 0, 237, 379, 57, 236, 375, 52, 0, 0, + 0, 523, 304, 0, 0, 386, 307, 490, 511, 0, + 447, 311, 114, 117, 396, 397, 523, 398, 0, 523, + 325, 0, 0, 323, 0, 0, 386, 0, 0, 0, + 296, 0, 0, 0, 0, 386, 0, 256, 246, 523, + 11, 233, 87, 473, 511, 0, 338, 0, 470, 0, + 362, 0, 0, 472, 523, 523, 486, 523, 478, 523, + 523, 410, 0, 468, 511, 0, 523, 475, 523, 523, + 356, 0, 0, 257, 73, 187, 0, 34, 193, 33, + 194, 60, 514, 0, 31, 191, 32, 192, 58, 376, + 377, 0, 0, 189, 0, 0, 444, 302, 446, 309, + 462, 0, 0, 400, 326, 0, 12, 402, 0, 288, + 0, 289, 255, 523, 0, 0, 299, 241, 330, 341, + 0, 336, 332, 368, 0, 371, 370, 0, 450, 0, + 452, 0, 458, 0, 455, 460, 412, 0, 0, 359, + 347, 349, 0, 352, 0, 354, 373, 258, 228, 30, + 190, 390, 388, 0, 0, 0, 0, 399, 0, 94, + 101, 0, 401, 0, 392, 393, 391, 292, 295, 0, + 0, 339, 0, 334, 366, 511, 364, 367, 523, 523, + 523, 523, 0, 474, 361, 523, 523, 523, 476, 523, + 523, 54, 305, 0, 100, 0, 523, 0, 523, 523, + 0, 337, 0, 0, 363, 451, 0, 448, 453, 456, + 274, 0, 0, 344, 0, 346, 353, 0, 350, 355, + 312, 504, 99, 511, 500, 501, 394, 324, 300, 335, + 365, 523, 504, 273, 523, 523, 523, 523, 386, 449, + 345, 0, 342, 348, 351, 523, 343 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 1, 2, 60, 61, 62, 253, 375, 376, 262, + 263, 420, 64, 65, 206, 66, 67, 554, 681, 68, + 69, 264, 70, 71, 72, 445, 73, 207, 105, 106, + 199, 200, 693, 201, 571, 186, 187, 75, 235, 269, + 534, 673, 412, 413, 244, 245, 237, 404, 414, 493, + 76, 203, 432, 268, 283, 220, 713, 221, 714, 597, + 849, 558, 555, 775, 369, 371, 570, 780, 256, 379, + 589, 702, 703, 226, 629, 630, 631, 744, 653, 654, + 729, 855, 856, 461, 636, 309, 488, 78, 79, 355, + 548, 547, 390, 846, 574, 696, 782, 786, 80, 81, + 293, 475, 648, 82, 83, 84, 290, 85, 209, 210, + 88, 211, 364, 557, 568, 569, 463, 464, 465, 466, + 467, 747, 748, 468, 469, 470, 471, 736, 638, 189, + 370, 274, 415, 240, 90, 562, 536, 347, 216, 409, + 410, 669, 436, 380, 251, 219, 266 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -728 +static const yytype_int16 yypact[] = +{ + -728, 129, 2484, -728, 6830, 8542, 8851, 4938, 6590, -728, + 8221, 8221, 4419, -728, -728, 8645, 7044, 7044, -728, -728, + 7044, 5656, 5768, -728, -728, -728, -728, 220, 6590, -728, + 23, -728, -728, 5060, 5184, -728, -728, 5308, -728, -728, + -728, -728, -728, -728, -728, -728, 8328, 8328, 205, 3736, + 8221, 7258, 7579, 6104, -728, 6350, 48, 291, 8435, 8328, + -728, 294, -728, 862, -728, 323, -728, -728, 163, 26, + -728, 139, 8748, -728, 160, 6211, 173, 200, 22, 91, + -728, -728, -728, -728, -728, -728, 30, 202, -728, 32, + 93, -728, -728, -728, -728, -728, 174, 183, 188, 497, + 529, 8221, 333, 3879, 386, -728, 39, -728, 218, -728, + -728, 93, -728, -728, -728, -728, -728, -728, -728, -728, + -728, -728, -728, -728, -728, -728, -728, -728, -728, -728, + -728, -728, -728, -728, -728, -728, -728, -728, -728, -728, + 57, 128, 182, 193, -728, -728, -728, -728, -728, -728, + 229, 239, -728, 265, -728, 270, -728, -728, -728, -728, + -728, -728, -728, -728, -728, -728, -728, -728, -728, -728, + -728, -728, -728, -728, -728, -728, -728, -728, -728, -728, + -728, -728, -728, -728, -728, -728, -728, -728, -728, 22, + -728, -728, -728, -728, -728, -728, -728, -728, 6470, -728, + -728, 257, -728, 2945, 343, 323, 53, 334, 253, 196, + 361, 219, 53, -728, -728, 294, 434, -728, -728, 319, + 8221, 8221, 432, -728, -728, 339, 476, 97, 105, 8328, + 8328, 8328, 8328, -728, 6211, 409, -728, -728, 365, 380, + -728, -728, -728, 4293, -728, 7044, 7044, -728, -728, 4547, + 8221, -728, -728, 381, 4022, -728, 354, 442, 37, 6937, + 3736, 408, 294, 862, 400, 446, -728, 323, 400, 417, + 10, 140, -728, 409, 424, 140, -728, 505, 8954, 427, + 356, 368, 373, 700, -728, -728, -728, -728, 418, -728, + -728, -728, -728, 422, 498, 499, -728, -728, -728, -728, + 4673, 8221, 8221, 8221, 8221, 6937, 8221, 8221, -728, -728, + 7686, -728, 3736, 6214, 440, 7686, 8328, 8328, 8328, 8328, + 8328, 8328, 8328, 8328, 8328, 8328, 8328, 8328, 8328, 8328, + 8328, 8328, 8328, 8328, 8328, 8328, 8328, 8328, 8328, 8328, + 8328, 8328, 2347, 7044, 9214, -728, -728, 10090, -728, -728, + -728, 8435, 8435, -728, 475, -728, 323, -728, 377, -728, + -728, -728, 294, -728, -728, -728, 9287, 7044, 9360, 2945, + 8221, 918, -728, 522, -728, 575, 584, 308, -728, 3079, + 583, 8328, 9433, 7044, 9506, 8328, 8328, 3337, 434, 7793, + 589, -728, 43, 43, 133, 9579, 7044, 9652, -728, -728, + -728, -728, 8328, 7151, -728, -728, 7365, -728, 400, 462, + -728, -728, 400, -728, 465, 467, -728, 142, -728, -728, + 6590, 3465, 471, 9433, 9506, 8328, 862, 400, -728, -728, + 4798, 469, 400, -728, -728, 7472, -728, -728, 7579, -728, + -728, -728, 377, 139, 8954, -728, 8954, 9725, 7044, 9798, + 507, -728, -728, -728, -728, 1138, -728, -728, -728, -728, + 728, 92, -728, -728, -728, -728, 478, -728, 479, 570, + 485, 581, -728, -728, 444, 4022, -728, -728, 8328, 8328, + -728, -728, -728, -728, -728, -728, -728, -728, 64, 8328, + -728, 488, 501, -728, 400, 8954, 502, -728, -728, -728, + 530, 1069, -728, -728, 442, 1131, 1131, 1131, 1131, 959, + 959, 9233, 2083, 1131, 1131, 10144, 10144, 732, 732, 2781, + 959, 959, 1042, 1042, 1048, 47, 47, 442, 442, 442, + 2661, 5880, 2802, 5992, -728, 183, -728, 400, 412, -728, + 428, -728, -728, 5768, -728, -728, 1547, 64, 64, -728, + 2029, -728, 6211, -728, -728, 294, -728, 8221, 2945, 538, + -1, -728, 183, 400, 183, 631, 142, 728, 2945, 294, + 6710, 6590, -728, 7900, 628, -728, 518, -728, 2177, 5432, + 5544, 400, 340, 345, 628, 637, 50, -728, -728, -728, + -728, -728, 72, 74, 400, 135, 136, 8221, -728, 8328, + 409, -728, 380, -728, -728, -728, -728, 7151, 7365, -728, + -728, 513, -728, 6211, 67, 862, -728, 140, 440, -728, + 538, -1, 400, 315, 322, 8328, -728, 1138, 416, -728, + 511, 400, -728, 400, 4165, 4022, -728, 728, -728, -728, + 728, -728, -728, 718, -728, -728, -728, 519, 4022, 442, + 442, -728, 903, 4165, -728, -728, 515, 8007, -728, -728, + 8954, 8435, 8328, 549, 8435, 8435, -728, 475, 526, 473, + 8435, 8435, -728, -728, 475, -728, 91, 163, 4165, 4022, + 8328, 64, -728, 294, 649, -728, -728, -728, 400, 660, + -728, -728, -728, -728, 488, -728, 582, -728, 3608, 664, + -728, 8221, 668, -728, 8328, 8328, 389, 8328, 8328, 671, + -728, 8114, 3208, 4165, 4165, 137, 43, -728, -728, 545, + -728, -728, 388, -728, 400, 873, 546, 1200, -728, 548, + 543, 682, 560, -728, 561, 564, -728, 565, -728, 572, + 565, -728, 579, 608, 400, 604, 587, -728, 588, 590, + -728, 726, 8328, 601, -728, 6211, 8328, -728, 6211, -728, + 6211, -728, -728, 8435, -728, 6211, -728, 6211, -728, -728, + -728, 730, 610, 6211, 4022, 2945, -728, -728, -728, -728, + 918, 9057, 53, -728, -728, 4165, -728, -728, 53, -728, + 8328, -728, -728, 230, 738, 739, -728, 7365, -728, 614, + 873, 667, -728, -728, 653, -728, -728, 728, -728, 718, + -728, 718, -728, 718, -728, -728, -728, 9160, 646, -728, + 934, -728, 934, -728, 718, -728, -728, 621, 6211, -728, + 6211, -728, -728, 626, 752, 2945, 708, -728, 393, 368, + 373, 2945, -728, 3079, -728, -728, -728, -728, -728, 4165, + 873, 614, 873, 629, -728, 149, -728, -728, 565, 630, + 565, 565, 715, 403, -728, 638, 639, 565, -728, 642, + 565, -728, -728, 765, 377, 9871, 7044, 9944, 584, 518, + 768, 614, 873, 653, -728, -728, 718, -728, -728, -728, + -728, 10017, 934, -728, 718, -728, -728, 718, -728, -728, + -728, 114, -1, 400, 61, 77, -728, -728, -728, 614, + -728, 565, 648, 650, 565, 654, 565, 565, 79, -728, + -728, 718, -728, -728, -728, 565, -728 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -728, -728, -728, 367, -728, 28, -728, -352, 282, -728, + 87, -728, -289, 869, 41, -52, -728, -484, -728, -5, + 778, -167, -10, -69, -277, -391, -18, 52, -68, 792, + 9, -14, -728, -728, -728, -195, -728, 1049, 187, -728, + -15, 258, -325, 78, -9, -728, -359, -231, 89, -279, + 4, -728, -728, -728, -728, -728, -728, -728, -728, -728, + -728, -728, -728, -728, -728, -728, -728, -728, 640, -207, + -368, -80, -496, -728, -624, -674, 180, -728, -464, -728, + -572, -728, -74, -728, -728, 134, -728, -728, -728, -75, + -728, -728, -366, -728, -65, -728, -728, -728, -728, -728, + 528, -728, -728, -728, -728, 15, -728, -728, 1217, 1437, + 803, 1529, -728, -728, 40, -262, -727, 2, -569, -489, + -592, -715, 3, 185, -728, -506, -728, -259, 1024, -728, + -728, -728, 21, -377, 2003, -282, -728, 645, -16, -25, + -136, -535, -244, 8, 18, -28, -2 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -524 +static const yytype_int16 yytable[] = +{ + 91, 444, 250, 314, 350, 387, 296, 247, 407, 107, + 107, 233, 233, 248, 252, 233, 185, 565, 537, 107, + 217, 462, 585, 202, 472, 591, 498, 439, 685, 603, + 218, 441, 92, 300, 359, 279, 503, 239, 239, 265, + 362, 239, 563, 202, 601, 299, 706, 601, 738, 272, + 276, 799, 212, 215, 74, 619, 74, 107, 581, 715, + 535, 603, 543, 378, 289, 546, 378, 224, 733, 217, + 588, 594, 271, 275, -96, 353, 107, 857, 699, 218, + 745, 354, 247, 678, 679, -273, 564, 722, 709, 63, + -98, 63, -95, 427, 236, 241, 353, -97, 242, -99, + 535, 74, 543, 802, 659, 238, 238, 868, 345, 238, + 291, 292, 472, 418, 365, 564, 316, 348, -432, 348, + 352, 634, -94, 622, 218, 425, 851, -97, 431, 3, + -101, 735, 433, 310, 739, -273, -273, -94, -501, -101, + 270, 651, 564, -435, -100, 494, 749, 533, 435, 541, + 363, 737, 541, 214, 740, 74, 857, 254, -100, 346, + -96, -98, -95, 746, 339, 340, 341, 564, -86, 444, + -93, 533, 818, 541, -67, -92, 652, 868, 881, 306, + 307, 213, 214, 761, 407, 213, 214, 533, 711, 541, + 768, 308, 213, 214, -435, 213, 214, 635, 633, 388, + 533, 472, 541, -96, -96, -81, 684, 289, 909, 443, + -89, -500, -91, -501, -434, 738, 689, 774, 444, -98, + -98, -95, -95, 217, 218, 349, 802, 349, 533, 541, + 218, 603, 246, 218, 430, -86, 405, 405, 233, 273, + 233, 233, 733, -93, 416, 698, 429, 389, 601, 601, + 265, 733, 533, -500, 541, 74, -97, -97, 490, -317, + 258, 392, 393, 499, 239, -434, 239, 315, -436, 754, + 217, -92, 604, -88, -90, -87, 606, 311, 438, -437, + 218, 609, 107, 214, -432, 214, 342, 883, 437, 437, + 351, 614, 214, 437, 695, 496, 616, 844, 561, 549, + 551, 859, 265, -94, 366, 688, 74, 386, 472, -317, + -317, 74, 74, 243, 866, -439, 869, 107, 858, -436, + 860, 408, 246, 411, 861, -438, -101, 249, 480, 542, + -437, 261, 238, 867, 238, 870, 343, 344, 233, 382, + -88, 416, 481, 482, 483, 484, 426, -90, 796, 294, + 295, -427, 74, 542, 367, 368, -431, 74, 658, 249, + 306, 307, 233, 214, 74, 416, -439, 500, 918, 542, + 556, 718, 498, 721, 575, 618, -438, 443, 233, 712, + 218, 416, 542, 444, 357, 261, 915, 63, 358, 383, + 384, 233, 485, 750, 416, 374, 425, 911, 377, 492, + 590, 590, -427, 914, 492, 916, 610, -431, 917, 542, + 218, 218, 405, 405, -386, -100, 399, 400, 401, 91, + 603, 74, -88, 834, 602, 395, 443, 845, 707, -90, + 687, 74, 925, 708, 542, 202, 213, 214, 601, 74, + 423, 381, 447, 233, 360, 361, 416, -96, 107, 385, + 107, 389, -98, -88, -433, -88, 617, 632, -88, -264, + -90, 391, -90, -274, 639, -90, 639, 626, 639, 451, + 452, 453, 454, 74, -386, 396, 397, 790, 586, 875, + 473, 292, 74, 873, 476, 477, 655, 394, 718, 891, + 383, 424, 448, 449, 663, 728, -95, 491, 402, 107, + 670, 398, 502, 403, -433, -433, 646, 477, 63, -264, + -264, 316, 668, -274, -274, 421, 671, 615, 406, -96, + 666, 472, -386, -497, -386, -386, 667, 74, 672, 876, + 877, 672, 701, 698, 674, -98, 422, 677, 668, 367, + 368, 675, 261, 214, 675, 655, 655, 666, 428, 672, + -88, 903, 778, -66, 725, -498, 668, 692, 434, 440, + 442, 763, 675, 682, -504, 446, -90, 478, 479, 668, + 553, 697, 700, 218, 700, 841, 502, 690, 497, 691, + -95, 843, 700, -427, 473, 572, 202, 218, 798, 598, + 600, 443, 573, 273, 261, 564, 577, 668, 683, 587, + 405, 769, 605, 607, 218, 608, 612, -81, 730, 499, + 74, -87, 757, 759, 625, -431, 637, 640, 764, 766, + 74, 642, 600, 643, -504, 273, -253, 730, 719, 632, + 726, -497, 645, -427, -427, 437, -497, 661, 716, 657, + 660, 686, 77, 698, 77, 108, 108, 710, 720, 727, + 208, 208, 208, -254, 741, 225, 208, 208, 756, 777, + 208, 576, 492, -498, 107, -431, -431, 762, -498, 584, + 779, 781, -504, 785, -504, -504, 656, -500, 789, 655, + 533, 791, 541, 797, 800, 804, 74, 74, 803, 77, + 208, 776, 805, 280, 783, 806, 533, 787, 208, 807, + 74, 218, 809, 811, 854, 74, 451, 452, 453, 454, + 813, 829, 280, 500, 816, 817, 819, 405, 626, 730, + 451, 452, 453, 454, 590, 820, 822, 632, 824, 632, + 74, 74, 639, 639, 218, 639, 826, 639, 639, -255, + 831, 208, 788, 77, 639, 832, 639, 639, 847, 848, + 74, 450, 850, 451, 452, 453, 454, 647, 864, -256, + 694, 871, 872, 874, 74, 74, 74, 882, 886, 626, + 890, 451, 452, 453, 454, 900, 892, 894, 908, 450, + 897, 451, 452, 453, 454, 107, 717, -500, 611, -501, + 455, 700, 921, 223, 600, 273, 456, 457, 112, 907, + 218, 316, 632, 853, 676, 852, 218, 724, 455, 910, + 188, 770, 723, 906, 458, 457, 474, 459, 455, 0, + 835, 107, 734, 865, 456, 457, 74, 74, 0, 0, + 884, 0, 458, 837, 372, 0, 0, 74, 0, 460, + 0, 0, 458, 77, 753, 459, 0, 337, 338, 339, + 340, 341, 632, 0, 632, 0, 639, 639, 639, 639, + 208, 208, 542, 639, 639, 639, 0, 639, 639, 0, + 0, 233, 0, 0, 416, 0, 575, 700, 668, 205, + 205, 205, 0, 208, 632, 208, 208, 74, 0, 208, + 208, 0, 0, 74, 77, 74, 0, 0, 792, 77, + 77, 74, 301, 302, 303, 304, 305, 0, 0, 639, + 0, 0, 639, 639, 639, 639, 731, 732, 280, 267, + 0, 0, 0, 639, 626, 0, 451, 452, 453, 454, + 742, 0, 0, 0, 0, 751, 0, 0, 0, 827, + 77, 208, 208, 208, 208, 77, 208, 208, 0, 0, + 208, 0, 77, 280, 743, 208, 451, 452, 453, 454, + 771, 772, 0, 627, 0, 0, 0, 0, 0, 450, + 356, 451, 452, 453, 454, 0, 0, 0, 0, 0, + 784, 0, 0, 208, 273, 743, 0, 451, 452, 453, + 454, 208, 208, 455, 793, 794, 795, 0, 0, 456, + 457, 0, 0, 0, 0, 0, 0, 208, 455, 77, + 208, 0, 0, 0, 456, 457, 0, 458, 0, 77, + 459, 0, 0, 208, 455, 0, 0, 77, 316, 0, + 456, 457, 458, 0, 0, 459, 208, 0, 0, 0, + 0, 0, 0, 329, 330, 0, 214, 0, 458, 0, + 0, 459, 0, 0, 0, 0, 833, 567, 0, 0, + 0, 77, 0, 0, 0, 234, 234, 842, 0, 234, + 77, 334, 335, 336, 337, 338, 339, 340, 341, 0, + 0, 0, 0, 0, 280, 0, 280, 0, 208, 205, + 205, 0, 0, 0, 0, 255, 257, 0, 0, 0, + 234, 234, 0, 0, 0, 0, 0, 297, 298, 0, + 0, 316, 0, 662, 0, 77, 0, 316, 417, 419, + 0, 0, 0, 878, 0, 879, 329, 330, 0, 0, + 0, 880, 329, 330, 0, 280, 0, 0, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 0, 0, 329, 330, 0, 336, 337, 338, 339, + 340, 341, 0, 337, 338, 339, 340, 341, 0, 0, + 205, 205, 205, 205, 0, 486, 487, 331, 0, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 626, + 0, 451, 452, 453, 454, 0, 0, 208, 77, 0, + 316, -524, -524, -524, -524, 321, 322, -230, 77, -524, + -524, 0, 0, 0, 0, 329, 330, 0, 0, 86, + 0, 86, 109, 109, 109, 0, 0, 0, 627, 0, + 0, 0, 227, 0, 628, 0, 0, 208, 0, 566, + 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 626, 0, 451, 452, 453, 454, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, + 281, 0, 0, 0, 77, 77, 0, 0, 234, 234, + 234, 297, 0, 0, 0, 0, 0, 0, 77, 281, + 627, 0, 234, 77, 234, 234, 801, 0, 0, 0, + 280, 208, 0, 0, 208, 208, 0, 0, 0, 0, + 208, 208, 0, 0, 0, 0, 0, 0, 77, 77, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, + 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 77, 77, 77, 0, 0, 0, 0, 234, + 0, 0, 0, 0, 501, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 0, 234, 0, 0, 0, 0, 0, 0, 0, + 550, 552, 0, 208, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 77, 234, 0, 0, 0, + 86, 838, 0, 0, 0, 77, 205, 0, 0, 0, + 578, 0, 234, 0, 550, 552, 0, 0, 234, 87, + 0, 87, 0, 0, 0, 234, 0, 0, 0, 0, + 0, 234, 234, 0, 0, 234, 0, 863, 0, 0, + 0, 0, 0, 0, 0, 0, 205, 0, 0, 0, + 0, 86, 0, 0, 613, 77, 86, 86, 0, 0, + 0, 77, 0, 77, 234, 0, 87, 234, 0, 77, + 0, 0, 641, 0, 644, 281, 0, 234, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 208, 86, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 649, 650, 86, + 281, 89, 0, 89, 110, 110, 0, 0, 234, 0, + 87, 0, 0, 0, 228, 0, 0, -523, 0, 0, + 0, 0, 0, 0, 0, -523, -523, -523, 0, 0, + -523, -523, -523, 0, -523, 0, 0, 0, 0, 0, + 205, 0, 0, -523, -523, 0, 0, 0, 89, 0, + 0, 0, 282, 0, -523, -523, 86, -523, -523, -523, + -523, -523, 0, 0, 0, 0, 86, 0, 0, 0, + 0, 282, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 89, -523, 0, 0, 0, 0, 86, 0, + 87, 0, 0, 0, 0, 0, 0, 86, 234, 0, + 0, 0, 0, 0, 0, 0, 234, 234, 0, 0, + 0, 281, 0, 281, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, + 0, -523, -523, 0, -523, 0, 246, -523, 0, -523, + -523, 87, 86, 0, 0, 0, 87, 87, 0, 0, + 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, + 578, 755, 281, 758, 760, 0, 0, 0, 0, 765, + 767, 0, 0, 0, 0, 0, 0, 0, 0, 773, + 0, 0, 89, 0, 0, 0, 0, 87, 0, 0, + 0, 0, 87, 0, 0, 0, 0, 0, 0, 87, + 0, 0, 0, 758, 760, 0, 765, 767, 808, 810, + 234, 812, 0, 814, 815, 0, 0, 0, 0, 0, + 821, 0, 823, 825, 0, 86, 0, 0, 0, 0, + 0, 0, 0, 89, 0, 86, 0, 0, 89, 89, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 234, 0, 0, 0, 828, 87, 282, 0, 0, + 0, 0, 830, 0, 0, 0, 87, 0, 0, 0, + 0, 0, 0, 0, 87, 0, 0, 0, 0, 89, + 0, 0, 0, 0, 89, 0, 0, 0, 0, 830, + 0, 89, 282, 0, 0, 0, 234, 0, 0, 0, + 0, 86, 86, 0, 0, 0, 0, 0, 87, 0, + 0, 0, 0, 0, 0, 86, 0, 87, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 281, 0, 0, + 0, 0, 885, 887, 888, 889, 0, 0, 0, 893, + 895, 896, 0, 898, 899, 86, 86, 0, 89, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, + 0, 0, 87, 0, 0, 86, 89, 0, 0, 0, + 0, 0, 0, 0, 0, 234, 0, 0, 0, 86, + 86, 86, 0, 0, 0, 919, 0, 0, 920, 922, + 923, 924, 0, 0, 0, 0, 0, 0, 0, 926, + 89, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 282, 0, 282, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 86, 0, 0, 87, 0, 0, 839, 0, + 0, 0, 86, 0, 89, 87, 0, 0, 111, 111, + 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, + 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, + 111, 0, 86, 0, 111, 111, 111, 0, 86, 0, + 86, 0, 111, 0, 0, 0, 86, 0, 0, 0, + 0, 87, 87, 680, 0, 111, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 87, 0, 89, 0, 0, + 87, 0, 0, 0, 0, 0, 0, 89, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 0, 0, 329, 330, 87, 87, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 87, 0, 331, 0, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 87, + 87, 87, 316, 317, 318, 319, 320, 321, 322, 323, + 0, 325, 326, 89, 89, 0, 0, 329, 330, 0, + 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, + 0, 0, 89, 0, 0, 0, 0, 0, 0, 282, + 0, 0, 0, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 0, 0, 0, 0, 89, 89, 0, + 0, 87, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 662, 87, 0, 0, 0, 0, 89, 0, 0, + 0, 0, 111, 111, 111, 111, 0, 0, 0, 0, + 0, 89, 89, 89, 0, 0, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, + 0, 329, 330, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 87, 0, 0, 0, 0, 0, 87, 0, + 87, 111, 0, 0, 0, 331, 87, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 0, 0, 0, + 0, 0, 0, 89, 89, 0, 0, 0, 0, 0, + 840, 0, 0, 0, 89, 0, 111, 0, 0, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 0, 110, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, + 89, 0, 89, 0, 0, 0, 0, 0, 89, 0, + 0, 0, 0, 0, 111, 0, 0, 0, 111, 111, + 0, 0, 111, 0, 0, 0, 0, 0, 530, 531, + 0, 0, 532, 0, 0, 111, 111, 0, 0, 111, + 0, 0, 0, 0, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 0, 0, 165, 166, 0, 111, 167, + 168, 169, 170, 0, 0, 0, 0, 0, 111, 0, + 0, 111, 0, 171, 0, 0, 0, 111, 0, 111, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 0, 182, 183, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 111, 111, 0, -523, 4, 246, 5, 6, 7, + 8, 9, 111, 0, 0, 10, 11, 0, 111, 0, + 12, 0, 13, 14, 15, 16, 17, 18, 19, 0, + 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, + 26, 0, 0, 27, 0, 0, 0, 0, 0, 28, + 29, 30, 31, 32, 0, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 42, 43, 0, 44, 45, + 0, 46, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 0, 49, 50, 111, 51, 52, 0, + 53, 0, 54, 55, 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 111, 0, 57, 58, 59, 0, 0, 0, + 111, 111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -523, -523, 111, 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, + 111, -504, 0, 111, 0, 111, 0, 0, 0, -504, + -504, -504, 0, 0, 0, -504, -504, 0, -504, 0, + 0, 0, 0, 111, 0, 0, 0, -504, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -504, -504, + 0, -504, -504, -504, -504, -504, 0, 111, 111, 0, + 111, 111, 0, 0, 111, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -504, -504, -504, -504, -504, -504, -504, -504, -504, -504, + -504, -504, -504, 0, 0, -504, -504, -504, 0, 664, + 0, 0, 0, 0, 0, 111, 0, 0, 0, 111, + 0, 0, 0, 0, 0, 0, 0, 0, -97, -504, + 0, -504, -504, -504, -504, -504, -504, -504, -504, -504, + -504, 0, 0, 0, 111, 0, 0, 0, 0, 0, + 0, 0, 0, 111, 0, -504, -504, -504, -504, -89, + 111, -504, -273, -504, -504, 0, 0, 0, 0, 0, + -273, -273, -273, 0, 0, 0, -273, -273, 0, -273, + 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -273, + -273, 0, -273, -273, -273, -273, -273, 0, 0, 0, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 0, 0, 329, 330, 0, 0, 0, + 0, -273, -273, -273, -273, -273, -273, -273, -273, -273, + -273, -273, -273, -273, 0, 0, -273, -273, -273, 331, + 665, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 0, 0, 0, 0, 0, 0, 0, 0, -99, + -273, 0, -273, -273, -273, -273, -273, -273, -273, -273, + -273, -273, 0, 0, 214, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -273, -273, -273, + -91, 0, -273, 0, -273, -273, 259, 0, 5, 6, + 7, 8, 9, -523, -523, -523, 10, 11, 0, 0, + -523, 12, 0, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, + 25, 26, 0, 0, 27, 0, 0, 0, 0, 0, + 28, 0, 30, 31, 32, 0, 33, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 42, 43, 0, 44, + 45, 0, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 49, 50, 0, 51, 52, + 0, 53, 0, 54, 55, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 57, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 259, 0, 5, 6, 7, 8, 9, -523, -523, -523, + 10, 11, 0, -523, -523, 12, 0, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 0, 0, 0, 20, + 21, 22, 23, 24, 25, 26, 0, 0, 27, 0, + 0, 0, 0, 0, 28, 0, 30, 31, 32, 0, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 42, 43, 0, 44, 45, 0, 46, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 0, 0, 49, + 50, 0, 51, 52, 0, 53, 0, 54, 55, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, + 58, 59, 0, 0, 0, 0, 0, 0, 0, 259, + 0, 5, 6, 7, 8, 9, 0, 0, -523, 10, + 11, -523, -523, -523, 12, -523, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 0, 0, 0, 20, 21, + 22, 23, 24, 25, 26, 0, 0, 27, 0, 0, + 0, 0, 0, 28, 0, 30, 31, 32, 0, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, + 43, 0, 44, 45, 0, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 0, 0, 49, 50, + 0, 51, 52, 0, 53, 0, 54, 55, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 58, + 59, 0, 0, 0, 0, 0, 0, 0, 259, 0, + 5, 6, 7, 8, 9, 0, 0, -523, 10, 11, + -523, -523, -523, 12, 0, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 0, 0, 0, 20, 21, 22, + 23, 24, 25, 26, 0, 0, 27, 0, 0, 0, + 0, 0, 28, 0, 30, 31, 32, 0, 33, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, + 0, 44, 45, 0, 46, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 0, 0, 49, 50, 0, + 51, 52, 0, 53, 0, 54, 55, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 57, 58, 59, + 0, 0, 0, 0, 0, 0, 4, 0, 5, 6, + 7, 8, 9, 0, 0, 0, 10, 11, 0, -523, + -523, 12, 0, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, + 25, 26, 0, 0, 27, 0, 0, 0, 0, 0, + 28, 29, 30, 31, 32, 0, 33, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 42, 43, 0, 44, + 45, 0, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 49, 50, 0, 51, 52, + 0, 53, 0, 54, 55, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 57, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -523, 0, 0, 0, 0, 0, 0, -523, -523, 259, + 0, 5, 6, 7, 8, 9, 0, -523, -523, 10, + 11, 0, 0, 0, 12, 0, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 0, 0, 0, 20, 21, + 22, 23, 24, 25, 26, 0, 0, 27, 0, 0, + 0, 0, 0, 28, 0, 30, 31, 32, 0, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, + 43, 0, 44, 45, 0, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 0, 0, 49, 50, + 0, 51, 52, 0, 53, 0, 54, 55, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 58, + 59, 0, 0, 0, 0, 0, 0, 259, 0, 5, + 6, 7, 8, 9, 0, 0, 0, 10, 11, 0, + -523, -523, 12, 0, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 0, 0, 0, 20, 21, 22, 23, + 24, 25, 26, 0, 0, 27, 0, 0, 0, 0, + 0, 28, 0, 30, 31, 32, 0, 33, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 42, 43, 0, + 44, 45, 0, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 0, 0, 260, 50, 0, 51, + 52, 0, 53, 0, 54, 55, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 57, 58, 59, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -523, 0, -523, -523, + 259, 0, 5, 6, 7, 8, 9, 0, 0, 0, + 10, 11, 0, 0, 0, 12, 0, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 0, 0, 0, 20, + 21, 22, 23, 24, 25, 26, 0, 0, 27, 0, + 0, 0, 0, 0, 28, 0, 30, 31, 32, 0, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 42, 43, 0, 44, 45, 0, 46, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 0, 0, 49, + 50, 0, 51, 52, 0, 53, 0, 54, 55, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, + 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -523, + 0, -523, -523, 259, 0, 5, 6, 7, 8, 9, + 0, 0, 0, 10, 11, 0, 0, 0, 12, 0, + 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, + 0, 0, 20, 21, 22, 23, 24, 25, 26, 0, + 0, 27, 0, 0, 0, 0, 0, 28, 0, 30, + 31, 32, 0, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 42, 43, 0, 44, 45, 0, 46, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 0, 0, 49, 50, 0, 51, 52, 0, 53, 0, + 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 57, 58, 59, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -523, 0, 0, + 0, 0, 0, 0, -523, -523, 259, 0, 5, 6, + 7, 8, 9, 0, 0, -523, 10, 11, 0, 0, + 0, 12, 0, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, + 25, 26, 0, 0, 27, 0, 0, 0, 0, 0, + 28, 0, 30, 31, 32, 0, 33, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 42, 43, 0, 44, + 45, 0, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 0, 0, 49, 50, 0, 51, 52, + 0, 53, 0, 54, 55, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 57, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 6, 7, 0, + 9, 0, 0, 0, 10, 11, 0, -523, -523, 12, + 0, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, + 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, + 0, 31, 32, 0, 33, 34, 35, 36, 37, 38, + 229, 39, 40, 41, 42, 43, 0, 44, 45, 0, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 204, 0, 0, 103, 50, 0, 51, 52, 0, 230, + 231, 54, 55, 0, 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 57, 232, 59, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 0, 9, 0, 0, 0, + 10, 11, 0, 0, 0, 12, 214, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 0, 0, 0, 20, + 21, 22, 23, 24, 25, 26, 0, 0, 27, 0, + 0, 0, 0, 0, 0, 0, 0, 31, 32, 0, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 42, 43, 0, 44, 45, 0, 46, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 0, 0, 103, + 50, 0, 51, 52, 0, 0, 0, 54, 55, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, + 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 6, 7, 0, 9, 0, 0, 0, 10, 11, + 0, 213, 214, 12, 0, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 0, 0, 0, 20, 21, 22, + 23, 24, 25, 26, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 31, 32, 0, 33, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, + 0, 44, 45, 0, 46, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 204, 0, 0, 103, 50, 0, + 51, 52, 0, 0, 0, 54, 55, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 57, 58, 59, + 0, 0, 0, 0, 0, 0, 5, 6, 7, 8, + 9, 0, 0, 0, 10, 11, 0, 0, 0, 12, + 214, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, + 0, 0, 27, 0, 0, 0, 0, 0, 28, 29, + 30, 31, 32, 0, 33, 34, 35, 36, 37, 38, + 0, 39, 40, 41, 42, 43, 0, 44, 45, 0, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 0, 0, 49, 50, 0, 51, 52, 0, 53, + 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 57, 58, 59, 0, 0, 0, 0, + 0, 5, 6, 7, 8, 9, 0, 0, 0, 10, + 11, 0, 0, 0, 12, 391, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 0, 0, 0, 20, 21, + 22, 23, 24, 25, 26, 0, 0, 27, 0, 0, + 0, 0, 0, 28, 0, 30, 31, 32, 0, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, + 43, 0, 44, 45, 0, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 0, 0, 49, 50, + 0, 51, 52, 0, 53, 0, 54, 55, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 58, + 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 391, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 0, 0, 0, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, + 0, 0, 0, 147, 148, 149, 150, 151, 152, 153, + 154, 35, 36, 155, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 0, 0, 165, 166, 0, 0, + 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 0, 182, + 183, 0, 0, -497, -497, -497, 0, -497, 0, 0, + 0, -497, -497, 0, 0, 0, -497, 184, -497, -497, + -497, -497, -497, -497, -497, 0, -497, 0, 0, 0, + -497, -497, -497, -497, -497, -497, -497, 0, 0, -497, + 0, 0, 0, 0, 0, 0, 0, 0, -497, -497, + 0, -497, -497, -497, -497, -497, -497, -497, -497, -497, + -497, -497, -497, 0, -497, -497, 0, -497, -497, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -497, 0, 0, + -497, -497, 0, -497, -497, 0, -497, -497, -497, -497, + 0, 0, 0, -497, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -497, -497, -497, 0, 0, 0, 0, -499, -499, -499, + 0, -499, 0, 0, -497, -499, -499, 0, 0, -497, + -499, 0, -499, -499, -499, -499, -499, -499, -499, 0, + -499, 0, 0, 0, -499, -499, -499, -499, -499, -499, + -499, 0, 0, -499, 0, 0, 0, 0, 0, 0, + 0, 0, -499, -499, 0, -499, -499, -499, -499, -499, + -499, -499, -499, -499, -499, -499, -499, 0, -499, -499, + 0, -499, -499, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -499, 0, 0, -499, -499, 0, -499, -499, 0, + -499, -499, -499, -499, 0, 0, 0, -499, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -499, -499, -499, 0, 0, 0, + 0, -498, -498, -498, 0, -498, 0, 0, -499, -498, + -498, 0, 0, -499, -498, 0, -498, -498, -498, -498, + -498, -498, -498, 0, -498, 0, 0, 0, -498, -498, + -498, -498, -498, -498, -498, 0, 0, -498, 0, 0, + 0, 0, 0, 0, 0, 0, -498, -498, 0, -498, + -498, -498, -498, -498, -498, -498, -498, -498, -498, -498, + -498, 0, -498, -498, 0, -498, -498, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -498, 0, 0, -498, -498, + 0, -498, -498, 0, -498, -498, -498, -498, 0, 0, + 0, -498, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -498, -498, + -498, 0, 0, 0, 0, -500, -500, -500, 0, -500, + 0, 0, -498, -500, -500, 0, 0, -498, -500, 0, + -500, -500, -500, -500, -500, -500, -500, 0, 0, 0, + 0, 0, -500, -500, -500, -500, -500, -500, -500, 0, + 0, -500, 0, 0, 0, 0, 0, 0, 0, 0, + -500, -500, 0, -500, -500, -500, -500, -500, -500, -500, + -500, -500, -500, -500, -500, 0, -500, -500, 0, -500, + -500, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -500, + 704, 0, -500, -500, 0, -500, -500, 0, -500, -500, + -500, -500, 0, 0, 0, -500, 0, 0, 0, -97, + 0, 0, 0, 0, 0, 0, 0, -501, -501, -501, + 0, -501, -500, -500, -500, -501, -501, 0, 0, 0, + -501, 0, -501, -501, -501, -501, -501, -501, -501, 0, + 0, -500, 0, 0, -501, -501, -501, -501, -501, -501, + -501, 0, 0, -501, 0, 0, 0, 0, 0, 0, + 0, 0, -501, -501, 0, -501, -501, -501, -501, -501, + -501, -501, -501, -501, -501, -501, -501, 0, -501, -501, + 0, -501, -501, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -501, 705, 0, -501, -501, 0, -501, -501, 0, + -501, -501, -501, -501, 0, 0, 0, -501, 0, 0, + 0, -99, 0, 0, 0, 0, 0, 0, 0, -248, + -248, -248, 0, -248, -501, -501, -501, -248, -248, 0, + 0, 0, -248, 0, -248, -248, -248, -248, -248, -248, + -248, 0, 0, -501, 0, 0, -248, -248, -248, -248, + -248, -248, -248, 0, 0, -248, 0, 0, 0, 0, + 0, 0, 0, 0, -248, -248, 0, -248, -248, -248, + -248, -248, -248, -248, -248, -248, -248, -248, -248, 0, + -248, -248, 0, -248, -248, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -248, 0, 0, -248, -248, 0, -248, + -248, 0, -248, -248, -248, -248, 0, 0, 0, -248, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -248, -248, -248, 0, -248, -248, -248, -248, -248, + -248, 0, 0, 0, -248, 0, -248, -248, -248, -248, + -248, -248, -248, 0, 0, 243, 0, 0, -248, -248, + -248, -248, -248, -248, -248, 0, 0, -248, 0, 0, + 0, 0, 0, 0, 0, 0, -248, -248, 0, -248, + -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, + -248, 0, -248, -248, 0, -248, -248, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -248, 0, 0, -248, -248, + 0, -248, -248, 0, -248, -248, -248, -248, 0, 0, + 0, -248, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -502, -502, -502, 0, -502, -248, -248, + -248, -502, -502, 0, 0, 0, -502, 0, -502, -502, + -502, -502, -502, -502, -502, 0, 0, 246, 0, 0, + -502, -502, -502, -502, -502, -502, -502, 0, 0, -502, + 0, 0, 0, 0, 0, 0, 0, 0, -502, -502, + 0, -502, -502, -502, -502, -502, -502, -502, -502, -502, + -502, -502, -502, 0, -502, -502, 0, -502, -502, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -502, 0, 0, + -502, -502, 0, -502, -502, 0, -502, -502, -502, -502, + 0, 0, 0, -502, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -503, -503, -503, 0, -503, + -502, -502, -502, -503, -503, 0, 0, 0, -503, 0, + -503, -503, -503, -503, -503, -503, -503, 0, 0, -502, + 0, 0, -503, -503, -503, -503, -503, -503, -503, 0, + 0, -503, 0, 0, 0, 0, 0, 0, 0, 0, + -503, -503, 0, -503, -503, -503, -503, -503, -503, -503, + -503, -503, -503, -503, -503, 0, -503, -503, 0, -503, + -503, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -503, + 0, 0, -503, -503, 0, -503, -503, 0, -503, -503, + -503, -503, 0, 0, 0, -503, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 6, 7, + 0, 9, -503, -503, -503, 10, 11, 0, 0, 0, + 12, 0, 13, 14, 15, 93, 94, 18, 19, 0, + 0, -503, 0, 0, 95, 96, 97, 23, 24, 25, + 26, 0, 0, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 31, 32, 0, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 42, 43, 0, 44, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 277, 0, 0, 103, 50, 0, 51, 52, 0, + 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 6, 7, + 0, 9, 0, 0, 104, 10, 11, 0, 0, 0, + 12, 0, 13, 14, 15, 93, 94, 18, 19, 0, + 0, 0, 278, 0, 95, 96, 97, 23, 24, 25, + 26, 0, 0, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 31, 32, 0, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 42, 43, 0, 44, 45, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 0, 0, 329, 330, 0, 0, 0, + 0, 277, 0, 0, 103, 50, 0, 51, 52, 0, + 0, 0, 54, 55, 0, 0, 0, 56, 0, 331, + 0, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 0, 0, 0, 104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 495, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 0, 0, 0, + 137, 138, 139, 190, 191, 192, 193, 144, 145, 146, + 0, 0, 0, 0, 0, 147, 148, 149, 194, 195, + 152, 196, 154, 284, 285, 197, 286, 0, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 0, 0, 165, 166, + 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 0, 0, 0, 288, 0, 0, 0, 0, 0, 0, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 182, 183, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 0, 0, 0, + 137, 138, 139, 190, 191, 192, 193, 144, 145, 146, + 0, 0, 0, 0, 0, 147, 148, 149, 194, 195, + 152, 196, 154, 284, 285, 197, 286, 0, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 0, 0, 165, 166, + 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 182, 183, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 0, 0, 0, + 137, 138, 139, 190, 191, 192, 193, 144, 145, 146, + 0, 0, 0, 0, 0, 147, 148, 149, 194, 195, + 152, 196, 154, 0, 0, 197, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 0, 0, 165, 166, + 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 0, 198, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 182, 183, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 0, 0, 0, + 137, 138, 139, 190, 191, 192, 193, 144, 145, 146, + 0, 0, 0, 0, 0, 147, 148, 149, 194, 195, + 152, 196, 154, 0, 0, 197, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 0, 0, 165, 166, + 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 182, 183, 5, 6, 7, 8, 9, 0, 0, + 0, 10, 11, 0, 0, 0, 12, 0, 13, 14, + 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, + 20, 21, 22, 23, 24, 25, 26, 0, 0, 27, + 0, 0, 0, 0, 0, 28, 29, 30, 31, 32, + 0, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 42, 43, 0, 44, 45, 0, 46, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, + 49, 50, 0, 51, 52, 0, 53, 0, 54, 55, + 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, + 5, 6, 7, 8, 9, 0, 0, 0, 10, 11, + 57, 58, 59, 12, 0, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 0, 0, 0, 20, 21, 22, + 23, 24, 25, 26, 0, 0, 27, 0, 0, 0, + 0, 0, 28, 0, 30, 31, 32, 0, 33, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, + 0, 44, 45, 0, 46, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 0, 0, 49, 50, 0, + 51, 52, 0, 53, 0, 54, 55, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 5, 6, 7, + 0, 9, 0, 0, 0, 10, 11, 57, 58, 59, + 12, 0, 13, 14, 15, 16, 17, 18, 19, 0, + 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, + 26, 0, 0, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 31, 32, 0, 33, 34, 35, 36, 37, + 38, 229, 39, 40, 41, 42, 43, 0, 44, 45, + 0, 46, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 204, 0, 0, 103, 50, 0, 51, 52, 0, + 230, 231, 54, 55, 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 5, 6, 7, 0, 9, 0, + 0, 0, 10, 11, 57, 232, 59, 12, 0, 13, + 14, 15, 93, 94, 18, 19, 0, 0, 0, 0, + 0, 95, 96, 97, 23, 24, 25, 26, 0, 0, + 98, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 32, 0, 33, 34, 35, 36, 37, 38, 229, 39, + 40, 41, 42, 43, 0, 44, 45, 0, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, + 0, 103, 50, 0, 51, 52, 0, 599, 231, 54, + 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, + 0, 5, 6, 7, 0, 9, 0, 0, 0, 10, + 11, 57, 232, 59, 12, 0, 13, 14, 15, 93, + 94, 18, 19, 0, 0, 0, 0, 0, 95, 96, + 97, 23, 24, 25, 26, 0, 0, 98, 0, 0, + 0, 0, 0, 0, 0, 0, 31, 32, 0, 33, + 34, 35, 36, 37, 38, 229, 39, 40, 41, 42, + 43, 0, 44, 45, 0, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 204, 0, 0, 103, 50, + 0, 51, 52, 0, 230, 0, 54, 55, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 5, 6, + 7, 0, 9, 0, 0, 0, 10, 11, 57, 232, + 59, 12, 0, 13, 14, 15, 93, 94, 18, 19, + 0, 0, 0, 0, 0, 95, 96, 97, 23, 24, + 25, 26, 0, 0, 98, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 32, 0, 33, 34, 35, 36, + 37, 38, 229, 39, 40, 41, 42, 43, 0, 44, + 45, 0, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 204, 0, 0, 103, 50, 0, 51, 52, + 0, 0, 231, 54, 55, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 5, 6, 7, 0, 9, + 0, 0, 0, 10, 11, 57, 232, 59, 12, 0, + 13, 14, 15, 93, 94, 18, 19, 0, 0, 0, + 0, 0, 95, 96, 97, 23, 24, 25, 26, 0, + 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 32, 0, 33, 34, 35, 36, 37, 38, 229, + 39, 40, 41, 42, 43, 0, 44, 45, 0, 46, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, + 0, 0, 103, 50, 0, 51, 52, 0, 599, 0, + 54, 55, 0, 0, 0, 56, 0, 0, 0, 0, + 0, 0, 5, 6, 7, 0, 9, 0, 0, 0, + 10, 11, 57, 232, 59, 12, 0, 13, 14, 15, + 93, 94, 18, 19, 0, 0, 0, 0, 0, 95, + 96, 97, 23, 24, 25, 26, 0, 0, 98, 0, + 0, 0, 0, 0, 0, 0, 0, 31, 32, 0, + 33, 34, 35, 36, 37, 38, 229, 39, 40, 41, + 42, 43, 0, 44, 45, 0, 46, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 0, 0, 103, + 50, 0, 51, 52, 0, 0, 0, 54, 55, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 0, 5, + 6, 7, 0, 9, 0, 0, 0, 10, 11, 57, + 232, 59, 12, 0, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 0, 0, 0, 20, 21, 22, 23, + 24, 25, 26, 0, 0, 98, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 32, 0, 33, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 42, 43, 0, + 44, 45, 0, 46, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 204, 0, 0, 103, 50, 0, 51, + 52, 0, 489, 0, 54, 55, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 0, 5, 6, 7, 0, + 9, 0, 0, 0, 10, 11, 57, 232, 59, 12, + 0, 13, 14, 15, 93, 94, 18, 19, 0, 0, + 0, 0, 0, 95, 96, 97, 23, 24, 25, 26, + 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, + 0, 31, 32, 0, 33, 34, 35, 36, 37, 38, + 0, 39, 40, 41, 42, 43, 0, 44, 45, 0, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 204, 0, 0, 103, 50, 0, 51, 52, 0, 230, + 0, 54, 55, 0, 0, 0, 56, 0, 0, 0, + 0, 0, 0, 5, 6, 7, 0, 9, 0, 0, + 0, 10, 11, 57, 232, 59, 12, 0, 13, 14, + 15, 93, 94, 18, 19, 0, 0, 0, 0, 0, + 95, 96, 97, 23, 24, 25, 26, 0, 0, 98, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 32, + 0, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 42, 43, 0, 44, 45, 0, 46, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 204, 0, 0, + 103, 50, 0, 51, 52, 0, 489, 0, 54, 55, + 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, + 5, 6, 7, 0, 9, 0, 0, 0, 10, 11, + 57, 232, 59, 12, 0, 13, 14, 15, 93, 94, + 18, 19, 0, 0, 0, 0, 0, 95, 96, 97, + 23, 24, 25, 26, 0, 0, 98, 0, 0, 0, + 0, 0, 0, 0, 0, 31, 32, 0, 33, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, + 0, 44, 45, 0, 46, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 204, 0, 0, 103, 50, 0, + 51, 52, 0, 752, 0, 54, 55, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 0, 5, 6, 7, + 0, 9, 0, 0, 0, 10, 11, 57, 232, 59, + 12, 0, 13, 14, 15, 93, 94, 18, 19, 0, + 0, 0, 0, 0, 95, 96, 97, 23, 24, 25, + 26, 0, 0, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 31, 32, 0, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 42, 43, 0, 44, 45, + 0, 46, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 204, 0, 0, 103, 50, 0, 51, 52, 0, + 599, 0, 54, 55, 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 5, 6, 7, 0, 9, 0, + 0, 0, 10, 11, 57, 232, 59, 12, 0, 13, + 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, + 0, 20, 21, 22, 23, 24, 25, 26, 0, 0, + 27, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 32, 0, 33, 34, 35, 36, 37, 38, 0, 39, + 40, 41, 42, 43, 0, 44, 45, 0, 46, 47, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, + 0, 103, 50, 0, 51, 52, 0, 0, 0, 54, + 55, 0, 0, 0, 56, 0, 0, 0, 0, 0, + 0, 5, 6, 7, 0, 9, 0, 0, 0, 10, + 11, 57, 58, 59, 12, 0, 13, 14, 15, 93, + 94, 18, 19, 0, 0, 0, 0, 0, 95, 96, + 97, 23, 24, 25, 26, 0, 0, 98, 0, 0, + 0, 0, 0, 0, 0, 0, 31, 32, 0, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, + 43, 0, 44, 45, 0, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 204, 0, 0, 103, 50, + 0, 51, 52, 0, 0, 0, 54, 55, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 5, 6, + 7, 0, 9, 0, 0, 0, 10, 11, 57, 232, + 59, 12, 0, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, + 25, 26, 0, 0, 98, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 32, 0, 33, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 42, 43, 0, 44, + 45, 0, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 204, 0, 0, 103, 50, 0, 51, 52, + 0, 0, 0, 54, 55, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 5, 6, 7, 0, 9, + 0, 0, 0, 10, 11, 57, 232, 59, 12, 0, + 13, 14, 15, 93, 94, 18, 19, 0, 0, 0, + 0, 0, 95, 96, 97, 23, 24, 25, 26, 0, + 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 32, 0, 99, 34, 35, 36, 100, 38, 0, + 39, 40, 41, 42, 43, 0, 44, 45, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 101, 0, 0, 102, + 0, 0, 103, 50, 0, 51, 52, 0, 0, 0, + 54, 55, 0, 0, 0, 56, 0, 0, 5, 6, + 7, 0, 9, 0, 0, 0, 10, 11, 0, 0, + 0, 12, 104, 13, 14, 15, 93, 94, 18, 19, + 0, 0, 0, 0, 0, 95, 96, 97, 23, 24, + 25, 26, 0, 0, 98, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 32, 0, 33, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 42, 43, 0, 44, + 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 222, 0, 0, 49, 50, 0, 51, 52, + 0, 53, 0, 54, 55, 0, 0, 0, 56, 0, + 0, 5, 6, 7, 0, 9, 0, 0, 0, 10, + 11, 0, 0, 0, 12, 104, 13, 14, 15, 93, + 94, 18, 19, 0, 0, 0, 0, 0, 95, 96, + 97, 23, 24, 25, 26, 0, 0, 98, 0, 0, + 0, 0, 0, 0, 0, 0, 31, 32, 0, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, + 43, 0, 44, 45, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 277, 0, 0, 312, 50, + 0, 51, 52, 0, 313, 0, 54, 55, 0, 0, + 0, 56, 0, 0, 5, 6, 7, 0, 9, 0, + 0, 0, 10, 11, 0, 0, 0, 12, 104, 13, + 14, 15, 93, 94, 18, 19, 0, 0, 0, 0, + 0, 95, 96, 97, 23, 24, 25, 26, 0, 0, + 98, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 32, 0, 99, 34, 35, 36, 100, 38, 0, 39, + 40, 41, 42, 43, 0, 44, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, + 0, 103, 50, 0, 51, 52, 0, 0, 0, 54, + 55, 0, 0, 0, 56, 0, 0, 5, 6, 7, + 0, 9, 0, 0, 0, 10, 11, 0, 0, 0, + 12, 104, 13, 14, 15, 93, 94, 18, 19, 0, + 0, 0, 0, 0, 95, 96, 97, 23, 24, 25, + 26, 0, 0, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 31, 32, 0, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 42, 43, 0, 44, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 277, 0, 0, 312, 50, 0, 51, 52, 0, + 0, 0, 54, 55, 0, 0, 0, 56, 0, 0, + 5, 6, 7, 0, 9, 0, 0, 0, 10, 11, + 0, 0, 0, 12, 104, 13, 14, 15, 93, 94, + 18, 19, 0, 0, 0, 0, 0, 95, 96, 97, + 23, 24, 25, 26, 0, 0, 98, 0, 0, 0, + 0, 0, 0, 0, 0, 31, 32, 0, 33, 34, + 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, + 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 836, 0, 0, 103, 50, 0, + 51, 52, 0, 0, 0, 54, 55, 0, 0, 0, + 56, 0, 0, 5, 6, 7, 0, 9, 0, 0, + 0, 10, 11, 0, 0, 0, 12, 104, 13, 14, + 15, 93, 94, 18, 19, 0, 0, 0, 0, 0, + 95, 96, 97, 23, 24, 25, 26, 0, 0, 98, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 32, + 0, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 42, 43, 0, 44, 45, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 862, 0, 0, + 103, 50, 0, 51, 52, 0, 0, 0, 54, 55, + 0, 0, 0, 56, 0, 538, 539, 0, 0, 540, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 104, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 0, 0, 165, 166, 0, 0, 167, 168, 169, 170, + 0, 0, 316, 317, 318, 319, 320, 321, 322, 0, + 171, 325, 326, 0, 0, 0, 0, 329, 330, 0, + 0, 0, 0, 0, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 0, 182, 183, 0, 559, 531, + 0, 0, 560, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 246, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 0, 0, 165, 166, 0, 0, 167, + 168, 169, 170, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 0, 182, 183, + 0, 544, 539, 0, 0, 545, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 246, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 0, 0, 165, 166, + 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 182, 183, 0, 579, 531, 0, 0, 580, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 0, + 0, 165, 166, 0, 0, 167, 168, 169, 170, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 0, 182, 183, 0, 582, 539, 0, + 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 246, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 0, 0, 165, 166, 0, 0, 167, 168, + 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 0, 182, 183, 0, + 592, 531, 0, 0, 593, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 246, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 0, 0, 165, 166, 0, + 0, 167, 168, 169, 170, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 0, + 182, 183, 0, 595, 539, 0, 0, 596, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 246, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 0, 0, + 165, 166, 0, 0, 167, 168, 169, 170, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 171, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 0, 182, 183, 0, 620, 531, 0, 0, + 621, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 246, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 0, 0, 165, 166, 0, 0, 167, 168, 169, + 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 0, 182, 183, 0, 623, + 539, 0, 0, 624, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 246, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 0, 0, 165, 166, 0, 0, + 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 0, 182, + 183, 0, 901, 531, 0, 0, 902, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 246, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 0, 0, 165, + 166, 0, 0, 167, 168, 169, 170, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 0, 182, 183, 0, 904, 539, 0, 0, 905, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 246, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 0, 0, 165, 166, 0, 0, 167, 168, 169, 170, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 0, 182, 183, 0, 912, 531, + 0, 0, 913, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 246, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 0, 0, 165, 166, 0, 0, 167, + 168, 169, 170, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 0, 182, 183, + 0, 544, 539, 0, 0, 545, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 246, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 0, 0, 165, 166, + 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 0, 182, 183, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, -524, -524, 0, 0, 329, 330, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341 +}; + +#define yypact_value_is_default(yystate) \ + ((yystate) == (-728)) + +#define yytable_value_is_error(yytable_value) \ + ((yytable_value) == (-524)) + +static const yytype_int16 yycheck[] = +{ + 2, 278, 27, 72, 79, 212, 58, 22, 239, 5, + 6, 16, 17, 22, 28, 20, 7, 369, 343, 15, + 12, 283, 388, 8, 283, 393, 315, 271, 563, 406, + 12, 275, 4, 61, 102, 53, 315, 16, 17, 49, + 1, 20, 367, 28, 403, 61, 581, 406, 640, 51, + 52, 725, 11, 12, 2, 446, 4, 53, 383, 594, + 342, 438, 344, 13, 55, 347, 13, 15, 637, 61, + 27, 396, 51, 52, 13, 90, 72, 804, 574, 61, + 652, 90, 97, 547, 548, 86, 368, 622, 584, 2, + 13, 4, 13, 260, 16, 17, 111, 25, 20, 25, + 382, 49, 384, 727, 495, 16, 17, 822, 86, 20, + 62, 63, 371, 249, 106, 397, 69, 26, 88, 26, + 88, 29, 25, 448, 106, 88, 800, 13, 264, 0, + 25, 637, 268, 107, 640, 136, 137, 107, 139, 107, + 51, 77, 424, 86, 107, 312, 652, 342, 138, 344, + 111, 640, 347, 143, 643, 103, 883, 134, 25, 137, + 25, 25, 25, 652, 117, 118, 119, 449, 138, 446, + 138, 366, 744, 368, 107, 138, 112, 892, 852, 37, + 38, 142, 143, 667, 415, 142, 143, 382, 138, 384, + 674, 28, 142, 143, 137, 142, 143, 105, 460, 215, + 395, 460, 397, 142, 143, 138, 558, 198, 882, 278, + 138, 139, 138, 139, 86, 807, 568, 681, 495, 142, + 143, 142, 143, 215, 206, 134, 850, 134, 423, 424, + 212, 608, 139, 215, 262, 138, 238, 239, 243, 52, + 245, 246, 811, 138, 246, 15, 262, 17, 607, 608, + 260, 820, 447, 139, 449, 203, 142, 143, 310, 86, + 55, 220, 221, 315, 243, 137, 245, 107, 86, 660, + 262, 138, 408, 138, 138, 138, 412, 138, 138, 86, + 262, 417, 278, 143, 88, 143, 86, 138, 270, 271, + 88, 427, 143, 275, 573, 313, 432, 793, 366, 351, + 352, 807, 312, 107, 86, 567, 254, 88, 567, 136, + 137, 259, 260, 139, 820, 86, 822, 313, 807, 137, + 809, 243, 139, 245, 813, 86, 107, 139, 300, 344, + 137, 49, 243, 822, 245, 824, 136, 137, 343, 86, + 25, 343, 301, 302, 303, 304, 259, 25, 716, 58, + 59, 86, 300, 368, 136, 137, 86, 305, 494, 139, + 37, 38, 367, 143, 312, 367, 137, 315, 903, 384, + 362, 602, 661, 617, 376, 444, 137, 446, 383, 586, + 362, 383, 397, 660, 51, 103, 892, 300, 55, 136, + 137, 396, 305, 652, 396, 138, 88, 886, 55, 310, + 392, 393, 137, 892, 315, 894, 420, 137, 897, 424, + 392, 393, 414, 415, 26, 107, 229, 230, 231, 421, + 797, 369, 107, 775, 403, 86, 495, 793, 88, 107, + 566, 379, 921, 88, 449, 420, 142, 143, 797, 387, + 86, 107, 86, 448, 58, 59, 448, 107, 444, 88, + 446, 17, 107, 138, 86, 140, 435, 455, 143, 86, + 138, 142, 140, 86, 466, 143, 468, 51, 470, 53, + 54, 55, 56, 421, 86, 136, 137, 88, 389, 86, + 62, 63, 430, 835, 62, 63, 488, 55, 719, 86, + 136, 137, 136, 137, 519, 631, 107, 310, 89, 495, + 88, 25, 315, 138, 136, 137, 62, 63, 421, 136, + 137, 69, 537, 136, 137, 134, 88, 430, 138, 107, + 535, 780, 134, 26, 136, 137, 535, 475, 543, 136, + 137, 546, 14, 15, 543, 107, 254, 546, 563, 136, + 137, 543, 260, 143, 546, 547, 548, 562, 140, 564, + 138, 876, 688, 107, 138, 26, 581, 571, 141, 135, + 55, 88, 564, 555, 26, 138, 138, 69, 69, 594, + 95, 573, 574, 555, 576, 782, 389, 569, 138, 570, + 107, 788, 584, 86, 62, 10, 571, 569, 724, 402, + 403, 660, 8, 406, 312, 877, 13, 622, 557, 10, + 602, 676, 140, 138, 586, 138, 135, 138, 633, 661, + 558, 138, 664, 665, 107, 86, 138, 138, 670, 671, + 568, 51, 435, 138, 86, 438, 138, 652, 607, 627, + 628, 134, 51, 136, 137, 617, 139, 107, 597, 138, + 138, 10, 2, 15, 4, 5, 6, 10, 135, 138, + 10, 11, 12, 138, 135, 15, 16, 17, 109, 10, + 20, 379, 573, 134, 660, 136, 137, 141, 139, 387, + 10, 89, 134, 9, 136, 137, 489, 139, 10, 681, + 875, 10, 877, 138, 138, 142, 634, 635, 140, 49, + 50, 683, 10, 53, 696, 135, 891, 699, 58, 138, + 648, 683, 138, 138, 51, 653, 53, 54, 55, 56, + 138, 763, 72, 661, 135, 107, 112, 719, 51, 744, + 53, 54, 55, 56, 716, 138, 138, 725, 138, 727, + 678, 679, 734, 735, 716, 737, 10, 739, 740, 138, + 10, 101, 701, 103, 746, 135, 748, 749, 10, 10, + 698, 51, 138, 53, 54, 55, 56, 475, 112, 138, + 573, 135, 10, 55, 712, 713, 714, 138, 138, 51, + 55, 53, 54, 55, 56, 10, 138, 138, 10, 51, + 138, 53, 54, 55, 56, 781, 599, 139, 421, 139, + 90, 793, 138, 15, 607, 608, 96, 97, 6, 879, + 782, 69, 800, 801, 546, 138, 788, 627, 90, 883, + 7, 677, 625, 878, 114, 97, 288, 117, 90, -1, + 780, 817, 637, 820, 96, 97, 774, 775, -1, -1, + 855, -1, 114, 781, 189, -1, -1, 785, -1, 139, + -1, -1, 114, 203, 657, 117, -1, 115, 116, 117, + 118, 119, 850, -1, 852, -1, 858, 859, 860, 861, + 220, 221, 877, 865, 866, 867, -1, 869, 870, -1, + -1, 876, -1, -1, 876, -1, 878, 879, 903, 10, + 11, 12, -1, 243, 882, 245, 246, 835, -1, 249, + 250, -1, -1, 841, 254, 843, -1, -1, 711, 259, + 260, 849, 40, 41, 42, 43, 44, -1, -1, 911, + -1, -1, 914, 915, 916, 917, 634, 635, 278, 50, + -1, -1, -1, 925, 51, -1, 53, 54, 55, 56, + 648, -1, -1, -1, -1, 653, -1, -1, -1, 752, + 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, + 310, -1, 312, 313, 51, 315, 53, 54, 55, 56, + 678, 679, -1, 90, -1, -1, -1, -1, -1, 51, + 101, 53, 54, 55, 56, -1, -1, -1, -1, -1, + 698, -1, -1, 343, 797, 51, -1, 53, 54, 55, + 56, 351, 352, 90, 712, 713, 714, -1, -1, 96, + 97, -1, -1, -1, -1, -1, -1, 367, 90, 369, + 370, -1, -1, -1, 96, 97, -1, 114, -1, 379, + 117, -1, -1, 383, 90, -1, -1, 387, 69, -1, + 96, 97, 114, -1, -1, 117, 396, -1, -1, -1, + -1, -1, -1, 84, 85, -1, 143, -1, 114, -1, + -1, 117, -1, -1, -1, -1, 774, 139, -1, -1, + -1, 421, -1, -1, -1, 16, 17, 785, -1, 20, + 430, 112, 113, 114, 115, 116, 117, 118, 119, -1, + -1, -1, -1, -1, 444, -1, 446, -1, 448, 220, + 221, -1, -1, -1, -1, 46, 47, -1, -1, -1, + 51, 52, -1, -1, -1, -1, -1, 58, 59, -1, + -1, 69, -1, 44, -1, 475, -1, 69, 249, 250, + -1, -1, -1, 841, -1, 843, 84, 85, -1, -1, + -1, 849, 84, 85, -1, 495, -1, -1, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, -1, -1, 84, 85, -1, 114, 115, 116, 117, + 118, 119, -1, 115, 116, 117, 118, 119, -1, -1, + 301, 302, 303, 304, -1, 306, 307, 108, -1, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 51, + -1, 53, 54, 55, 56, -1, -1, 557, 558, -1, + 69, 70, 71, 72, 73, 74, 75, 138, 568, 78, + 79, -1, -1, -1, -1, 84, 85, -1, -1, 2, + -1, 4, 5, 6, 7, -1, -1, -1, 90, -1, + -1, -1, 15, -1, 96, -1, -1, 597, -1, 370, + -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 51, -1, 53, 54, 55, 56, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, + 53, -1, -1, -1, 634, 635, -1, -1, 229, 230, + 231, 232, -1, -1, -1, -1, -1, -1, 648, 72, + 90, -1, 243, 653, 245, 246, 96, -1, -1, -1, + 660, 661, -1, -1, 664, 665, -1, -1, -1, -1, + 670, 671, -1, -1, -1, -1, -1, -1, 678, 679, + 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 698, -1, + -1, 701, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 712, 713, 714, -1, -1, -1, -1, 310, + -1, -1, -1, -1, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, -1, 343, -1, -1, -1, -1, -1, -1, -1, + 351, 352, -1, 763, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 774, 775, 367, -1, -1, -1, + 203, 781, -1, -1, -1, 785, 557, -1, -1, -1, + 381, -1, 383, -1, 385, 386, -1, -1, 389, 2, + -1, 4, -1, -1, -1, 396, -1, -1, -1, -1, + -1, 402, 403, -1, -1, 406, -1, 817, -1, -1, + -1, -1, -1, -1, -1, -1, 597, -1, -1, -1, + -1, 254, -1, -1, 425, 835, 259, 260, -1, -1, + -1, 841, -1, 843, 435, -1, 49, 438, -1, 849, + -1, -1, 468, -1, 470, 278, -1, 448, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 876, 300, -1, -1, + -1, -1, 305, -1, -1, -1, -1, 478, 479, 312, + 313, 2, -1, 4, 5, 6, -1, -1, 489, -1, + 103, -1, -1, -1, 15, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, 8, 9, 10, -1, -1, + 13, 14, 15, -1, 17, -1, -1, -1, -1, -1, + 701, -1, -1, 26, 27, -1, -1, -1, 49, -1, + -1, -1, 53, -1, 37, 38, 369, 40, 41, 42, + 43, 44, -1, -1, -1, -1, 379, -1, -1, -1, + -1, 72, -1, -1, 387, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 573, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 103, 86, -1, -1, -1, -1, 421, -1, + 203, -1, -1, -1, -1, -1, -1, 430, 599, -1, + -1, -1, -1, -1, -1, -1, 607, 608, -1, -1, + -1, 444, -1, 446, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 625, -1, -1, -1, -1, -1, + -1, 134, 135, -1, 137, -1, 139, 140, -1, 142, + 143, 254, 475, -1, -1, -1, 259, 260, -1, -1, + -1, -1, -1, -1, -1, -1, 657, -1, -1, -1, + 661, 662, 495, 664, 665, -1, -1, -1, -1, 670, + 671, -1, -1, -1, -1, -1, -1, -1, -1, 680, + -1, -1, 203, -1, -1, -1, -1, 300, -1, -1, + -1, -1, 305, -1, -1, -1, -1, -1, -1, 312, + -1, -1, -1, 704, 705, -1, 707, 708, 734, 735, + 711, 737, -1, 739, 740, -1, -1, -1, -1, -1, + 746, -1, 748, 749, -1, 558, -1, -1, -1, -1, + -1, -1, -1, 254, -1, 568, -1, -1, 259, 260, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 752, -1, -1, -1, 756, 369, 278, -1, -1, + -1, -1, 763, -1, -1, -1, 379, -1, -1, -1, + -1, -1, -1, -1, 387, -1, -1, -1, -1, 300, + -1, -1, -1, -1, 305, -1, -1, -1, -1, 790, + -1, 312, 313, -1, -1, -1, 797, -1, -1, -1, + -1, 634, 635, -1, -1, -1, -1, -1, 421, -1, + -1, -1, -1, -1, -1, 648, -1, 430, -1, -1, + 653, -1, -1, -1, -1, -1, -1, 660, -1, -1, + -1, -1, 858, 859, 860, 861, -1, -1, -1, 865, + 866, 867, -1, 869, 870, 678, 679, -1, 369, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 379, -1, + -1, -1, 475, -1, -1, 698, 387, -1, -1, -1, + -1, -1, -1, -1, -1, 876, -1, -1, -1, 712, + 713, 714, -1, -1, -1, 911, -1, -1, 914, 915, + 916, 917, -1, -1, -1, -1, -1, -1, -1, 925, + 421, -1, -1, -1, -1, -1, -1, -1, -1, 430, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 444, -1, 446, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 774, 775, -1, -1, 558, -1, -1, 781, -1, + -1, -1, 785, -1, 475, 568, -1, -1, 5, 6, + -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, + -1, -1, -1, -1, 495, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 817, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, + 47, -1, 835, -1, 51, 52, 53, -1, 841, -1, + 843, -1, 59, -1, -1, -1, 849, -1, -1, -1, + -1, 634, 635, 44, -1, 72, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 648, -1, 558, -1, -1, + 653, -1, -1, -1, -1, -1, -1, 568, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, -1, -1, 84, 85, 678, 679, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 698, -1, 108, -1, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 712, + 713, 714, 69, 70, 71, 72, 73, 74, 75, 76, + -1, 78, 79, 634, 635, -1, -1, 84, 85, -1, + -1, -1, -1, -1, -1, -1, -1, 648, -1, -1, + -1, -1, 653, -1, -1, -1, -1, -1, -1, 660, + -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, -1, -1, -1, -1, 678, 679, -1, + -1, 774, 775, -1, -1, -1, -1, -1, -1, -1, + -1, 44, 785, -1, -1, -1, -1, 698, -1, -1, + -1, -1, 229, 230, 231, 232, -1, -1, -1, -1, + -1, 712, 713, 714, -1, -1, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, -1, + -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 835, -1, -1, -1, -1, -1, 841, -1, + 843, 278, -1, -1, -1, 108, 849, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, + -1, -1, -1, 774, 775, -1, -1, -1, -1, -1, + 781, -1, -1, -1, 785, -1, 313, -1, -1, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, -1, 817, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 835, -1, -1, -1, -1, -1, + 841, -1, 843, -1, -1, -1, -1, -1, 849, -1, + -1, -1, -1, -1, 381, -1, -1, -1, 385, 386, + -1, -1, 389, -1, -1, -1, -1, -1, 51, 52, + -1, -1, 55, -1, -1, 402, 403, -1, -1, 406, + -1, -1, -1, -1, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, 78, 79, -1, 425, 82, + 83, 84, 85, -1, -1, -1, -1, -1, 435, -1, + -1, 438, -1, 96, -1, -1, -1, 444, -1, 446, + -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 478, 479, -1, 0, 1, 139, 3, 4, 5, + 6, 7, 489, -1, -1, 11, 12, -1, 495, -1, + 16, -1, 18, 19, 20, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, 45, + 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, 61, 62, -1, 64, 65, + -1, 67, 68, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 87, -1, -1, 90, 91, 573, 93, 94, -1, + 96, -1, 98, 99, -1, -1, -1, 103, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 599, -1, 120, 121, 122, -1, -1, -1, + 607, 608, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 142, 143, 625, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 657, 0, -1, 660, -1, 662, -1, -1, -1, 8, + 9, 10, -1, -1, -1, 14, 15, -1, 17, -1, + -1, -1, -1, 680, -1, -1, -1, 26, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 37, 38, + -1, 40, 41, 42, 43, 44, -1, 704, 705, -1, + 707, 708, -1, -1, 711, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, -1, -1, 84, 85, 86, -1, 88, + -1, -1, -1, -1, -1, 752, -1, -1, -1, 756, + -1, -1, -1, -1, -1, -1, -1, -1, 107, 108, + -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, -1, -1, -1, 781, -1, -1, -1, -1, -1, + -1, -1, -1, 790, -1, 134, 135, 136, 137, 138, + 797, 140, 0, 142, 143, -1, -1, -1, -1, -1, + 8, 9, 10, -1, -1, -1, 14, 15, -1, 17, + 817, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, + 38, -1, 40, 41, 42, 43, 44, -1, -1, -1, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, -1, -1, 84, 85, -1, -1, -1, + -1, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, -1, -1, 84, 85, 86, 108, + 88, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, -1, -1, -1, -1, -1, -1, -1, -1, 107, + 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, -1, -1, 143, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 135, 136, 137, + 138, -1, 140, -1, 142, 143, 1, -1, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, + 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + 45, -1, 47, 48, 49, -1, 51, 52, 53, 54, + 55, 56, -1, 58, 59, 60, 61, 62, -1, 64, + 65, -1, 67, 68, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 87, -1, -1, 90, 91, -1, 93, 94, + -1, 96, -1, 98, 99, -1, -1, -1, 103, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, -1, 3, 4, 5, 6, 7, 142, 143, 10, + 11, 12, -1, 14, 15, 16, -1, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, 45, -1, 47, 48, 49, -1, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, + 61, 62, -1, 64, 65, -1, 67, 68, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 87, -1, -1, 90, + 91, -1, 93, 94, -1, 96, -1, 98, 99, -1, + -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 120, + 121, 122, -1, -1, -1, -1, -1, -1, -1, 1, + -1, 3, 4, 5, 6, 7, -1, -1, 10, 11, + 12, 142, 143, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, 45, -1, 47, 48, 49, -1, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, + 62, -1, 64, 65, -1, 67, 68, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, 90, 91, + -1, 93, 94, -1, 96, -1, 98, 99, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, + 122, -1, -1, -1, -1, -1, -1, -1, 1, -1, + 3, 4, 5, 6, 7, -1, -1, 10, 11, 12, + 142, 143, 15, 16, -1, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, + -1, -1, 45, -1, 47, 48, 49, -1, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, + -1, 64, 65, -1, 67, 68, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 87, -1, -1, 90, 91, -1, + 93, 94, -1, 96, -1, 98, 99, -1, -1, -1, + 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 120, 121, 122, + -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, + 5, 6, 7, -1, -1, -1, 11, 12, -1, 142, + 143, 16, -1, 18, 19, 20, 21, 22, 23, 24, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, + 55, 56, -1, 58, 59, 60, 61, 62, -1, 64, + 65, -1, 67, 68, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 87, -1, -1, 90, 91, -1, 93, 94, + -1, 96, -1, 98, 99, -1, -1, -1, 103, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 135, -1, -1, -1, -1, -1, -1, 142, 143, 1, + -1, 3, 4, 5, 6, 7, -1, 9, 10, 11, + 12, -1, -1, -1, 16, -1, 18, 19, 20, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, 45, -1, 47, 48, 49, -1, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, + 62, -1, 64, 65, -1, 67, 68, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, 90, 91, + -1, 93, 94, -1, 96, -1, 98, 99, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, + 122, -1, -1, -1, -1, -1, -1, 1, -1, 3, + 4, 5, 6, 7, -1, -1, -1, 11, 12, -1, + 142, 143, 16, -1, 18, 19, 20, 21, 22, 23, + 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, 45, -1, 47, 48, 49, -1, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, 61, 62, -1, + 64, 65, -1, 67, 68, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 87, -1, -1, 90, 91, -1, 93, + 94, -1, 96, -1, 98, 99, -1, -1, -1, 103, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 120, 121, 122, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 140, -1, 142, 143, + 1, -1, 3, 4, 5, 6, 7, -1, -1, -1, + 11, 12, -1, -1, -1, 16, -1, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, 45, -1, 47, 48, 49, -1, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, + 61, 62, -1, 64, 65, -1, 67, 68, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 87, -1, -1, 90, + 91, -1, 93, 94, -1, 96, -1, 98, 99, -1, + -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 120, + 121, 122, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, + -1, 142, 143, 1, -1, 3, 4, 5, 6, 7, + -1, -1, -1, 11, 12, -1, -1, -1, 16, -1, + 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, 45, -1, 47, + 48, 49, -1, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, 61, 62, -1, 64, 65, -1, 67, + 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, + -1, -1, 90, 91, -1, 93, 94, -1, 96, -1, + 98, 99, -1, -1, -1, 103, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 120, 121, 122, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, 142, 143, 1, -1, 3, 4, + 5, 6, 7, -1, -1, 10, 11, 12, -1, -1, + -1, 16, -1, 18, 19, 20, 21, 22, 23, 24, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + 45, -1, 47, 48, 49, -1, 51, 52, 53, 54, + 55, 56, -1, 58, 59, 60, 61, 62, -1, 64, + 65, -1, 67, 68, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 87, -1, -1, 90, 91, -1, 93, 94, + -1, 96, -1, 98, 99, -1, -1, -1, 103, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, + -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, + 7, -1, -1, -1, 11, 12, -1, 142, 143, 16, + -1, 18, 19, 20, 21, 22, 23, 24, -1, -1, + -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, + -1, 48, 49, -1, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, -1, 64, 65, -1, + 67, 68, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 87, -1, -1, 90, 91, -1, 93, 94, -1, 96, + 97, 98, 99, -1, -1, -1, 103, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 120, 121, 122, -1, -1, -1, -1, + -1, -1, 3, 4, 5, -1, 7, -1, -1, -1, + 11, 12, -1, -1, -1, 16, 143, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, -1, -1, -1, 48, 49, -1, + 51, 52, 53, 54, 55, 56, -1, 58, 59, 60, + 61, 62, -1, 64, 65, -1, 67, 68, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 87, -1, -1, 90, + 91, -1, 93, 94, -1, -1, -1, 98, 99, -1, + -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 120, + 121, 122, -1, -1, -1, -1, -1, -1, -1, -1, + 3, 4, 5, -1, 7, -1, -1, -1, 11, 12, + -1, 142, 143, 16, -1, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, + -1, -1, -1, -1, -1, 48, 49, -1, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, + -1, 64, 65, -1, 67, 68, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 87, -1, -1, 90, 91, -1, + 93, 94, -1, -1, -1, 98, 99, -1, -1, -1, + 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 120, 121, 122, + -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, + 7, -1, -1, -1, 11, 12, -1, -1, -1, 16, + 143, 18, 19, 20, 21, 22, 23, 24, -1, -1, + -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 39, -1, -1, -1, -1, -1, 45, 46, + 47, 48, 49, -1, 51, 52, 53, 54, 55, 56, + -1, 58, 59, 60, 61, 62, -1, 64, 65, -1, + 67, 68, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 87, -1, -1, 90, 91, -1, 93, 94, -1, 96, + -1, 98, 99, -1, -1, -1, 103, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 120, 121, 122, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, -1, -1, -1, 11, + 12, -1, -1, -1, 16, 142, 18, 19, 20, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, 45, -1, 47, 48, 49, -1, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, + 62, -1, 64, 65, -1, 67, 68, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, 90, 91, + -1, 93, 94, -1, 96, -1, 98, 99, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, + 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 142, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, -1, -1, + -1, -1, -1, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 67, 68, 69, 70, 71, + 72, 73, 74, 75, -1, -1, 78, 79, -1, -1, + 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, + 122, -1, -1, 3, 4, 5, -1, 7, -1, -1, + -1, 11, 12, -1, -1, -1, 16, 139, 18, 19, + 20, 21, 22, 23, 24, -1, 26, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + -1, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, -1, 64, 65, -1, 67, 68, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + 90, 91, -1, 93, 94, -1, 96, 97, 98, 99, + -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 120, 121, 122, -1, -1, -1, -1, 3, 4, 5, + -1, 7, -1, -1, 134, 11, 12, -1, -1, 139, + 16, -1, 18, 19, 20, 21, 22, 23, 24, -1, + 26, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, -1, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, -1, 64, 65, + -1, 67, 68, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 87, -1, -1, 90, 91, -1, 93, 94, -1, + 96, 97, 98, 99, -1, -1, -1, 103, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, + -1, 3, 4, 5, -1, 7, -1, -1, 134, 11, + 12, -1, -1, 139, 16, -1, 18, 19, 20, 21, + 22, 23, 24, -1, 26, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, -1, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, -1, 64, 65, -1, 67, 68, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, 90, 91, + -1, 93, 94, -1, 96, 97, 98, 99, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, + 122, -1, -1, -1, -1, 3, 4, 5, -1, 7, + -1, -1, 134, 11, 12, -1, -1, 139, 16, -1, + 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, -1, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, -1, 64, 65, -1, 67, + 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, + 88, -1, 90, 91, -1, 93, 94, -1, 96, 97, + 98, 99, -1, -1, -1, 103, -1, -1, -1, 107, + -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, + -1, 7, 120, 121, 122, 11, 12, -1, -1, -1, + 16, -1, 18, 19, 20, 21, 22, 23, 24, -1, + -1, 139, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, -1, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, -1, 64, 65, + -1, 67, 68, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 87, 88, -1, 90, 91, -1, 93, 94, -1, + 96, 97, 98, 99, -1, -1, -1, 103, -1, -1, + -1, 107, -1, -1, -1, -1, -1, -1, -1, 3, + 4, 5, -1, 7, 120, 121, 122, 11, 12, -1, + -1, -1, 16, -1, 18, 19, 20, 21, 22, 23, + 24, -1, -1, 139, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, -1, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, -1, + 64, 65, -1, 67, 68, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 87, -1, -1, 90, 91, -1, 93, + 94, -1, 96, 97, 98, 99, -1, -1, -1, 103, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3, 4, 5, -1, 7, 120, 121, 122, 11, + 12, -1, -1, -1, 16, -1, 18, 19, 20, 21, + 22, 23, 24, -1, -1, 139, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, -1, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, -1, 64, 65, -1, 67, 68, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, 90, 91, + -1, 93, 94, -1, 96, 97, 98, 99, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, 5, -1, 7, 120, 121, + 122, 11, 12, -1, -1, -1, 16, -1, 18, 19, + 20, 21, 22, 23, 24, -1, -1, 139, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + -1, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, -1, 64, 65, -1, 67, 68, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + 90, 91, -1, 93, 94, -1, 96, 97, 98, 99, + -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3, 4, 5, -1, 7, + 120, 121, 122, 11, 12, -1, -1, -1, 16, -1, + 18, 19, 20, 21, 22, 23, 24, -1, -1, 139, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, -1, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, -1, 64, 65, -1, 67, + 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, + -1, -1, 90, 91, -1, 93, 94, -1, 96, 97, + 98, 99, -1, -1, -1, 103, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, + -1, 7, 120, 121, 122, 11, 12, -1, -1, -1, + 16, -1, 18, 19, 20, 21, 22, 23, 24, -1, + -1, 139, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, -1, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, 61, 62, -1, 64, 65, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 87, -1, -1, 90, 91, -1, 93, 94, -1, + -1, -1, 98, 99, -1, -1, -1, 103, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, + -1, 7, -1, -1, 120, 11, 12, -1, -1, -1, + 16, -1, 18, 19, 20, 21, 22, 23, 24, -1, + -1, -1, 138, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, -1, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, 61, 62, -1, 64, 65, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, -1, -1, 84, 85, -1, -1, -1, + -1, 87, -1, -1, 90, 91, -1, 93, 94, -1, + -1, -1, 98, 99, -1, -1, -1, 103, -1, 108, + -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, -1, -1, -1, 120, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 138, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, -1, -1, + -1, -1, 62, -1, -1, -1, -1, 67, 68, 69, + 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, + -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, + -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + -1, 121, 122, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, -1, -1, -1, + -1, -1, 62, -1, -1, -1, -1, 67, 68, 69, + 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, + -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, + -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + -1, 121, 122, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, + 50, 51, 52, -1, -1, 55, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, + 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, + -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, -1, -1, 99, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + -1, 121, 122, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, + 50, 51, 52, -1, -1, 55, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, + 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, + -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + -1, 121, 122, 3, 4, 5, 6, 7, -1, -1, + -1, 11, 12, -1, -1, -1, 16, -1, 18, 19, + 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, 45, 46, 47, 48, 49, + -1, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, 61, 62, -1, 64, 65, -1, 67, 68, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + 90, 91, -1, 93, 94, -1, 96, -1, 98, 99, + -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, + 3, 4, 5, 6, 7, -1, -1, -1, 11, 12, + 120, 121, 122, 16, -1, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, + -1, -1, 45, -1, 47, 48, 49, -1, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, + -1, 64, 65, -1, 67, 68, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 87, -1, -1, 90, 91, -1, + 93, 94, -1, 96, -1, 98, 99, -1, -1, -1, + 103, -1, -1, -1, -1, -1, -1, 3, 4, 5, + -1, 7, -1, -1, -1, 11, 12, 120, 121, 122, + 16, -1, 18, 19, 20, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, -1, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, -1, 64, 65, + -1, 67, 68, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 87, -1, -1, 90, 91, -1, 93, 94, -1, + 96, 97, 98, 99, -1, -1, -1, 103, -1, -1, + -1, -1, -1, -1, 3, 4, 5, -1, 7, -1, + -1, -1, 11, 12, 120, 121, 122, 16, -1, 18, + 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, + 49, -1, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, -1, 64, 65, -1, 67, 68, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, + -1, 90, 91, -1, 93, 94, -1, 96, 97, 98, + 99, -1, -1, -1, 103, -1, -1, -1, -1, -1, + -1, 3, 4, 5, -1, 7, -1, -1, -1, 11, + 12, 120, 121, 122, 16, -1, 18, 19, 20, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, -1, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, -1, 64, 65, -1, 67, 68, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, 90, 91, + -1, 93, 94, -1, 96, -1, 98, 99, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, 3, 4, + 5, -1, 7, -1, -1, -1, 11, 12, 120, 121, + 122, 16, -1, 18, 19, 20, 21, 22, 23, 24, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + -1, -1, -1, 48, 49, -1, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, -1, 64, + 65, -1, 67, 68, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 87, -1, -1, 90, 91, -1, 93, 94, + -1, -1, 97, 98, 99, -1, -1, -1, 103, -1, + -1, -1, -1, -1, -1, 3, 4, 5, -1, 7, + -1, -1, -1, 11, 12, 120, 121, 122, 16, -1, + 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, -1, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, -1, 64, 65, -1, 67, + 68, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, + -1, -1, 90, 91, -1, 93, 94, -1, 96, -1, + 98, 99, -1, -1, -1, 103, -1, -1, -1, -1, + -1, -1, 3, 4, 5, -1, 7, -1, -1, -1, + 11, 12, 120, 121, 122, 16, -1, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, 35, 36, -1, -1, 39, -1, + -1, -1, -1, -1, -1, -1, -1, 48, 49, -1, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, -1, 64, 65, -1, 67, 68, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 87, -1, -1, 90, + 91, -1, 93, 94, -1, -1, -1, 98, 99, -1, + -1, -1, 103, -1, -1, -1, -1, -1, -1, 3, + 4, 5, -1, 7, -1, -1, -1, 11, 12, 120, + 121, 122, 16, -1, 18, 19, 20, 21, 22, 23, + 24, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, 35, 36, -1, -1, 39, -1, -1, -1, -1, + -1, -1, -1, -1, 48, 49, -1, 51, 52, 53, + 54, 55, 56, -1, 58, 59, 60, 61, 62, -1, + 64, 65, -1, 67, 68, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 87, -1, -1, 90, 91, -1, 93, + 94, -1, 96, -1, 98, 99, -1, -1, -1, 103, + -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, + 7, -1, -1, -1, 11, 12, 120, 121, 122, 16, + -1, 18, 19, 20, 21, 22, 23, 24, -1, -1, + -1, -1, -1, 30, 31, 32, 33, 34, 35, 36, + -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, + -1, 48, 49, -1, 51, 52, 53, 54, 55, 56, + -1, 58, 59, 60, 61, 62, -1, 64, 65, -1, + 67, 68, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 87, -1, -1, 90, 91, -1, 93, 94, -1, 96, + -1, 98, 99, -1, -1, -1, 103, -1, -1, -1, + -1, -1, -1, 3, 4, 5, -1, 7, -1, -1, + -1, 11, 12, 120, 121, 122, 16, -1, 18, 19, + 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + -1, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, 61, 62, -1, 64, 65, -1, 67, 68, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + 90, 91, -1, 93, 94, -1, 96, -1, 98, 99, + -1, -1, -1, 103, -1, -1, -1, -1, -1, -1, + 3, 4, 5, -1, 7, -1, -1, -1, 11, 12, + 120, 121, 122, 16, -1, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, + -1, -1, -1, -1, -1, 48, 49, -1, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, + -1, 64, 65, -1, 67, 68, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 87, -1, -1, 90, 91, -1, + 93, 94, -1, 96, -1, 98, 99, -1, -1, -1, + 103, -1, -1, -1, -1, -1, -1, 3, 4, 5, + -1, 7, -1, -1, -1, 11, 12, 120, 121, 122, + 16, -1, 18, 19, 20, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, -1, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, 61, 62, -1, 64, 65, + -1, 67, 68, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 87, -1, -1, 90, 91, -1, 93, 94, -1, + 96, -1, 98, 99, -1, -1, -1, 103, -1, -1, + -1, -1, -1, -1, 3, 4, 5, -1, 7, -1, + -1, -1, 11, 12, 120, 121, 122, 16, -1, 18, + 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, + 49, -1, 51, 52, 53, 54, 55, 56, -1, 58, + 59, 60, 61, 62, -1, 64, 65, -1, 67, 68, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, + -1, 90, 91, -1, 93, 94, -1, -1, -1, 98, + 99, -1, -1, -1, 103, -1, -1, -1, -1, -1, + -1, 3, 4, 5, -1, 7, -1, -1, -1, 11, + 12, 120, 121, 122, 16, -1, 18, 19, 20, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, -1, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, + 62, -1, 64, 65, -1, 67, 68, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, 90, 91, + -1, 93, 94, -1, -1, -1, 98, 99, -1, -1, + -1, 103, -1, -1, -1, -1, -1, -1, 3, 4, + 5, -1, 7, -1, -1, -1, 11, 12, 120, 121, + 122, 16, -1, 18, 19, 20, 21, 22, 23, 24, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + -1, -1, -1, 48, 49, -1, 51, 52, 53, 54, + 55, 56, -1, 58, 59, 60, 61, 62, -1, 64, + 65, -1, 67, 68, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 87, -1, -1, 90, 91, -1, 93, 94, + -1, -1, -1, 98, 99, -1, -1, -1, 103, -1, + -1, -1, -1, -1, -1, 3, 4, 5, -1, 7, + -1, -1, -1, 11, 12, 120, 121, 122, 16, -1, + 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, 35, 36, -1, + -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, + 48, 49, -1, 51, 52, 53, 54, 55, 56, -1, + 58, 59, 60, 61, 62, -1, 64, 65, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, -1, -1, 87, + -1, -1, 90, 91, -1, 93, 94, -1, -1, -1, + 98, 99, -1, -1, -1, 103, -1, -1, 3, 4, + 5, -1, 7, -1, -1, -1, 11, 12, -1, -1, + -1, 16, 120, 18, 19, 20, 21, 22, 23, 24, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + 35, 36, -1, -1, 39, -1, -1, -1, -1, -1, + -1, -1, -1, 48, 49, -1, 51, 52, 53, 54, + 55, 56, -1, 58, 59, 60, 61, 62, -1, 64, + 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 87, -1, -1, 90, 91, -1, 93, 94, + -1, 96, -1, 98, 99, -1, -1, -1, 103, -1, + -1, 3, 4, 5, -1, 7, -1, -1, -1, 11, + 12, -1, -1, -1, 16, 120, 18, 19, 20, 21, + 22, 23, 24, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, 35, 36, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, 48, 49, -1, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, + 62, -1, 64, 65, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, 90, 91, + -1, 93, 94, -1, 96, -1, 98, 99, -1, -1, + -1, 103, -1, -1, 3, 4, 5, -1, 7, -1, + -1, -1, 11, 12, -1, -1, -1, 16, 120, 18, + 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, + -1, 30, 31, 32, 33, 34, 35, 36, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, 48, + 49, -1, 51, 52, 53, 54, 55, 56, -1, 58, + 59, 60, 61, 62, -1, 64, 65, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, + -1, 90, 91, -1, 93, 94, -1, -1, -1, 98, + 99, -1, -1, -1, 103, -1, -1, 3, 4, 5, + -1, 7, -1, -1, -1, 11, 12, -1, -1, -1, + 16, 120, 18, 19, 20, 21, 22, 23, 24, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 34, 35, + 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, + -1, -1, 48, 49, -1, 51, 52, 53, 54, 55, + 56, -1, 58, 59, 60, 61, 62, -1, 64, 65, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 87, -1, -1, 90, 91, -1, 93, 94, -1, + -1, -1, 98, 99, -1, -1, -1, 103, -1, -1, + 3, 4, 5, -1, 7, -1, -1, -1, 11, 12, + -1, -1, -1, 16, 120, 18, 19, 20, 21, 22, + 23, 24, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, 35, 36, -1, -1, 39, -1, -1, -1, + -1, -1, -1, -1, -1, 48, 49, -1, 51, 52, + 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, + -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 87, -1, -1, 90, 91, -1, + 93, 94, -1, -1, -1, 98, 99, -1, -1, -1, + 103, -1, -1, 3, 4, 5, -1, 7, -1, -1, + -1, 11, 12, -1, -1, -1, 16, 120, 18, 19, + 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, 35, 36, -1, -1, 39, + -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, + -1, 51, 52, 53, 54, 55, 56, -1, 58, 59, + 60, 61, 62, -1, 64, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + 90, 91, -1, 93, 94, -1, -1, -1, 98, 99, + -1, -1, -1, 103, -1, 51, 52, -1, -1, 55, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 120, 67, 68, 69, 70, 71, 72, 73, 74, 75, + -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, + -1, -1, 69, 70, 71, 72, 73, 74, 75, -1, + 96, 78, 79, -1, -1, -1, -1, 84, 85, -1, + -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, -1, 121, 122, -1, 51, 52, + -1, -1, 55, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 139, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, 78, 79, -1, -1, 82, + 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, + -1, 51, 52, -1, -1, 55, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 139, 67, 68, 69, + 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, + -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + -1, 121, 122, -1, 51, 52, -1, -1, 55, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, + 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, + -1, 78, 79, -1, -1, 82, 83, 84, 85, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, -1, 121, 122, -1, 51, 52, -1, + -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 139, 67, 68, 69, 70, 71, 72, 73, + 74, 75, -1, -1, 78, 79, -1, -1, 82, 83, + 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, -1, 121, 122, -1, + 51, 52, -1, -1, 55, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 139, 67, 68, 69, 70, + 71, 72, 73, 74, 75, -1, -1, 78, 79, -1, + -1, 82, 83, 84, 85, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, + 121, 122, -1, 51, 52, -1, -1, 55, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 139, 67, + 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, + 78, 79, -1, -1, 82, 83, 84, 85, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, -1, 121, 122, -1, 51, 52, -1, -1, + 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 139, 67, 68, 69, 70, 71, 72, 73, 74, + 75, -1, -1, 78, 79, -1, -1, 82, 83, 84, + 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, -1, 121, 122, -1, 51, + 52, -1, -1, 55, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 139, 67, 68, 69, 70, 71, + 72, 73, 74, 75, -1, -1, 78, 79, -1, -1, + 82, 83, 84, 85, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, + 122, -1, 51, 52, -1, -1, 55, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 139, 67, 68, + 69, 70, 71, 72, 73, 74, 75, -1, -1, 78, + 79, -1, -1, 82, 83, 84, 85, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, -1, 121, 122, -1, 51, 52, -1, -1, 55, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 139, 67, 68, 69, 70, 71, 72, 73, 74, 75, + -1, -1, 78, 79, -1, -1, 82, 83, 84, 85, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, -1, 121, 122, -1, 51, 52, + -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 139, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, 78, 79, -1, -1, 82, + 83, 84, 85, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, + -1, 51, 52, -1, -1, 55, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 139, 67, 68, 69, + 70, 71, 72, 73, 74, 75, -1, -1, 78, 79, + -1, -1, 82, 83, 84, 85, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + -1, 121, 122, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, -1, -1, 84, 85, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 145, 146, 0, 1, 3, 4, 5, 6, 7, + 11, 12, 16, 18, 19, 20, 21, 22, 23, 24, + 30, 31, 32, 33, 34, 35, 36, 39, 45, 46, + 47, 48, 49, 51, 52, 53, 54, 55, 56, 58, + 59, 60, 61, 62, 64, 65, 67, 68, 87, 90, + 91, 93, 94, 96, 98, 99, 103, 120, 121, 122, + 147, 148, 149, 154, 156, 157, 159, 160, 163, 164, + 166, 167, 168, 170, 171, 181, 194, 212, 231, 232, + 242, 243, 247, 248, 249, 251, 252, 253, 254, 255, + 278, 290, 149, 21, 22, 30, 31, 32, 39, 51, + 55, 84, 87, 90, 120, 172, 173, 194, 212, 252, + 255, 278, 173, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 45, 46, 47, + 48, 49, 50, 51, 52, 55, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 78, 79, 82, 83, 84, + 85, 96, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 121, 122, 139, 174, 179, 180, 254, 273, + 33, 34, 35, 36, 48, 49, 51, 55, 99, 174, + 175, 177, 249, 195, 87, 157, 158, 171, 212, 252, + 253, 255, 158, 142, 143, 158, 282, 287, 288, 289, + 199, 201, 87, 164, 171, 212, 217, 252, 255, 57, + 96, 97, 121, 163, 181, 182, 187, 190, 192, 276, + 277, 187, 187, 139, 188, 189, 139, 184, 188, 139, + 283, 288, 175, 150, 134, 181, 212, 181, 55, 1, + 90, 152, 153, 154, 165, 166, 290, 157, 197, 183, + 192, 276, 290, 182, 275, 276, 290, 87, 138, 170, + 212, 252, 255, 198, 53, 54, 56, 62, 103, 174, + 250, 62, 63, 244, 58, 59, 159, 181, 181, 282, + 289, 40, 41, 42, 43, 44, 37, 38, 28, 229, + 107, 138, 90, 96, 167, 107, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 84, + 85, 108, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 86, 136, 137, 86, 137, 281, 26, 134, + 233, 88, 88, 184, 188, 233, 157, 51, 55, 172, + 58, 59, 1, 111, 256, 287, 86, 136, 137, 208, + 274, 209, 281, 103, 138, 151, 152, 55, 13, 213, + 287, 107, 86, 136, 137, 88, 88, 213, 282, 17, + 236, 142, 158, 158, 55, 86, 136, 137, 25, 182, + 182, 182, 89, 138, 191, 290, 138, 191, 187, 283, + 284, 187, 186, 187, 192, 276, 290, 157, 284, 157, + 155, 134, 152, 86, 137, 88, 154, 165, 140, 282, + 289, 284, 196, 284, 141, 138, 286, 288, 138, 286, + 135, 286, 55, 167, 168, 169, 138, 86, 136, 137, + 51, 53, 54, 55, 56, 90, 96, 97, 114, 117, + 139, 227, 259, 260, 261, 262, 263, 264, 267, 268, + 269, 270, 271, 62, 244, 245, 62, 63, 69, 69, + 149, 158, 158, 158, 158, 154, 157, 157, 230, 96, + 159, 182, 192, 193, 165, 138, 170, 138, 156, 159, + 171, 181, 182, 193, 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, + 51, 52, 55, 179, 184, 279, 280, 186, 51, 52, + 55, 179, 184, 279, 51, 55, 279, 235, 234, 159, + 181, 159, 181, 95, 161, 206, 287, 257, 205, 51, + 55, 172, 279, 186, 279, 151, 157, 139, 258, 259, + 210, 178, 10, 8, 238, 290, 152, 13, 181, 51, + 55, 186, 51, 55, 152, 236, 192, 10, 27, 214, + 287, 214, 51, 55, 186, 51, 55, 203, 182, 96, + 182, 190, 276, 277, 284, 140, 284, 138, 138, 284, + 175, 147, 135, 181, 284, 154, 284, 276, 167, 169, + 51, 55, 186, 51, 55, 107, 51, 90, 96, 218, + 219, 220, 261, 259, 29, 105, 228, 138, 272, 290, + 138, 272, 51, 138, 272, 51, 62, 152, 246, 181, + 181, 77, 112, 222, 223, 290, 182, 138, 284, 169, + 138, 107, 44, 283, 88, 88, 184, 188, 283, 285, + 88, 88, 184, 185, 188, 290, 185, 188, 222, 222, + 44, 162, 287, 158, 151, 285, 10, 284, 259, 151, + 287, 174, 175, 176, 182, 193, 239, 290, 15, 216, + 290, 14, 215, 216, 88, 88, 285, 88, 88, 216, + 10, 138, 213, 200, 202, 285, 158, 182, 191, 276, + 135, 286, 285, 182, 220, 138, 261, 138, 284, 224, + 283, 152, 152, 262, 267, 269, 271, 263, 264, 269, + 263, 135, 152, 51, 221, 224, 263, 265, 266, 269, + 271, 152, 96, 182, 169, 181, 109, 159, 181, 159, + 181, 161, 141, 88, 159, 181, 159, 181, 161, 233, + 229, 152, 152, 181, 222, 207, 287, 10, 284, 10, + 211, 89, 240, 290, 152, 9, 241, 290, 158, 10, + 88, 10, 182, 152, 152, 152, 214, 138, 284, 219, + 138, 96, 218, 140, 142, 10, 135, 138, 272, 138, + 272, 138, 272, 138, 272, 272, 135, 107, 224, 112, + 138, 272, 138, 272, 138, 272, 10, 182, 181, 159, + 181, 10, 135, 152, 151, 258, 87, 171, 212, 252, + 255, 213, 152, 213, 216, 236, 237, 10, 10, 204, + 138, 219, 138, 261, 51, 225, 226, 260, 263, 269, + 263, 263, 87, 212, 112, 266, 269, 263, 265, 269, + 263, 135, 10, 151, 55, 86, 136, 137, 152, 152, + 152, 219, 138, 138, 283, 272, 138, 272, 272, 272, + 55, 86, 138, 272, 138, 272, 272, 138, 272, 272, + 10, 51, 55, 186, 51, 55, 238, 215, 10, 219, + 226, 263, 51, 55, 263, 269, 263, 263, 285, 272, + 272, 138, 272, 272, 272, 263, 272 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ + +#define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (p, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* This macro is provided for backward compatibility. */ + +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval, p) +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, p); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_state *p) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep, p) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + parser_state *p; +#endif +{ + if (!yyvaluep) + return; + YYUSE (p); +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_state *p) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep, p) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + parser_state *p; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep, p); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +#else +static void +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule, parser_state *p) +#else +static void +yy_reduce_print (yyvsp, yyrule, p) + YYSTYPE *yyvsp; + int yyrule; + parser_state *p; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , p); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule, p); \ +} while (YYID (0)) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = 0; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> + for details. YYERROR is fine as it does not invoke this + function. + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, parser_state *p) +#else +static void +yydestruct (yymsg, yytype, yyvaluep, p) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; + parser_state *p; +#endif +{ + YYUSE (yyvaluep); + YYUSE (p); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (parser_state *p); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (parser_state *p) +#else +int +yyparse (p) + parser_state *p; +#endif +#endif +{ +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; + + /* Number of syntax errors so far. */ + int yynerrs; + + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + yyssp = yyss; + yyvsp = yyvs; + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + *++yyvsp = yylval; + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: + +/* Line 1806 of yacc.c */ +#line 996 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->lstate = EXPR_BEG; + if (!p->locals) p->locals = cons(0,0); + } + break; + + case 3: + +/* Line 1806 of yacc.c */ +#line 1001 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->tree = new_scope(p, (yyvsp[(2) - (2)].nd)); + } + break; + + case 4: + +/* Line 1806 of yacc.c */ +#line 1007 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (2)].nd); + } + break; + + case 5: + +/* Line 1806 of yacc.c */ +#line 1013 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_begin(p, 0); + } + break; + + case 6: + +/* Line 1806 of yacc.c */ +#line 1017 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_begin(p, (yyvsp[(1) - (1)].nd)); + } + break; + + case 7: + +/* Line 1806 of yacc.c */ +#line 1021 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), newline_node((yyvsp[(3) - (3)].nd))); + } + break; + + case 8: + +/* Line 1806 of yacc.c */ +#line 1025 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_begin(p, 0); + } + break; + + case 10: + +/* Line 1806 of yacc.c */ +#line 1032 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = local_switch(p); + } + break; + + case 11: + +/* Line 1806 of yacc.c */ +#line 1036 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "BEGIN not supported"); + local_resume(p, (yyvsp[(2) - (5)].nd)); + (yyval.nd) = 0; + } + break; + + case 12: + +/* Line 1806 of yacc.c */ +#line 1047 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if ((yyvsp[(2) - (4)].nd)) { + (yyval.nd) = new_rescue(p, (yyvsp[(1) - (4)].nd), (yyvsp[(2) - (4)].nd), (yyvsp[(3) - (4)].nd)); + } + else if ((yyvsp[(3) - (4)].nd)) { + yywarn(p, "else without rescue is useless"); + (yyval.nd) = append((yyval.nd), (yyvsp[(3) - (4)].nd)); + } + else { + (yyval.nd) = (yyvsp[(1) - (4)].nd); + } + if ((yyvsp[(4) - (4)].nd)) { + if ((yyval.nd)) { + (yyval.nd) = new_ensure(p, (yyval.nd), (yyvsp[(4) - (4)].nd)); + } + else { + (yyval.nd) = push((yyvsp[(4) - (4)].nd), new_nil(p)); + } + } + } + break; + + case 13: + +/* Line 1806 of yacc.c */ +#line 1070 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (2)].nd); + } + break; + + case 14: + +/* Line 1806 of yacc.c */ +#line 1076 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_begin(p, 0); + } + break; + + case 15: + +/* Line 1806 of yacc.c */ +#line 1080 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_begin(p, (yyvsp[(1) - (1)].nd)); + } + break; + + case 16: + +/* Line 1806 of yacc.c */ +#line 1084 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), newline_node((yyvsp[(3) - (3)].nd))); + } + break; + + case 17: + +/* Line 1806 of yacc.c */ +#line 1088 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_begin(p, (yyvsp[(2) - (2)].nd)); + } + break; + + case 18: + +/* Line 1806 of yacc.c */ +#line 1093 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {p->lstate = EXPR_FNAME;} + break; + + case 19: + +/* Line 1806 of yacc.c */ +#line 1094 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_alias(p, (yyvsp[(2) - (4)].id), (yyvsp[(4) - (4)].id)); + } + break; + + case 20: + +/* Line 1806 of yacc.c */ +#line 1098 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (2)].nd); + } + break; + + case 21: + +/* Line 1806 of yacc.c */ +#line 1102 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_if(p, cond((yyvsp[(3) - (3)].nd)), (yyvsp[(1) - (3)].nd), 0); + } + break; + + case 22: + +/* Line 1806 of yacc.c */ +#line 1106 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_unless(p, cond((yyvsp[(3) - (3)].nd)), (yyvsp[(1) - (3)].nd), 0); + } + break; + + case 23: + +/* Line 1806 of yacc.c */ +#line 1110 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_while(p, cond((yyvsp[(3) - (3)].nd)), (yyvsp[(1) - (3)].nd)); + } + break; + + case 24: + +/* Line 1806 of yacc.c */ +#line 1114 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_until(p, cond((yyvsp[(3) - (3)].nd)), (yyvsp[(1) - (3)].nd)); + } + break; + + case 25: + +/* Line 1806 of yacc.c */ +#line 1118 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_rescue(p, (yyvsp[(1) - (3)].nd), list1(list3(0, 0, (yyvsp[(3) - (3)].nd))), 0); + } + break; + + case 26: + +/* Line 1806 of yacc.c */ +#line 1122 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "END not suported"); + (yyval.nd) = new_postexe(p, (yyvsp[(3) - (4)].nd)); + } + break; + + case 28: + +/* Line 1806 of yacc.c */ +#line 1128 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_masgn(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 29: + +/* Line 1806 of yacc.c */ +#line 1132 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, (yyvsp[(1) - (3)].nd), (yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].nd)); + } + break; + + case 30: + +/* Line 1806 of yacc.c */ +#line 1136 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[(1) - (6)].nd), intern("[]"), (yyvsp[(3) - (6)].nd)), (yyvsp[(5) - (6)].id), (yyvsp[(6) - (6)].nd)); + } + break; + + case 31: + +/* Line 1806 of yacc.c */ +#line 1140 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), 0), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].nd)); + } + break; + + case 32: + +/* Line 1806 of yacc.c */ +#line 1144 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), 0), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].nd)); + } + break; + + case 33: + +/* Line 1806 of yacc.c */ +#line 1148 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "constant re-assignment"); + (yyval.nd) = 0; + } + break; + + case 34: + +/* Line 1806 of yacc.c */ +#line 1153 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), 0), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].nd)); + } + break; + + case 35: + +/* Line 1806 of yacc.c */ +#line 1157 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + backref_error(p, (yyvsp[(1) - (3)].nd)); + (yyval.nd) = new_begin(p, 0); + } + break; + + case 36: + +/* Line 1806 of yacc.c */ +#line 1162 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_asgn(p, (yyvsp[(1) - (3)].nd), new_array(p, (yyvsp[(3) - (3)].nd))); + } + break; + + case 37: + +/* Line 1806 of yacc.c */ +#line 1166 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_masgn(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 38: + +/* Line 1806 of yacc.c */ +#line 1170 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_masgn(p, (yyvsp[(1) - (3)].nd), new_array(p, (yyvsp[(3) - (3)].nd))); + } + break; + + case 40: + +/* Line 1806 of yacc.c */ +#line 1177 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_asgn(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 41: + +/* Line 1806 of yacc.c */ +#line 1181 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_asgn(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 43: + +/* Line 1806 of yacc.c */ +#line 1189 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_and(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 44: + +/* Line 1806 of yacc.c */ +#line 1193 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_or(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 45: + +/* Line 1806 of yacc.c */ +#line 1197 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, cond((yyvsp[(3) - (3)].nd)), "!"); + } + break; + + case 46: + +/* Line 1806 of yacc.c */ +#line 1201 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, cond((yyvsp[(2) - (2)].nd)), "!"); + } + break; + + case 48: + +/* Line 1806 of yacc.c */ +#line 1208 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if (!(yyvsp[(1) - (1)].nd)) (yyval.nd) = new_nil(p); + else (yyval.nd) = (yyvsp[(1) - (1)].nd); + } + break; + + case 53: + +/* Line 1806 of yacc.c */ +#line 1223 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_nest(p); + } + break; + + case 54: + +/* Line 1806 of yacc.c */ +#line 1229 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_block(p, (yyvsp[(3) - (5)].nd), (yyvsp[(4) - (5)].nd)); + local_unnest(p); + } + break; + + case 55: + +/* Line 1806 of yacc.c */ +#line 1236 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_fcall(p, (yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].nd)); + } + break; + + case 56: + +/* Line 1806 of yacc.c */ +#line 1240 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + args_with_block(p, (yyvsp[(2) - (3)].nd), (yyvsp[(3) - (3)].nd)); + (yyval.nd) = new_fcall(p, (yyvsp[(1) - (3)].id), (yyvsp[(2) - (3)].nd)); + } + break; + + case 57: + +/* Line 1806 of yacc.c */ +#line 1245 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].nd)); + } + break; + + case 58: + +/* Line 1806 of yacc.c */ +#line 1249 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + args_with_block(p, (yyvsp[(4) - (5)].nd), (yyvsp[(5) - (5)].nd)); + (yyval.nd) = new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].nd)); + } + break; + + case 59: + +/* Line 1806 of yacc.c */ +#line 1254 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].nd)); + } + break; + + case 60: + +/* Line 1806 of yacc.c */ +#line 1258 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + args_with_block(p, (yyvsp[(4) - (5)].nd), (yyvsp[(5) - (5)].nd)); + (yyval.nd) = new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].nd)); + } + break; + + case 61: + +/* Line 1806 of yacc.c */ +#line 1263 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_super(p, (yyvsp[(2) - (2)].nd)); + } + break; + + case 62: + +/* Line 1806 of yacc.c */ +#line 1267 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_yield(p, (yyvsp[(2) - (2)].nd)); + } + break; + + case 63: + +/* Line 1806 of yacc.c */ +#line 1271 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_return(p, ret_args(p, (yyvsp[(2) - (2)].nd))); + } + break; + + case 64: + +/* Line 1806 of yacc.c */ +#line 1275 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_break(p, ret_args(p, (yyvsp[(2) - (2)].nd))); + } + break; + + case 65: + +/* Line 1806 of yacc.c */ +#line 1279 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_next(p, ret_args(p, (yyvsp[(2) - (2)].nd))); + } + break; + + case 66: + +/* Line 1806 of yacc.c */ +#line 1285 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (1)].nd); + } + break; + + case 67: + +/* Line 1806 of yacc.c */ +#line 1289 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (3)].nd); + } + break; + + case 69: + +/* Line 1806 of yacc.c */ +#line 1296 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(2) - (3)].nd)); + } + break; + + case 70: + +/* Line 1806 of yacc.c */ +#line 1302 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(1) - (1)].nd)); + } + break; + + case 71: + +/* Line 1806 of yacc.c */ +#line 1306 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1(push((yyvsp[(1) - (2)].nd),(yyvsp[(2) - (2)].nd))); + } + break; + + case 72: + +/* Line 1806 of yacc.c */ +#line 1310 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list2((yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 73: + +/* Line 1806 of yacc.c */ +#line 1314 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3((yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].nd), (yyvsp[(5) - (5)].nd)); + } + break; + + case 74: + +/* Line 1806 of yacc.c */ +#line 1318 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list2((yyvsp[(1) - (2)].nd), new_nil(p)); + } + break; + + case 75: + +/* Line 1806 of yacc.c */ +#line 1322 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3((yyvsp[(1) - (4)].nd), new_nil(p), (yyvsp[(4) - (4)].nd)); + } + break; + + case 76: + +/* Line 1806 of yacc.c */ +#line 1326 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list2(0, (yyvsp[(2) - (2)].nd)); + } + break; + + case 77: + +/* Line 1806 of yacc.c */ +#line 1330 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3(0, (yyvsp[(2) - (4)].nd), (yyvsp[(4) - (4)].nd)); + } + break; + + case 78: + +/* Line 1806 of yacc.c */ +#line 1334 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list2(0, new_nil(p)); + } + break; + + case 79: + +/* Line 1806 of yacc.c */ +#line 1338 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3(0, new_nil(p), (yyvsp[(3) - (3)].nd)); + } + break; + + case 81: + +/* Line 1806 of yacc.c */ +#line 1345 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (3)].nd); + } + break; + + case 82: + +/* Line 1806 of yacc.c */ +#line 1351 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(1) - (2)].nd)); + } + break; + + case 83: + +/* Line 1806 of yacc.c */ +#line 1355 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), (yyvsp[(2) - (3)].nd)); + } + break; + + case 84: + +/* Line 1806 of yacc.c */ +#line 1361 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(1) - (1)].nd)); + } + break; + + case 85: + +/* Line 1806 of yacc.c */ +#line 1365 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (2)].nd), (yyvsp[(2) - (2)].nd)); + } + break; + + case 86: + +/* Line 1806 of yacc.c */ +#line 1371 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + assignable(p, (yyvsp[(1) - (1)].nd)); + } + break; + + case 87: + +/* Line 1806 of yacc.c */ +#line 1375 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (4)].nd), intern("[]"), (yyvsp[(3) - (4)].nd)); + } + break; + + case 88: + +/* Line 1806 of yacc.c */ +#line 1379 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id), 0); + } + break; + + case 89: + +/* Line 1806 of yacc.c */ +#line 1383 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id), 0); + } + break; + + case 90: + +/* Line 1806 of yacc.c */ +#line 1387 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id), 0); + } + break; + + case 91: + +/* Line 1806 of yacc.c */ +#line 1391 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if (p->in_def || p->in_single) + yyerror(p, "dynamic constant assignment"); + (yyval.nd) = new_colon2(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id)); + } + break; + + case 92: + +/* Line 1806 of yacc.c */ +#line 1397 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if (p->in_def || p->in_single) + yyerror(p, "dynamic constant assignment"); + (yyval.nd) = new_colon3(p, (yyvsp[(2) - (2)].id)); + } + break; + + case 93: + +/* Line 1806 of yacc.c */ +#line 1403 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + backref_error(p, (yyvsp[(1) - (1)].nd)); + (yyval.nd) = 0; + } + break; + + case 94: + +/* Line 1806 of yacc.c */ +#line 1410 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + assignable(p, (yyvsp[(1) - (1)].nd)); + } + break; + + case 95: + +/* Line 1806 of yacc.c */ +#line 1414 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (4)].nd), intern("[]"), (yyvsp[(3) - (4)].nd)); + } + break; + + case 96: + +/* Line 1806 of yacc.c */ +#line 1418 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id), 0); + } + break; + + case 97: + +/* Line 1806 of yacc.c */ +#line 1422 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id), 0); + } + break; + + case 98: + +/* Line 1806 of yacc.c */ +#line 1426 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id), 0); + } + break; + + case 99: + +/* Line 1806 of yacc.c */ +#line 1430 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if (p->in_def || p->in_single) + yyerror(p, "dynamic constant assignment"); + (yyval.nd) = new_colon2(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id)); + } + break; + + case 100: + +/* Line 1806 of yacc.c */ +#line 1436 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if (p->in_def || p->in_single) + yyerror(p, "dynamic constant assignment"); + (yyval.nd) = new_colon3(p, (yyvsp[(2) - (2)].id)); + } + break; + + case 101: + +/* Line 1806 of yacc.c */ +#line 1442 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + backref_error(p, (yyvsp[(1) - (1)].nd)); + (yyval.nd) = 0; + } + break; + + case 102: + +/* Line 1806 of yacc.c */ +#line 1449 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "class/module name must be CONSTANT"); + } + break; + + case 104: + +/* Line 1806 of yacc.c */ +#line 1456 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons((node*)1, nsym((yyvsp[(2) - (2)].id))); + } + break; + + case 105: + +/* Line 1806 of yacc.c */ +#line 1460 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons((node*)0, nsym((yyvsp[(1) - (1)].id))); + } + break; + + case 106: + +/* Line 1806 of yacc.c */ +#line 1464 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons((yyvsp[(1) - (3)].nd), nsym((yyvsp[(3) - (3)].id))); + } + break; + + case 110: + +/* Line 1806 of yacc.c */ +#line 1473 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->lstate = EXPR_ENDFN; + (yyval.id) = (yyvsp[(1) - (1)].id); + } + break; + + case 111: + +/* Line 1806 of yacc.c */ +#line 1478 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->lstate = EXPR_ENDFN; + (yyval.id) = (yyvsp[(1) - (1)].id); + } + break; + + case 114: + +/* Line 1806 of yacc.c */ +#line 1489 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_sym(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 115: + +/* Line 1806 of yacc.c */ +#line 1495 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_undef(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 116: + +/* Line 1806 of yacc.c */ +#line 1498 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {p->lstate = EXPR_FNAME;} + break; + + case 117: + +/* Line 1806 of yacc.c */ +#line 1499 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (4)].nd), (node*)(yyvsp[(4) - (4)].nd)); + } + break; + + case 118: + +/* Line 1806 of yacc.c */ +#line 1504 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("|"); } + break; + + case 119: + +/* Line 1806 of yacc.c */ +#line 1505 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("^"); } + break; + + case 120: + +/* Line 1806 of yacc.c */ +#line 1506 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("&"); } + break; + + case 121: + +/* Line 1806 of yacc.c */ +#line 1507 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("<=>"); } + break; + + case 122: + +/* Line 1806 of yacc.c */ +#line 1508 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("=="); } + break; + + case 123: + +/* Line 1806 of yacc.c */ +#line 1509 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("==="); } + break; + + case 124: + +/* Line 1806 of yacc.c */ +#line 1510 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("=~"); } + break; + + case 125: + +/* Line 1806 of yacc.c */ +#line 1511 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("!~"); } + break; + + case 126: + +/* Line 1806 of yacc.c */ +#line 1512 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern(">"); } + break; + + case 127: + +/* Line 1806 of yacc.c */ +#line 1513 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern(">="); } + break; + + case 128: + +/* Line 1806 of yacc.c */ +#line 1514 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("<"); } + break; + + case 129: + +/* Line 1806 of yacc.c */ +#line 1515 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("<="); } + break; + + case 130: + +/* Line 1806 of yacc.c */ +#line 1516 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("!="); } + break; + + case 131: + +/* Line 1806 of yacc.c */ +#line 1517 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("<<"); } + break; + + case 132: + +/* Line 1806 of yacc.c */ +#line 1518 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern(">>"); } + break; + + case 133: + +/* Line 1806 of yacc.c */ +#line 1519 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("+"); } + break; + + case 134: + +/* Line 1806 of yacc.c */ +#line 1520 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("-"); } + break; + + case 135: + +/* Line 1806 of yacc.c */ +#line 1521 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("*"); } + break; + + case 136: + +/* Line 1806 of yacc.c */ +#line 1522 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("*"); } + break; + + case 137: + +/* Line 1806 of yacc.c */ +#line 1523 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("/"); } + break; + + case 138: + +/* Line 1806 of yacc.c */ +#line 1524 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("%"); } + break; + + case 139: + +/* Line 1806 of yacc.c */ +#line 1525 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("**"); } + break; + + case 140: + +/* Line 1806 of yacc.c */ +#line 1526 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("!"); } + break; + + case 141: + +/* Line 1806 of yacc.c */ +#line 1527 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("~"); } + break; + + case 142: + +/* Line 1806 of yacc.c */ +#line 1528 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("+@"); } + break; + + case 143: + +/* Line 1806 of yacc.c */ +#line 1529 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("-@"); } + break; + + case 144: + +/* Line 1806 of yacc.c */ +#line 1530 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("[]"); } + break; + + case 145: + +/* Line 1806 of yacc.c */ +#line 1531 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { (yyval.id) = intern("[]="); } + break; + + case 186: + +/* Line 1806 of yacc.c */ +#line 1549 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_asgn(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 187: + +/* Line 1806 of yacc.c */ +#line 1553 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_asgn(p, (yyvsp[(1) - (5)].nd), new_rescue(p, (yyvsp[(3) - (5)].nd), list1(list3(0, 0, (yyvsp[(5) - (5)].nd))), 0)); + } + break; + + case 188: + +/* Line 1806 of yacc.c */ +#line 1557 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, (yyvsp[(1) - (3)].nd), (yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].nd)); + } + break; + + case 189: + +/* Line 1806 of yacc.c */ +#line 1561 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, (yyvsp[(1) - (5)].nd), (yyvsp[(2) - (5)].id), new_rescue(p, (yyvsp[(3) - (5)].nd), list1(list3(0, 0, (yyvsp[(5) - (5)].nd))), 0)); + } + break; + + case 190: + +/* Line 1806 of yacc.c */ +#line 1565 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[(1) - (6)].nd), intern("[]"), (yyvsp[(3) - (6)].nd)), (yyvsp[(5) - (6)].id), (yyvsp[(6) - (6)].nd)); + } + break; + + case 191: + +/* Line 1806 of yacc.c */ +#line 1569 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), 0), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].nd)); + } + break; + + case 192: + +/* Line 1806 of yacc.c */ +#line 1573 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), 0), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].nd)); + } + break; + + case 193: + +/* Line 1806 of yacc.c */ +#line 1577 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), 0), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].nd)); + } + break; + + case 194: + +/* Line 1806 of yacc.c */ +#line 1581 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "constant re-assignment"); + (yyval.nd) = new_begin(p, 0); + } + break; + + case 195: + +/* Line 1806 of yacc.c */ +#line 1586 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "constant re-assignment"); + (yyval.nd) = new_begin(p, 0); + } + break; + + case 196: + +/* Line 1806 of yacc.c */ +#line 1591 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + backref_error(p, (yyvsp[(1) - (3)].nd)); + (yyval.nd) = new_begin(p, 0); + } + break; + + case 197: + +/* Line 1806 of yacc.c */ +#line 1596 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_dot2(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 198: + +/* Line 1806 of yacc.c */ +#line 1600 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_dot3(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 199: + +/* Line 1806 of yacc.c */ +#line 1604 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "+", (yyvsp[(3) - (3)].nd)); + } + break; + + case 200: + +/* Line 1806 of yacc.c */ +#line 1608 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "-", (yyvsp[(3) - (3)].nd)); + } + break; + + case 201: + +/* Line 1806 of yacc.c */ +#line 1612 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "*", (yyvsp[(3) - (3)].nd)); + } + break; + + case 202: + +/* Line 1806 of yacc.c */ +#line 1616 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "/", (yyvsp[(3) - (3)].nd)); + } + break; + + case 203: + +/* Line 1806 of yacc.c */ +#line 1620 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "%", (yyvsp[(3) - (3)].nd)); + } + break; + + case 204: + +/* Line 1806 of yacc.c */ +#line 1624 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "**", (yyvsp[(3) - (3)].nd)); + } + break; + + case 205: + +/* Line 1806 of yacc.c */ +#line 1628 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, call_bin_op(p, (yyvsp[(2) - (4)].nd), "**", (yyvsp[(4) - (4)].nd)), "-@"); + } + break; + + case 206: + +/* Line 1806 of yacc.c */ +#line 1632 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, call_bin_op(p, (yyvsp[(2) - (4)].nd), "**", (yyvsp[(4) - (4)].nd)), "-@"); + } + break; + + case 207: + +/* Line 1806 of yacc.c */ +#line 1636 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, (yyvsp[(2) - (2)].nd), "+@"); + } + break; + + case 208: + +/* Line 1806 of yacc.c */ +#line 1640 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, (yyvsp[(2) - (2)].nd), "-@"); + } + break; + + case 209: + +/* Line 1806 of yacc.c */ +#line 1644 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "|", (yyvsp[(3) - (3)].nd)); + } + break; + + case 210: + +/* Line 1806 of yacc.c */ +#line 1648 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "^", (yyvsp[(3) - (3)].nd)); + } + break; + + case 211: + +/* Line 1806 of yacc.c */ +#line 1652 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "&", (yyvsp[(3) - (3)].nd)); + } + break; + + case 212: + +/* Line 1806 of yacc.c */ +#line 1656 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "<=>", (yyvsp[(3) - (3)].nd)); + } + break; + + case 213: + +/* Line 1806 of yacc.c */ +#line 1660 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), ">", (yyvsp[(3) - (3)].nd)); + } + break; + + case 214: + +/* Line 1806 of yacc.c */ +#line 1664 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), ">=", (yyvsp[(3) - (3)].nd)); + } + break; + + case 215: + +/* Line 1806 of yacc.c */ +#line 1668 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "<", (yyvsp[(3) - (3)].nd)); + } + break; + + case 216: + +/* Line 1806 of yacc.c */ +#line 1672 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "<=", (yyvsp[(3) - (3)].nd)); + } + break; + + case 217: + +/* Line 1806 of yacc.c */ +#line 1676 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "==", (yyvsp[(3) - (3)].nd)); + } + break; + + case 218: + +/* Line 1806 of yacc.c */ +#line 1680 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "===", (yyvsp[(3) - (3)].nd)); + } + break; + + case 219: + +/* Line 1806 of yacc.c */ +#line 1684 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "!=", (yyvsp[(3) - (3)].nd)); + } + break; + + case 220: + +/* Line 1806 of yacc.c */ +#line 1688 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = match_op(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); +#if 0 + if (nd_type((yyvsp[(1) - (3)].nd)) == NODE_LIT && TYPE((yyvsp[(1) - (3)].nd)->nd_lit) == T_REGEXP) { + (yyval.nd) = reg_named_capture_assign((yyvsp[(1) - (3)].nd)->nd_lit, (yyval.nd)); + } +#endif + } + break; + + case 221: + +/* Line 1806 of yacc.c */ +#line 1697 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "!~", (yyvsp[(3) - (3)].nd)); + } + break; + + case 222: + +/* Line 1806 of yacc.c */ +#line 1701 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, cond((yyvsp[(2) - (2)].nd)), "!"); + } + break; + + case 223: + +/* Line 1806 of yacc.c */ +#line 1705 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, cond((yyvsp[(2) - (2)].nd)), "~"); + } + break; + + case 224: + +/* Line 1806 of yacc.c */ +#line 1709 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), "<<", (yyvsp[(3) - (3)].nd)); + } + break; + + case 225: + +/* Line 1806 of yacc.c */ +#line 1713 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_bin_op(p, (yyvsp[(1) - (3)].nd), ">>", (yyvsp[(3) - (3)].nd)); + } + break; + + case 226: + +/* Line 1806 of yacc.c */ +#line 1717 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_and(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 227: + +/* Line 1806 of yacc.c */ +#line 1721 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_or(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 228: + +/* Line 1806 of yacc.c */ +#line 1725 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_if(p, cond((yyvsp[(1) - (6)].nd)), (yyvsp[(3) - (6)].nd), (yyvsp[(6) - (6)].nd)); + } + break; + + case 229: + +/* Line 1806 of yacc.c */ +#line 1729 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (1)].nd); + } + break; + + case 230: + +/* Line 1806 of yacc.c */ +#line 1735 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (1)].nd); + if (!(yyval.nd)) (yyval.nd) = new_nil(p); + } + break; + + case 232: + +/* Line 1806 of yacc.c */ +#line 1743 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (2)].nd); + } + break; + + case 233: + +/* Line 1806 of yacc.c */ +#line 1747 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (4)].nd), new_hash(p, (yyvsp[(3) - (4)].nd))); + } + break; + + case 234: + +/* Line 1806 of yacc.c */ +#line 1751 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(new_hash(p, (yyvsp[(1) - (2)].nd)), 0); + } + break; + + case 235: + +/* Line 1806 of yacc.c */ +#line 1757 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (3)].nd); + } + break; + + case 240: + +/* Line 1806 of yacc.c */ +#line 1769 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons((yyvsp[(1) - (2)].nd),0); + } + break; + + case 241: + +/* Line 1806 of yacc.c */ +#line 1773 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(push((yyvsp[(1) - (4)].nd), new_hash(p, (yyvsp[(3) - (4)].nd))), 0); + } + break; + + case 242: + +/* Line 1806 of yacc.c */ +#line 1777 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(list1(new_hash(p, (yyvsp[(1) - (2)].nd))), 0); + } + break; + + case 243: + +/* Line 1806 of yacc.c */ +#line 1783 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(list1((yyvsp[(1) - (1)].nd)), 0); + } + break; + + case 244: + +/* Line 1806 of yacc.c */ +#line 1787 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons((yyvsp[(1) - (2)].nd), (yyvsp[(2) - (2)].nd)); + } + break; + + case 245: + +/* Line 1806 of yacc.c */ +#line 1791 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(list1(new_hash(p, (yyvsp[(1) - (2)].nd))), (yyvsp[(2) - (2)].nd)); + } + break; + + case 246: + +/* Line 1806 of yacc.c */ +#line 1795 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(push((yyvsp[(1) - (4)].nd), new_hash(p, (yyvsp[(3) - (4)].nd))), (yyvsp[(4) - (4)].nd)); + } + break; + + case 247: + +/* Line 1806 of yacc.c */ +#line 1799 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(0, (yyvsp[(1) - (1)].nd)); + } + break; + + case 248: + +/* Line 1806 of yacc.c */ +#line 1804 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.stack) = p->cmdarg_stack; + CMDARG_PUSH(1); + } + break; + + case 249: + +/* Line 1806 of yacc.c */ +#line 1809 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->cmdarg_stack = (yyvsp[(1) - (2)].stack); + (yyval.nd) = (yyvsp[(2) - (2)].nd); + } + break; + + case 250: + +/* Line 1806 of yacc.c */ +#line 1816 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_block_arg(p, (yyvsp[(2) - (2)].nd)); + } + break; + + case 251: + +/* Line 1806 of yacc.c */ +#line 1822 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (2)].nd); + } + break; + + case 252: + +/* Line 1806 of yacc.c */ +#line 1826 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = 0; + } + break; + + case 253: + +/* Line 1806 of yacc.c */ +#line 1832 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons((yyvsp[(1) - (1)].nd), 0); + } + break; + + case 254: + +/* Line 1806 of yacc.c */ +#line 1836 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(new_splat(p, (yyvsp[(2) - (2)].nd)), 0); + } + break; + + case 255: + +/* Line 1806 of yacc.c */ +#line 1840 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 256: + +/* Line 1806 of yacc.c */ +#line 1844 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (4)].nd), new_splat(p, (yyvsp[(4) - (4)].nd))); + } + break; + + case 257: + +/* Line 1806 of yacc.c */ +#line 1850 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 258: + +/* Line 1806 of yacc.c */ +#line 1854 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (4)].nd), new_splat(p, (yyvsp[(4) - (4)].nd))); + } + break; + + case 259: + +/* Line 1806 of yacc.c */ +#line 1858 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1(new_splat(p, (yyvsp[(2) - (2)].nd))); + } + break; + + case 265: + +/* Line 1806 of yacc.c */ +#line 1869 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_fcall(p, (yyvsp[(1) - (1)].id), 0); + } + break; + + case 266: + +/* Line 1806 of yacc.c */ +#line 1873 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyvsp[(1) - (1)].stack) = p->cmdarg_stack; + p->cmdarg_stack = 0; + } + break; + + case 267: + +/* Line 1806 of yacc.c */ +#line 1879 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->cmdarg_stack = (yyvsp[(1) - (4)].stack); + (yyval.nd) = (yyvsp[(3) - (4)].nd); + } + break; + + case 268: + +/* Line 1806 of yacc.c */ +#line 1883 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {p->lstate = EXPR_ENDARG;} + break; + + case 269: + +/* Line 1806 of yacc.c */ +#line 1884 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (4)].nd); + } + break; + + case 270: + +/* Line 1806 of yacc.c */ +#line 1887 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {p->lstate = EXPR_ENDARG;} + break; + + case 271: + +/* Line 1806 of yacc.c */ +#line 1888 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = 0; + } + break; + + case 272: + +/* Line 1806 of yacc.c */ +#line 1892 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (3)].nd); + } + break; + + case 273: + +/* Line 1806 of yacc.c */ +#line 1896 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_colon2(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id)); + } + break; + + case 274: + +/* Line 1806 of yacc.c */ +#line 1900 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_colon3(p, (yyvsp[(2) - (2)].id)); + } + break; + + case 275: + +/* Line 1806 of yacc.c */ +#line 1904 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_array(p, (yyvsp[(2) - (3)].nd)); + } + break; + + case 276: + +/* Line 1806 of yacc.c */ +#line 1908 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_hash(p, (yyvsp[(2) - (3)].nd)); + } + break; + + case 277: + +/* Line 1806 of yacc.c */ +#line 1912 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_return(p, 0); + } + break; + + case 278: + +/* Line 1806 of yacc.c */ +#line 1916 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_yield(p, (yyvsp[(3) - (4)].nd)); + } + break; + + case 279: + +/* Line 1806 of yacc.c */ +#line 1920 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_yield(p, 0); + } + break; + + case 280: + +/* Line 1806 of yacc.c */ +#line 1924 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_yield(p, 0); + } + break; + + case 281: + +/* Line 1806 of yacc.c */ +#line 1928 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, cond((yyvsp[(3) - (4)].nd)), "!"); + } + break; + + case 282: + +/* Line 1806 of yacc.c */ +#line 1932 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = call_uni_op(p, new_nil(p), "!"); + } + break; + + case 283: + +/* Line 1806 of yacc.c */ +#line 1936 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_fcall(p, (yyvsp[(1) - (2)].id), cons(0, (yyvsp[(2) - (2)].nd))); + } + break; + + case 285: + +/* Line 1806 of yacc.c */ +#line 1941 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + call_with_block(p, (yyvsp[(1) - (2)].nd), (yyvsp[(2) - (2)].nd)); + (yyval.nd) = (yyvsp[(1) - (2)].nd); + } + break; + + case 286: + +/* Line 1806 of yacc.c */ +#line 1946 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_nest(p); + (yyval.num) = p->lpar_beg; + p->lpar_beg = ++p->paren_nest; + } + break; + + case 287: + +/* Line 1806 of yacc.c */ +#line 1953 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->lpar_beg = (yyvsp[(2) - (4)].num); + (yyval.nd) = new_lambda(p, (yyvsp[(3) - (4)].nd), (yyvsp[(4) - (4)].nd)); + local_unnest(p); + } + break; + + case 288: + +/* Line 1806 of yacc.c */ +#line 1962 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_if(p, cond((yyvsp[(2) - (6)].nd)), (yyvsp[(4) - (6)].nd), (yyvsp[(5) - (6)].nd)); + } + break; + + case 289: + +/* Line 1806 of yacc.c */ +#line 1969 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_unless(p, cond((yyvsp[(2) - (6)].nd)), (yyvsp[(4) - (6)].nd), (yyvsp[(5) - (6)].nd)); + } + break; + + case 290: + +/* Line 1806 of yacc.c */ +#line 1972 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {COND_PUSH(1);} + break; + + case 291: + +/* Line 1806 of yacc.c */ +#line 1972 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {COND_POP();} + break; + + case 292: + +/* Line 1806 of yacc.c */ +#line 1975 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_while(p, cond((yyvsp[(3) - (7)].nd)), (yyvsp[(6) - (7)].nd)); + } + break; + + case 293: + +/* Line 1806 of yacc.c */ +#line 1978 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {COND_PUSH(1);} + break; + + case 294: + +/* Line 1806 of yacc.c */ +#line 1978 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {COND_POP();} + break; + + case 295: + +/* Line 1806 of yacc.c */ +#line 1981 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_until(p, cond((yyvsp[(3) - (7)].nd)), (yyvsp[(6) - (7)].nd)); + } + break; + + case 296: + +/* Line 1806 of yacc.c */ +#line 1987 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_case(p, (yyvsp[(2) - (5)].nd), (yyvsp[(4) - (5)].nd)); + } + break; + + case 297: + +/* Line 1806 of yacc.c */ +#line 1991 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_case(p, 0, (yyvsp[(3) - (4)].nd)); + } + break; + + case 298: + +/* Line 1806 of yacc.c */ +#line 1995 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {COND_PUSH(1);} + break; + + case 299: + +/* Line 1806 of yacc.c */ +#line 1997 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {COND_POP();} + break; + + case 300: + +/* Line 1806 of yacc.c */ +#line 2000 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_for(p, (yyvsp[(2) - (9)].nd), (yyvsp[(5) - (9)].nd), (yyvsp[(8) - (9)].nd)); + } + break; + + case 301: + +/* Line 1806 of yacc.c */ +#line 2004 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if (p->in_def || p->in_single) + yyerror(p, "class definition in method body"); + (yyval.nd) = local_switch(p); + } + break; + + case 302: + +/* Line 1806 of yacc.c */ +#line 2011 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_class(p, (yyvsp[(2) - (6)].nd), (yyvsp[(3) - (6)].nd), (yyvsp[(5) - (6)].nd)); + local_resume(p, (yyvsp[(4) - (6)].nd)); + } + break; + + case 303: + +/* Line 1806 of yacc.c */ +#line 2016 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.num) = p->in_def; + p->in_def = 0; + } + break; + + case 304: + +/* Line 1806 of yacc.c */ +#line 2021 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(local_switch(p), (node*)(intptr_t)p->in_single); + p->in_single = 0; + } + break; + + case 305: + +/* Line 1806 of yacc.c */ +#line 2027 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_sclass(p, (yyvsp[(3) - (8)].nd), (yyvsp[(7) - (8)].nd)); + local_resume(p, (yyvsp[(6) - (8)].nd)->car); + p->in_def = (yyvsp[(4) - (8)].num); + p->in_single = (int)(intptr_t)(yyvsp[(6) - (8)].nd)->cdr; + } + break; + + case 306: + +/* Line 1806 of yacc.c */ +#line 2034 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if (p->in_def || p->in_single) + yyerror(p, "module definition in method body"); + (yyval.nd) = local_switch(p); + } + break; + + case 307: + +/* Line 1806 of yacc.c */ +#line 2041 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_module(p, (yyvsp[(2) - (5)].nd), (yyvsp[(4) - (5)].nd)); + local_resume(p, (yyvsp[(3) - (5)].nd)); + } + break; + + case 308: + +/* Line 1806 of yacc.c */ +#line 2046 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->in_def++; + (yyval.nd) = local_switch(p); + } + break; + + case 309: + +/* Line 1806 of yacc.c */ +#line 2053 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_def(p, (yyvsp[(2) - (6)].id), (yyvsp[(4) - (6)].nd), (yyvsp[(5) - (6)].nd)); + local_resume(p, (yyvsp[(3) - (6)].nd)); + p->in_def--; + } + break; + + case 310: + +/* Line 1806 of yacc.c */ +#line 2058 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {p->lstate = EXPR_FNAME;} + break; + + case 311: + +/* Line 1806 of yacc.c */ +#line 2059 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->in_single++; + p->lstate = EXPR_ENDFN; /* force for args */ + (yyval.nd) = local_switch(p); + } + break; + + case 312: + +/* Line 1806 of yacc.c */ +#line 2067 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_sdef(p, (yyvsp[(2) - (9)].nd), (yyvsp[(5) - (9)].id), (yyvsp[(7) - (9)].nd), (yyvsp[(8) - (9)].nd)); + local_resume(p, (yyvsp[(6) - (9)].nd)); + p->in_single--; + } + break; + + case 313: + +/* Line 1806 of yacc.c */ +#line 2073 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_break(p, 0); + } + break; + + case 314: + +/* Line 1806 of yacc.c */ +#line 2077 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_next(p, 0); + } + break; + + case 315: + +/* Line 1806 of yacc.c */ +#line 2081 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_redo(p); + } + break; + + case 316: + +/* Line 1806 of yacc.c */ +#line 2085 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_retry(p); + } + break; + + case 317: + +/* Line 1806 of yacc.c */ +#line 2091 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (1)].nd); + if (!(yyval.nd)) (yyval.nd) = new_nil(p); + } + break; + + case 324: + +/* Line 1806 of yacc.c */ +#line 2110 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_if(p, cond((yyvsp[(2) - (5)].nd)), (yyvsp[(4) - (5)].nd), (yyvsp[(5) - (5)].nd)); + } + break; + + case 326: + +/* Line 1806 of yacc.c */ +#line 2117 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (2)].nd); + } + break; + + case 327: + +/* Line 1806 of yacc.c */ +#line 2123 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1(list1((yyvsp[(1) - (1)].nd))); + } + break; + + case 329: + +/* Line 1806 of yacc.c */ +#line 2130 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_arg(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 330: + +/* Line 1806 of yacc.c */ +#line 2134 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_masgn(p, (yyvsp[(2) - (3)].nd), 0); + } + break; + + case 331: + +/* Line 1806 of yacc.c */ +#line 2140 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(1) - (1)].nd)); + } + break; + + case 332: + +/* Line 1806 of yacc.c */ +#line 2144 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 333: + +/* Line 1806 of yacc.c */ +#line 2150 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3((yyvsp[(1) - (1)].nd),0,0); + } + break; + + case 334: + +/* Line 1806 of yacc.c */ +#line 2154 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3((yyvsp[(1) - (4)].nd), new_arg(p, (yyvsp[(4) - (4)].id)), 0); + } + break; + + case 335: + +/* Line 1806 of yacc.c */ +#line 2158 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3((yyvsp[(1) - (6)].nd), new_arg(p, (yyvsp[(4) - (6)].id)), (yyvsp[(6) - (6)].nd)); + } + break; + + case 336: + +/* Line 1806 of yacc.c */ +#line 2162 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3((yyvsp[(1) - (3)].nd), (node*)-1, 0); + } + break; + + case 337: + +/* Line 1806 of yacc.c */ +#line 2166 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3((yyvsp[(1) - (5)].nd), (node*)-1, (yyvsp[(5) - (5)].nd)); + } + break; + + case 338: + +/* Line 1806 of yacc.c */ +#line 2170 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3(0, new_arg(p, (yyvsp[(2) - (2)].id)), 0); + } + break; + + case 339: + +/* Line 1806 of yacc.c */ +#line 2174 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3(0, new_arg(p, (yyvsp[(2) - (4)].id)), (yyvsp[(4) - (4)].nd)); + } + break; + + case 340: + +/* Line 1806 of yacc.c */ +#line 2178 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3(0, (node*)-1, 0); + } + break; + + case 341: + +/* Line 1806 of yacc.c */ +#line 2182 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list3(0, (node*)-1, (yyvsp[(3) - (3)].nd)); + } + break; + + case 342: + +/* Line 1806 of yacc.c */ +#line 2188 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (6)].nd), (yyvsp[(3) - (6)].nd), (yyvsp[(5) - (6)].id), 0, (yyvsp[(6) - (6)].id)); + } + break; + + case 343: + +/* Line 1806 of yacc.c */ +#line 2192 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (8)].nd), (yyvsp[(3) - (8)].nd), (yyvsp[(5) - (8)].id), (yyvsp[(7) - (8)].nd), (yyvsp[(8) - (8)].id)); + } + break; + + case 344: + +/* Line 1806 of yacc.c */ +#line 2196 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].nd), 0, 0, (yyvsp[(4) - (4)].id)); + } + break; + + case 345: + +/* Line 1806 of yacc.c */ +#line 2200 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (6)].nd), (yyvsp[(3) - (6)].nd), 0, (yyvsp[(5) - (6)].nd), (yyvsp[(6) - (6)].id)); + } + break; + + case 346: + +/* Line 1806 of yacc.c */ +#line 2204 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (4)].nd), 0, (yyvsp[(3) - (4)].id), 0, (yyvsp[(4) - (4)].id)); + } + break; + + case 347: + +/* Line 1806 of yacc.c */ +#line 2208 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (2)].nd), 0, 1, 0, 0); + } + break; + + case 348: + +/* Line 1806 of yacc.c */ +#line 2212 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (6)].nd), 0, (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].nd), (yyvsp[(6) - (6)].id)); + } + break; + + case 349: + +/* Line 1806 of yacc.c */ +#line 2216 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (2)].nd), 0, 0, 0, (yyvsp[(2) - (2)].id)); + } + break; + + case 350: + +/* Line 1806 of yacc.c */ +#line 2220 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].id), 0, (yyvsp[(4) - (4)].id)); + } + break; + + case 351: + +/* Line 1806 of yacc.c */ +#line 2224 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[(1) - (6)].nd), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].nd), (yyvsp[(6) - (6)].id)); + } + break; + + case 352: + +/* Line 1806 of yacc.c */ +#line 2228 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[(1) - (2)].nd), 0, 0, (yyvsp[(2) - (2)].id)); + } + break; + + case 353: + +/* Line 1806 of yacc.c */ +#line 2232 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[(1) - (4)].nd), 0, (yyvsp[(3) - (4)].nd), (yyvsp[(4) - (4)].id)); + } + break; + + case 354: + +/* Line 1806 of yacc.c */ +#line 2236 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, (yyvsp[(1) - (2)].id), 0, (yyvsp[(2) - (2)].id)); + } + break; + + case 355: + +/* Line 1806 of yacc.c */ +#line 2240 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, (yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].nd), (yyvsp[(4) - (4)].id)); + } + break; + + case 356: + +/* Line 1806 of yacc.c */ +#line 2244 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[(1) - (1)].id)); + } + break; + + case 358: + +/* Line 1806 of yacc.c */ +#line 2251 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->cmd_start = TRUE; + (yyval.nd) = (yyvsp[(1) - (1)].nd); + } + break; + + case 359: + +/* Line 1806 of yacc.c */ +#line 2258 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, 0); + (yyval.nd) = 0; + } + break; + + case 360: + +/* Line 1806 of yacc.c */ +#line 2263 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, 0); + (yyval.nd) = 0; + } + break; + + case 361: + +/* Line 1806 of yacc.c */ +#line 2268 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (4)].nd); + } + break; + + case 362: + +/* Line 1806 of yacc.c */ +#line 2275 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = 0; + } + break; + + case 363: + +/* Line 1806 of yacc.c */ +#line 2279 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = 0; + } + break; + + case 366: + +/* Line 1806 of yacc.c */ +#line 2289 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, (yyvsp[(1) - (1)].id)); + new_bv(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 368: + +/* Line 1806 of yacc.c */ +#line 2297 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (4)].nd); + } + break; + + case 369: + +/* Line 1806 of yacc.c */ +#line 2301 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (1)].nd); + } + break; + + case 370: + +/* Line 1806 of yacc.c */ +#line 2307 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (3)].nd); + } + break; + + case 371: + +/* Line 1806 of yacc.c */ +#line 2311 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (3)].nd); + } + break; + + case 372: + +/* Line 1806 of yacc.c */ +#line 2317 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_nest(p); + } + break; + + case 373: + +/* Line 1806 of yacc.c */ +#line 2323 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_block(p,(yyvsp[(3) - (5)].nd),(yyvsp[(4) - (5)].nd)); + local_unnest(p); + } + break; + + case 374: + +/* Line 1806 of yacc.c */ +#line 2330 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if ((yyvsp[(1) - (2)].nd)->car == (node*)NODE_YIELD) { + yyerror(p, "block given to yield"); + } + else { + call_with_block(p, (yyvsp[(1) - (2)].nd), (yyvsp[(2) - (2)].nd)); + } + (yyval.nd) = (yyvsp[(1) - (2)].nd); + } + break; + + case 375: + +/* Line 1806 of yacc.c */ +#line 2340 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].nd)); + } + break; + + case 376: + +/* Line 1806 of yacc.c */ +#line 2344 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].nd)); + call_with_block(p, (yyval.nd), (yyvsp[(5) - (5)].nd)); + } + break; + + case 377: + +/* Line 1806 of yacc.c */ +#line 2349 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (5)].nd), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].nd)); + call_with_block(p, (yyval.nd), (yyvsp[(5) - (5)].nd)); + } + break; + + case 378: + +/* Line 1806 of yacc.c */ +#line 2356 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_fcall(p, (yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].nd)); + } + break; + + case 379: + +/* Line 1806 of yacc.c */ +#line 2360 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].nd)); + } + break; + + case 380: + +/* Line 1806 of yacc.c */ +#line 2364 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].nd)); + } + break; + + case 381: + +/* Line 1806 of yacc.c */ +#line 2368 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].id), 0); + } + break; + + case 382: + +/* Line 1806 of yacc.c */ +#line 2372 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (3)].nd), intern("call"), (yyvsp[(3) - (3)].nd)); + } + break; + + case 383: + +/* Line 1806 of yacc.c */ +#line 2376 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (3)].nd), intern("call"), (yyvsp[(3) - (3)].nd)); + } + break; + + case 384: + +/* Line 1806 of yacc.c */ +#line 2380 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_super(p, (yyvsp[(2) - (2)].nd)); + } + break; + + case 385: + +/* Line 1806 of yacc.c */ +#line 2384 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_zsuper(p); + } + break; + + case 386: + +/* Line 1806 of yacc.c */ +#line 2388 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_call(p, (yyvsp[(1) - (4)].nd), intern("[]"), (yyvsp[(3) - (4)].nd)); + } + break; + + case 387: + +/* Line 1806 of yacc.c */ +#line 2394 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_nest(p); + } + break; + + case 388: + +/* Line 1806 of yacc.c */ +#line 2399 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_block(p,(yyvsp[(3) - (5)].nd),(yyvsp[(4) - (5)].nd)); + local_unnest(p); + } + break; + + case 389: + +/* Line 1806 of yacc.c */ +#line 2404 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_nest(p); + } + break; + + case 390: + +/* Line 1806 of yacc.c */ +#line 2409 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_block(p,(yyvsp[(3) - (5)].nd),(yyvsp[(4) - (5)].nd)); + local_unnest(p); + } + break; + + case 391: + +/* Line 1806 of yacc.c */ +#line 2418 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(cons((yyvsp[(2) - (5)].nd), (yyvsp[(4) - (5)].nd)), (yyvsp[(5) - (5)].nd)); + } + break; + + case 392: + +/* Line 1806 of yacc.c */ +#line 2424 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if ((yyvsp[(1) - (1)].nd)) { + (yyval.nd) = cons(cons(0, (yyvsp[(1) - (1)].nd)), 0); + } + else { + (yyval.nd) = 0; + } + } + break; + + case 394: + +/* Line 1806 of yacc.c */ +#line 2438 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1(list3((yyvsp[(2) - (6)].nd), (yyvsp[(3) - (6)].nd), (yyvsp[(5) - (6)].nd))); + if ((yyvsp[(6) - (6)].nd)) (yyval.nd) = append((yyval.nd), (yyvsp[(6) - (6)].nd)); + } + break; + + case 396: + +/* Line 1806 of yacc.c */ +#line 2446 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(1) - (1)].nd)); + } + break; + + case 399: + +/* Line 1806 of yacc.c */ +#line 2454 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (2)].nd); + } + break; + + case 401: + +/* Line 1806 of yacc.c */ +#line 2461 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (2)].nd); + } + break; + + case 407: + +/* Line 1806 of yacc.c */ +#line 2474 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (2)].nd); + } + break; + + case 408: + +/* Line 1806 of yacc.c */ +#line 2478 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_dstr(p, push((yyvsp[(2) - (3)].nd), (yyvsp[(3) - (3)].nd))); + } + break; + + case 409: + +/* Line 1806 of yacc.c */ +#line 2484 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.num) = p->sterm; + p->sterm = 0; + } + break; + + case 410: + +/* Line 1806 of yacc.c */ +#line 2490 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->sterm = (yyvsp[(2) - (4)].num); + (yyval.nd) = list2((yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].nd)); + } + break; + + case 411: + +/* Line 1806 of yacc.c */ +#line 2496 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.num) = p->sterm; + p->sterm = 0; + } + break; + + case 412: + +/* Line 1806 of yacc.c */ +#line 2502 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->sterm = (yyvsp[(3) - (5)].num); + (yyval.nd) = push(push((yyvsp[(1) - (5)].nd), (yyvsp[(2) - (5)].nd)), (yyvsp[(4) - (5)].nd)); + } + break; + + case 414: + +/* Line 1806 of yacc.c */ +#line 2512 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_sym(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 415: + +/* Line 1806 of yacc.c */ +#line 2516 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->lstate = EXPR_END; + (yyval.nd) = new_dsym(p, push((yyvsp[(3) - (4)].nd), (yyvsp[(4) - (4)].nd))); + } + break; + + case 416: + +/* Line 1806 of yacc.c */ +#line 2523 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->lstate = EXPR_END; + (yyval.id) = (yyvsp[(2) - (2)].id); + } + break; + + case 421: + +/* Line 1806 of yacc.c */ +#line 2534 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.id) = new_strsym(p, (yyvsp[(1) - (1)].nd)); + } + break; + + case 422: + +/* Line 1806 of yacc.c */ +#line 2538 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.id) = new_strsym(p, (yyvsp[(2) - (2)].nd)); + } + break; + + case 425: + +/* Line 1806 of yacc.c */ +#line 2546 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = negate_lit(p, (yyvsp[(2) - (2)].nd)); + } + break; + + case 426: + +/* Line 1806 of yacc.c */ +#line 2550 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = negate_lit(p, (yyvsp[(2) - (2)].nd)); + } + break; + + case 427: + +/* Line 1806 of yacc.c */ +#line 2556 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_lvar(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 428: + +/* Line 1806 of yacc.c */ +#line 2560 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_ivar(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 429: + +/* Line 1806 of yacc.c */ +#line 2564 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_gvar(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 430: + +/* Line 1806 of yacc.c */ +#line 2568 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_cvar(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 431: + +/* Line 1806 of yacc.c */ +#line 2572 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_const(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 432: + +/* Line 1806 of yacc.c */ +#line 2578 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + assignable(p, (yyvsp[(1) - (1)].nd)); + } + break; + + case 433: + +/* Line 1806 of yacc.c */ +#line 2584 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = var_reference(p, (yyvsp[(1) - (1)].nd)); + } + break; + + case 434: + +/* Line 1806 of yacc.c */ +#line 2588 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_nil(p); + } + break; + + case 435: + +/* Line 1806 of yacc.c */ +#line 2592 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_self(p); + } + break; + + case 436: + +/* Line 1806 of yacc.c */ +#line 2596 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_true(p); + } + break; + + case 437: + +/* Line 1806 of yacc.c */ +#line 2600 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_false(p); + } + break; + + case 438: + +/* Line 1806 of yacc.c */ +#line 2604 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if (!p->filename) { + p->filename = "(null)"; + } + (yyval.nd) = new_str(p, p->filename, strlen(p->filename)); + } + break; + + case 439: + +/* Line 1806 of yacc.c */ +#line 2611 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + char buf[16]; + + snprintf(buf, sizeof(buf), "%d", p->lineno); + (yyval.nd) = new_int(p, buf, 10); + } + break; + + case 442: + +/* Line 1806 of yacc.c */ +#line 2624 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = 0; + } + break; + + case 443: + +/* Line 1806 of yacc.c */ +#line 2628 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->lstate = EXPR_BEG; + p->cmd_start = TRUE; + } + break; + + case 444: + +/* Line 1806 of yacc.c */ +#line 2633 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(3) - (4)].nd); + } + break; + + case 445: + +/* Line 1806 of yacc.c */ +#line 2637 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerrok; + (yyval.nd) = 0; + } + break; + + case 446: + +/* Line 1806 of yacc.c */ +#line 2644 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(2) - (3)].nd); + p->lstate = EXPR_BEG; + p->cmd_start = TRUE; + } + break; + + case 447: + +/* Line 1806 of yacc.c */ +#line 2650 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (2)].nd); + } + break; + + case 448: + +/* Line 1806 of yacc.c */ +#line 2656 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (6)].nd), (yyvsp[(3) - (6)].nd), (yyvsp[(5) - (6)].id), 0, (yyvsp[(6) - (6)].id)); + } + break; + + case 449: + +/* Line 1806 of yacc.c */ +#line 2660 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (8)].nd), (yyvsp[(3) - (8)].nd), (yyvsp[(5) - (8)].id), (yyvsp[(7) - (8)].nd), (yyvsp[(8) - (8)].id)); + } + break; + + case 450: + +/* Line 1806 of yacc.c */ +#line 2664 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].nd), 0, 0, (yyvsp[(4) - (4)].id)); + } + break; + + case 451: + +/* Line 1806 of yacc.c */ +#line 2668 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (6)].nd), (yyvsp[(3) - (6)].nd), 0, (yyvsp[(5) - (6)].nd), (yyvsp[(6) - (6)].id)); + } + break; + + case 452: + +/* Line 1806 of yacc.c */ +#line 2672 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (4)].nd), 0, (yyvsp[(3) - (4)].id), 0, (yyvsp[(4) - (4)].id)); + } + break; + + case 453: + +/* Line 1806 of yacc.c */ +#line 2676 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (6)].nd), 0, (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].nd), (yyvsp[(6) - (6)].id)); + } + break; + + case 454: + +/* Line 1806 of yacc.c */ +#line 2680 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, (yyvsp[(1) - (2)].nd), 0, 0, 0, (yyvsp[(2) - (2)].id)); + } + break; + + case 455: + +/* Line 1806 of yacc.c */ +#line 2684 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[(1) - (4)].nd), (yyvsp[(3) - (4)].id), 0, (yyvsp[(4) - (4)].id)); + } + break; + + case 456: + +/* Line 1806 of yacc.c */ +#line 2688 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[(1) - (6)].nd), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].nd), (yyvsp[(6) - (6)].id)); + } + break; + + case 457: + +/* Line 1806 of yacc.c */ +#line 2692 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[(1) - (2)].nd), 0, 0, (yyvsp[(2) - (2)].id)); + } + break; + + case 458: + +/* Line 1806 of yacc.c */ +#line 2696 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, (yyvsp[(1) - (4)].nd), 0, (yyvsp[(3) - (4)].nd), (yyvsp[(4) - (4)].id)); + } + break; + + case 459: + +/* Line 1806 of yacc.c */ +#line 2700 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, (yyvsp[(1) - (2)].id), 0, (yyvsp[(2) - (2)].id)); + } + break; + + case 460: + +/* Line 1806 of yacc.c */ +#line 2704 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, (yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].nd), (yyvsp[(4) - (4)].id)); + } + break; + + case 461: + +/* Line 1806 of yacc.c */ +#line 2708 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[(1) - (1)].id)); + } + break; + + case 462: + +/* Line 1806 of yacc.c */ +#line 2712 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, 0); + (yyval.nd) = new_args(p, 0, 0, 0, 0, 0); + } + break; + + case 463: + +/* Line 1806 of yacc.c */ +#line 2719 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "formal argument cannot be a constant"); + (yyval.nd) = 0; + } + break; + + case 464: + +/* Line 1806 of yacc.c */ +#line 2724 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "formal argument cannot be an instance variable"); + (yyval.nd) = 0; + } + break; + + case 465: + +/* Line 1806 of yacc.c */ +#line 2729 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "formal argument cannot be a global variable"); + (yyval.nd) = 0; + } + break; + + case 466: + +/* Line 1806 of yacc.c */ +#line 2734 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + yyerror(p, "formal argument cannot be a class variable"); + (yyval.nd) = 0; + } + break; + + case 467: + +/* Line 1806 of yacc.c */ +#line 2741 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.id) = 0; + } + break; + + case 468: + +/* Line 1806 of yacc.c */ +#line 2745 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, (yyvsp[(1) - (1)].id)); + (yyval.id) = (yyvsp[(1) - (1)].id); + } + break; + + case 469: + +/* Line 1806 of yacc.c */ +#line 2752 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_arg(p, (yyvsp[(1) - (1)].id)); + } + break; + + case 470: + +/* Line 1806 of yacc.c */ +#line 2756 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = new_masgn(p, (yyvsp[(2) - (3)].nd), 0); + } + break; + + case 471: + +/* Line 1806 of yacc.c */ +#line 2762 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(1) - (1)].nd)); + } + break; + + case 472: + +/* Line 1806 of yacc.c */ +#line 2766 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 473: + +/* Line 1806 of yacc.c */ +#line 2772 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, (yyvsp[(1) - (3)].id)); + (yyval.nd) = cons(nsym((yyvsp[(1) - (3)].id)), (yyvsp[(3) - (3)].nd)); + } + break; + + case 474: + +/* Line 1806 of yacc.c */ +#line 2779 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, (yyvsp[(1) - (3)].id)); + (yyval.nd) = cons(nsym((yyvsp[(1) - (3)].id)), (yyvsp[(3) - (3)].nd)); + } + break; + + case 475: + +/* Line 1806 of yacc.c */ +#line 2786 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(1) - (1)].nd)); + } + break; + + case 476: + +/* Line 1806 of yacc.c */ +#line 2790 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 477: + +/* Line 1806 of yacc.c */ +#line 2796 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(1) - (1)].nd)); + } + break; + + case 478: + +/* Line 1806 of yacc.c */ +#line 2800 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 481: + +/* Line 1806 of yacc.c */ +#line 2810 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, (yyvsp[(2) - (2)].id)); + (yyval.id) = (yyvsp[(2) - (2)].id); + } + break; + + case 482: + +/* Line 1806 of yacc.c */ +#line 2815 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, 0); + (yyval.id) = -1; + } + break; + + case 485: + +/* Line 1806 of yacc.c */ +#line 2826 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, (yyvsp[(2) - (2)].id)); + (yyval.id) = (yyvsp[(2) - (2)].id); + } + break; + + case 486: + +/* Line 1806 of yacc.c */ +#line 2833 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.id) = (yyvsp[(2) - (2)].id); + } + break; + + case 487: + +/* Line 1806 of yacc.c */ +#line 2837 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + local_add_f(p, 0); + (yyval.id) = 0; + } + break; + + case 488: + +/* Line 1806 of yacc.c */ +#line 2844 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (1)].nd); + if (!(yyval.nd)) (yyval.nd) = new_nil(p); + } + break; + + case 489: + +/* Line 1806 of yacc.c */ +#line 2848 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {p->lstate = EXPR_BEG;} + break; + + case 490: + +/* Line 1806 of yacc.c */ +#line 2849 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + if ((yyvsp[(3) - (4)].nd) == 0) { + yyerror(p, "can't define singleton method for ()."); + } + else { + switch ((enum node_type)(int)(intptr_t)(yyvsp[(3) - (4)].nd)->car) { + case NODE_STR: + case NODE_DSTR: + case NODE_DREGX: + case NODE_MATCH: + case NODE_FLOAT: + case NODE_ARRAY: + yyerror(p, "can't define singleton method for literals"); + default: + break; + } + } + (yyval.nd) = (yyvsp[(3) - (4)].nd); + } + break; + + case 492: + +/* Line 1806 of yacc.c */ +#line 2872 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = (yyvsp[(1) - (2)].nd); + } + break; + + case 493: + +/* Line 1806 of yacc.c */ +#line 2878 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = list1((yyvsp[(1) - (1)].nd)); + } + break; + + case 494: + +/* Line 1806 of yacc.c */ +#line 2882 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = push((yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 495: + +/* Line 1806 of yacc.c */ +#line 2888 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons((yyvsp[(1) - (3)].nd), (yyvsp[(3) - (3)].nd)); + } + break; + + case 496: + +/* Line 1806 of yacc.c */ +#line 2892 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = cons(new_sym(p, (yyvsp[(1) - (2)].id)), (yyvsp[(2) - (2)].nd)); + } + break; + + case 518: + +/* Line 1806 of yacc.c */ +#line 2936 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {yyerrok;} + break; + + case 520: + +/* Line 1806 of yacc.c */ +#line 2941 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + p->lineno++; + p->column = 0; + } + break; + + case 522: + +/* Line 1806 of yacc.c */ +#line 2947 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + {yyerrok;} + break; + + case 523: + +/* Line 1806 of yacc.c */ +#line 2951 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + { + (yyval.nd) = 0; + } + break; + + + +/* Line 1806 of yacc.c */ +#line 8711 "build/host//home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/y.tab.c" + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (p, YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (p, yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval, p); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp, p); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined(yyoverflow) || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (p, YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval, p); + } + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp, p); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); +} + + + +/* Line 2067 of yacc.c */ +#line 2955 "/home/kou/work/c/groonga.central/vendor/mruby/mruby.master/src/parse.y" + +#define yylval (*((YYSTYPE*)(p->ylval))) + +static void +yyerror(parser_state *p, const char *s) +{ + char* c; + int n; + + if (! p->capture_errors) { +#ifdef ENABLE_STDIO + if (p->filename) { + fprintf(stderr, "%s:%d:%d: %s\n", p->filename, p->lineno, p->column, s); + } + else { + fprintf(stderr, "line %d:%d: %s\n", p->lineno, p->column, s); + } +#endif + } + else if (p->nerr < sizeof(p->error_buffer) / sizeof(p->error_buffer[0])) { + n = strlen(s); + c = (char *)parser_palloc(p, n + 1); + memcpy(c, s, n + 1); + p->error_buffer[p->nerr].message = c; + p->error_buffer[p->nerr].lineno = p->lineno; + p->error_buffer[p->nerr].column = p->column; + } + p->nerr++; +} + +static void +yyerror_i(parser_state *p, const char *fmt, int i) +{ + char buf[256]; + + snprintf(buf, sizeof(buf), fmt, i); + yyerror(p, buf); +} + +static void +yywarn(parser_state *p, const char *s) +{ + char* c; + int n; + + if (! p->capture_errors) { +#ifdef ENABLE_STDIO + if (p->filename) { + fprintf(stderr, "%s:%d:%d: %s\n", p->filename, p->lineno, p->column, s); + } + else { + fprintf(stderr, "line %d:%d: %s\n", p->lineno, p->column, s); + } +#endif + } + else if (p->nerr < sizeof(p->warn_buffer) / sizeof(p->warn_buffer[0])) { + n = strlen(s); + c = (char *)parser_palloc(p, n + 1); + memcpy(c, s, n + 1); + p->warn_buffer[p->nwarn].message = c; + p->warn_buffer[p->nwarn].lineno = p->lineno; + p->warn_buffer[p->nwarn].column = p->column; + } + p->nwarn++; +} + +static void +yywarning(parser_state *p, const char *s) +{ + yywarn(p, s); +} + +static void +yywarning_s(parser_state *p, const char *fmt, const char *s) +{ + char buf[256]; + + snprintf(buf, sizeof(buf), fmt, s); + yywarning(p, buf); +} + +static void +backref_error(parser_state *p, node *n) +{ + int c; + + c = (int)(intptr_t)n->car; + + if (c == NODE_NTH_REF) { + yyerror_i(p, "can't set variable $%d", (int)(intptr_t)n->cdr); + } else if (c == NODE_BACK_REF) { + yyerror_i(p, "can't set variable $%c", (int)(intptr_t)n->cdr); + } else { + mrb_bug("Internal error in backref_error() : n=>car == %d", c); + } +} + +static int peeks(parser_state *p, const char *s); +static int skips(parser_state *p, const char *s); + +static inline int +nextc(parser_state *p) +{ + int c; + + if (p->pb) { + node *tmp; + + c = (int)(intptr_t)p->pb->car; + tmp = p->pb; + p->pb = p->pb->cdr; + cons_free(tmp); + } + else { + if (p->f) { + if (feof(p->f)) return -1; + c = fgetc(p->f); + if (c == EOF) return -1; + } + else if (!p->s || p->s >= p->send) { + return -1; + } + else { + c = (unsigned char)*p->s++; + } + if (c == '\n') { + // must understand heredoc + } + } + p->column++; + return c; +} + +static void +pushback(parser_state *p, int c) +{ + if (c < 0) return; + p->column--; + p->pb = cons((node*)(intptr_t)c, p->pb); +} + +static void +skip(parser_state *p, char term) +{ + int c; + + for (;;) { + c = nextc(p); + if (c < 0) break; + if (c == term) break; + } +} + +static int +peek_n(parser_state *p, int c, int n) +{ + node *list = 0; + int c0; + + do { + c0 = nextc(p); + if (c0 < 0) return FALSE; + list = push(list, (node*)(intptr_t)c0); + } while(n--); + if (p->pb) { + p->pb = push(p->pb, (node*)list); + } + else { + p->pb = list; + } + if (c0 == c) return TRUE; + return FALSE; +} +#define peek(p,c) peek_n((p), (c), 0) + +static int +peeks(parser_state *p, const char *s) +{ + int len = strlen(s); + + if (p->f) { + int n = 0; + while (*s) { + if (!peek_n(p, *s++, n++)) return FALSE; + } + return TRUE; + } + else if (p->s && p->s + len >= p->send) { + if (memcmp(p->s, s, len) == 0) return TRUE; + } + return FALSE; +} + +static int +skips(parser_state *p, const char *s) +{ + int c; + + for (;;) { + // skip until first char + for (;;) { + c = nextc(p); + if (c < 0) return c; + if (c == *s) break; + } + s++; + if (peeks(p, s)) { + int len = strlen(s); + + while (len--) { + nextc(p); + } + return TRUE; + } + else{ + s--; + } + } + return FALSE; +} + +#define STR_FUNC_ESCAPE 0x01 +#define STR_FUNC_EXPAND 0x02 +#define STR_FUNC_REGEXP 0x04 +#define STR_FUNC_QWORDS 0x08 +#define STR_FUNC_SYMBOL 0x10 +#define STR_FUNC_INDENT 0x20 + +enum string_type { + str_squote = (0), + str_dquote = (STR_FUNC_EXPAND), + str_xquote = (STR_FUNC_EXPAND), + str_regexp = (STR_FUNC_REGEXP|STR_FUNC_ESCAPE|STR_FUNC_EXPAND), + str_sword = (STR_FUNC_QWORDS), + str_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND), + str_ssym = (STR_FUNC_SYMBOL), + str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND) +}; + +static int +newtok(parser_state *p) +{ + p->bidx = 0; + return p->column - 1; +} + +static void +tokadd(parser_state *p, int c) +{ + if (p->bidx < 1024) { + p->buf[p->bidx++] = c; + } +} + +static int +toklast(parser_state *p) +{ + return p->buf[p->bidx-1]; +} + +static void +tokfix(parser_state *p) +{ + if (p->bidx >= 1024) { + yyerror(p, "string too long (truncated)"); + } + p->buf[p->bidx] = '\0'; +} + +static const char* +tok(parser_state *p) +{ + return p->buf; +} + +static int +toklen(parser_state *p) +{ + return p->bidx; +} + +#define IS_ARG() (p->lstate == EXPR_ARG || p->lstate == EXPR_CMDARG) +#define IS_END() (p->lstate == EXPR_END || p->lstate == EXPR_ENDARG || p->lstate == EXPR_ENDFN) +#define IS_BEG() (p->lstate == EXPR_BEG || p->lstate == EXPR_MID || p->lstate == EXPR_VALUE || p->lstate == EXPR_CLASS) +#define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c)) +#define IS_LABEL_POSSIBLE() ((p->lstate == EXPR_BEG && !cmd_state) || IS_ARG()) +#define IS_LABEL_SUFFIX(n) (peek_n(p, ':',(n)) && !peek_n(p, ':', (n)+1)) + +static unsigned long +scan_oct(const int *start, int len, int *retlen) +{ + const int *s = start; + unsigned long retval = 0; + + while (len-- && *s >= '0' && *s <= '7') { + retval <<= 3; + retval |= *s++ - '0'; + } + *retlen = s - start; + return retval; +} + +static unsigned long +scan_hex(const int *start, int len, int *retlen) +{ + static const char hexdigit[] = "0123456789abcdef0123456789ABCDEF"; + register const int *s = start; + register unsigned long retval = 0; + char *tmp; + + while (len-- && *s && (tmp = (char *)strchr(hexdigit, *s))) { + retval <<= 4; + retval |= (tmp - hexdigit) & 15; + s++; + } + *retlen = s - start; + return retval; +} + +static int +read_escape(parser_state *p) +{ + int c; + + switch (c = nextc(p)) { + case '\\': /* Backslash */ + return c; + + case 'n': /* newline */ + return '\n'; + + case 't': /* horizontal tab */ + return '\t'; + + case 'r': /* carriage-return */ + return '\r'; + + case 'f': /* form-feed */ + return '\f'; + + case 'v': /* vertical tab */ + return '\13'; + + case 'a': /* alarm(bell) */ + return '\007'; + + case 'e': /* escape */ + return 033; + + case '0': case '1': case '2': case '3': /* octal constant */ + case '4': case '5': case '6': case '7': + { + int buf[3]; + int i; + + buf[0] = c; + for (i=1; i<3; i++) { + buf[i] = nextc(p); + if (buf[i] == -1) goto eof; + if (buf[i] < '0' || '7' < buf[i]) { + pushback(p, buf[i]); + break; + } + } + c = scan_oct(buf, i, &i); + } + return c; + + case 'x': /* hex constant */ + { + int buf[2]; + int i; + + for (i=0; i<2; i++) { + buf[i] = nextc(p); + if (buf[i] == -1) goto eof; + if (!isxdigit(buf[i])) { + pushback(p, buf[i]); + break; + } + } + c = scan_hex(buf, i, &i); + if (i == 0) { + yyerror(p, "Invalid escape character syntax"); + return 0; + } + } + return c; + + case 'b': /* backspace */ + return '\010'; + + case 's': /* space */ + return ' '; + + case 'M': + if ((c = nextc(p)) != '-') { + yyerror(p, "Invalid escape character syntax"); + pushback(p, c); + return '\0'; + } + if ((c = nextc(p)) == '\\') { + return read_escape(p) | 0x80; + } + else if (c == -1) goto eof; + else { + return ((c & 0xff) | 0x80); + } + + case 'C': + if ((c = nextc(p)) != '-') { + yyerror(p, "Invalid escape character syntax"); + pushback(p, c); + return '\0'; + } + case 'c': + if ((c = nextc(p))== '\\') { + c = read_escape(p); + } + else if (c == '?') + return 0177; + else if (c == -1) goto eof; + return c & 0x9f; + + eof: + case -1: + yyerror(p, "Invalid escape character syntax"); + return '\0'; + + default: + return c; + } +} + +static int +parse_string(parser_state *p, int term) +{ + int c; + + newtok(p); + + while ((c = nextc(p)) != term) { + if (c == -1) { + yyerror(p, "unterminated string meets end of file"); + return 0; + } + else if (c == '\\') { + c = nextc(p); + if (c == term) { + tokadd(p, c); + } + else { + pushback(p, c); + tokadd(p, read_escape(p)); + } + continue; + } + if (c == '#') { + c = nextc(p); + if (c == '{') { + tokfix(p); + p->lstate = EXPR_BEG; + p->sterm = term; + p->cmd_start = TRUE; + yylval.nd = new_str(p, tok(p), toklen(p)); + return tSTRING_PART; + } + tokadd(p, '#'); + pushback(p, c); + continue; + } + tokadd(p, c); + } + + tokfix(p); + p->lstate = EXPR_END; + p->sterm = 0; + yylval.nd = new_str(p, tok(p), toklen(p)); + return tSTRING; +} + +static node* +qstring_node(parser_state *p, int term) +{ + int c; + + newtok(p); + while ((c = nextc(p)) != term) { + if (c == -1) { + yyerror(p, "unterminated string meets end of file"); + return 0; + } + if (c == '\\') { + c = nextc(p); + switch (c) { + case '\n': + p->lineno++; + p->column = 0; + continue; + + case '\\': + c = '\\'; + break; + + case '\'': + if (term == '\'') { + c = '\''; + break; + } + /* fall through */ + default: + tokadd(p, '\\'); + } + } + tokadd(p, c); + } + + tokfix(p); + p->lstate = EXPR_END; + return new_str(p, tok(p), toklen(p)); +} + +static int +parse_qstring(parser_state *p, int term) +{ + node *nd = qstring_node(p, term); + + if (nd) { + yylval.nd = new_str(p, tok(p), toklen(p)); + return tSTRING; + } + return 0; +} + +static int +arg_ambiguous(parser_state *p) +{ + yywarning(p, "ambiguous first argument; put parentheses or even spaces"); + return 1; +} + +#include "lex.def" + +static int +parser_yylex(parser_state *p) +{ + register int c; + int space_seen = 0; + int cmd_state; + enum mrb_lex_state_enum last_state; + int token_column; + + if (p->sterm) { + return parse_string(p, p->sterm); + } + cmd_state = p->cmd_start; + p->cmd_start = FALSE; + retry: + last_state = p->lstate; + switch (c = nextc(p)) { + case '\0': /* NUL */ + case '\004': /* ^D */ + case '\032': /* ^Z */ + case -1: /* end of script. */ + return 0; + + /* white spaces */ + case ' ': case '\t': case '\f': case '\r': + case '\13': /* '\v' */ + space_seen = 1; + goto retry; + + case '#': /* it's a comment */ + skip(p, '\n'); + /* fall through */ + case '\n': + switch (p->lstate) { + case EXPR_BEG: + case EXPR_FNAME: + case EXPR_DOT: + case EXPR_CLASS: + case EXPR_VALUE: + p->lineno++; + p->column = 0; + goto retry; + default: + break; + } + while ((c = nextc(p))) { + switch (c) { + case ' ': case '\t': case '\f': case '\r': + case '\13': /* '\v' */ + space_seen = 1; + break; + case '.': + if ((c = nextc(p)) != '.') { + pushback(p, c); + pushback(p, '.'); + goto retry; + } + case -1: /* EOF */ + goto normal_newline; + default: + pushback(p, c); + goto normal_newline; + } + } + normal_newline: + p->cmd_start = TRUE; + p->lstate = EXPR_BEG; + return '\n'; + + case '*': + if ((c = nextc(p)) == '*') { + if ((c = nextc(p)) == '=') { + yylval.id = intern("**"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + pushback(p, c); + c = tPOW; + } + else { + if (c == '=') { + yylval.id = intern("*"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + pushback(p, c); + if (IS_SPCARG(c)) { + yywarning(p, "`*' interpreted as argument prefix"); + c = tSTAR; + } + else if (IS_BEG()) { + c = tSTAR; + } + else { + c = '*'; + } + } + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + } else { + p->lstate = EXPR_BEG; + } + return c; + + case '!': + c = nextc(p); + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + if (c == '@') { + return '!'; + } + } + else { + p->lstate = EXPR_BEG; + } + if (c == '=') { + return tNEQ; + } + if (c == '~') { + return tNMATCH; + } + pushback(p, c); + return '!'; + + case '=': + if (p->column == 1) { + if (peeks(p, "begin\n")) { + skips(p, "\n=end\n"); + goto retry; + } + } + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + } else { + p->lstate = EXPR_BEG; + } + if ((c = nextc(p)) == '=') { + if ((c = nextc(p)) == '=') { + return tEQQ; + } + pushback(p, c); + return tEQ; + } + if (c == '~') { + return tMATCH; + } + else if (c == '>') { + return tASSOC; + } + pushback(p, c); + return '='; + + case '<': + last_state = p->lstate; + c = nextc(p); +#if 0 + // no heredoc supported yet + if (c == '<' && + p->lstate != EXPR_DOT && + p->lstate != EXPR_CLASS && + !IS_END() && + (!IS_ARG() || space_seen)) { + int token = heredoc_identifier(); + if (token) return token; + } +#endif + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + } else { + p->lstate = EXPR_BEG; + if (p->lstate == EXPR_CLASS) { + p->cmd_start = TRUE; + } + } + if (c == '=') { + if ((c = nextc(p)) == '>') { + return tCMP; + } + pushback(p, c); + return tLEQ; + } + if (c == '<') { + if ((c = nextc(p)) == '=') { + yylval.id = intern("<<"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + pushback(p, c); + return tLSHFT; + } + pushback(p, c); + return '<'; + + case '>': + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + } else { + p->lstate = EXPR_BEG; + } + if ((c = nextc(p)) == '=') { + return tGEQ; + } + if (c == '>') { + if ((c = nextc(p)) == '=') { + yylval.id = intern(">>"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + pushback(p, c); + return tRSHFT; + } + pushback(p, c); + return '>'; + + case '"': + p->sterm = '"'; + return tSTRING_BEG; + + case '\'': + return parse_qstring(p, c); + + case '?': + if (IS_END()) { + p->lstate = EXPR_VALUE; + return '?'; + } + c = nextc(p); + if (c == -1) { + yyerror(p, "incomplete character syntax"); + return 0; + } + if (isspace(c)) { + if (!IS_ARG()) { + int c2; + switch (c) { + case ' ': + c2 = 's'; + break; + case '\n': + c2 = 'n'; + break; + case '\t': + c2 = 't'; + break; + case '\v': + c2 = 'v'; + break; + case '\r': + c2 = 'r'; + break; + case '\f': + c2 = 'f'; + break; + default: + c2 = 0; + break; + } + if (c2) { + char buf[256]; + snprintf(buf, sizeof(buf), "invalid character syntax; use ?\\%c", c2); + yyerror(p, buf); + } + } + ternary: + pushback(p, c); + p->lstate = EXPR_VALUE; + return '?'; + } + token_column = newtok(p); + // need support UTF-8 if configured + if ((isalnum(c) || c == '_')) { + int c2 = nextc(p); + pushback(p, c2); + if ((isalnum(c2) || c2 == '_')) { + goto ternary; + } + } + if (c == '\\') { + c = nextc(p); + if (c == 'u') { +#if 0 + tokadd_utf8(p); +#endif + } + else { + pushback(p, c); + c = read_escape(p); + tokadd(p, c); + } + } + else { + tokadd(p, c); + } + tokfix(p); + yylval.nd = new_str(p, tok(p), toklen(p)); + p->lstate = EXPR_END; + return tCHAR; + + case '&': + if ((c = nextc(p)) == '&') { + p->lstate = EXPR_BEG; + if ((c = nextc(p)) == '=') { + yylval.id = intern("&&"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + pushback(p, c); + return tANDOP; + } + else if (c == '=') { + yylval.id = intern("&"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + pushback(p, c); + if (IS_SPCARG(c)) { + yywarning(p, "`&' interpreted as argument prefix"); + c = tAMPER; + } + else if (IS_BEG()) { + c = tAMPER; + } + else { + c = '&'; + } + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + } else { + p->lstate = EXPR_BEG; + } + return c; + + case '|': + if ((c = nextc(p)) == '|') { + p->lstate = EXPR_BEG; + if ((c = nextc(p)) == '=') { + yylval.id = intern("||"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + pushback(p, c); + return tOROP; + } + if (c == '=') { + yylval.id = intern("|"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + } + else { + p->lstate = EXPR_BEG; + } + pushback(p, c); + return '|'; + + case '+': + c = nextc(p); + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + if (c == '@') { + return tUPLUS; + } + pushback(p, c); + return '+'; + } + if (c == '=') { + yylval.id = intern("+"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous(p))) { + p->lstate = EXPR_BEG; + pushback(p, c); + if (c != -1 && ISDIGIT(c)) { + c = '+'; + goto start_num; + } + return tUPLUS; + } + p->lstate = EXPR_BEG; + pushback(p, c); + return '+'; + + case '-': + c = nextc(p); + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + if (c == '@') { + return tUMINUS; + } + pushback(p, c); + return '-'; + } + if (c == '=') { + yylval.id = intern("-"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + if (c == '>') { + p->lstate = EXPR_ENDFN; + return tLAMBDA; + } + if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous(p))) { + p->lstate = EXPR_BEG; + pushback(p, c); + if (c != -1 && ISDIGIT(c)) { + return tUMINUS_NUM; + } + return tUMINUS; + } + p->lstate = EXPR_BEG; + pushback(p, c); + return '-'; + + case '.': + p->lstate = EXPR_BEG; + if ((c = nextc(p)) == '.') { + if ((c = nextc(p)) == '.') { + return tDOT3; + } + pushback(p, c); + return tDOT2; + } + pushback(p, c); + if (c != -1 && ISDIGIT(c)) { + yyerror(p, "no .<digit> floating literal anymore; put 0 before dot"); + } + p->lstate = EXPR_DOT; + return '.'; + + start_num: + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + { + int is_float, seen_point, seen_e, nondigit; + + is_float = seen_point = seen_e = nondigit = 0; + p->lstate = EXPR_END; + token_column = newtok(p); + if (c == '-' || c == '+') { + tokadd(p, c); + c = nextc(p); + } + if (c == '0') { +#define no_digits() do {yyerror(p,"numeric literal without digits"); return 0;} while (0) + int start = toklen(p); + c = nextc(p); + if (c == 'x' || c == 'X') { + /* hexadecimal */ + c = nextc(p); + if (c != -1 && ISXDIGIT(c)) { + do { + if (c == '_') { + if (nondigit) break; + nondigit = c; + continue; + } + if (!ISXDIGIT(c)) break; + nondigit = 0; + tokadd(p, tolower(c)); + } while ((c = nextc(p)) != -1); + } + pushback(p, c); + tokfix(p); + if (toklen(p) == start) { + no_digits(); + } + else if (nondigit) goto trailing_uc; + yylval.nd = new_int(p, tok(p), 16); + return tINTEGER; + } + if (c == 'b' || c == 'B') { + /* binary */ + c = nextc(p); + if (c == '0' || c == '1') { + do { + if (c == '_') { + if (nondigit) break; + nondigit = c; + continue; + } + if (c != '0' && c != '1') break; + nondigit = 0; + tokadd(p, c); + } while ((c = nextc(p)) != -1); + } + pushback(p, c); + tokfix(p); + if (toklen(p) == start) { + no_digits(); + } + else if (nondigit) goto trailing_uc; + yylval.nd = new_int(p, tok(p), 2); + return tINTEGER; + } + if (c == 'd' || c == 'D') { + /* decimal */ + c = nextc(p); + if (c != -1 && ISDIGIT(c)) { + do { + if (c == '_') { + if (nondigit) break; + nondigit = c; + continue; + } + if (!ISDIGIT(c)) break; + nondigit = 0; + tokadd(p, c); + } while ((c = nextc(p)) != -1); + } + pushback(p, c); + tokfix(p); + if (toklen(p) == start) { + no_digits(); + } + else if (nondigit) goto trailing_uc; + yylval.nd = new_int(p, tok(p), 10); + return tINTEGER; + } + if (c == '_') { + /* 0_0 */ + goto octal_number; + } + if (c == 'o' || c == 'O') { + /* prefixed octal */ + c = nextc(p); + if (c == -1 || c == '_' || !ISDIGIT(c)) { + no_digits(); + } + } + if (c >= '0' && c <= '7') { + /* octal */ + octal_number: + do { + if (c == '_') { + if (nondigit) break; + nondigit = c; + continue; + } + if (c < '0' || c > '9') break; + if (c > '7') goto invalid_octal; + nondigit = 0; + tokadd(p, c); + } while ((c = nextc(p)) != -1); + + if (toklen(p) > start) { + pushback(p, c); + tokfix(p); + if (nondigit) goto trailing_uc; + yylval.nd = new_int(p, tok(p), 8); + return tINTEGER; + } + if (nondigit) { + pushback(p, c); + goto trailing_uc; + } + } + if (c > '7' && c <= '9') { + invalid_octal: + yyerror(p, "Invalid octal digit"); + } + else if (c == '.' || c == 'e' || c == 'E') { + tokadd(p, '0'); + } + else { + pushback(p, c); + yylval.nd = new_int(p, "0", 10); + return tINTEGER; + } + } + + for (;;) { + switch (c) { + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + nondigit = 0; + tokadd(p, c); + break; + + case '.': + if (nondigit) goto trailing_uc; + if (seen_point || seen_e) { + goto decode_num; + } + else { + int c0 = nextc(p); + if (c0 == -1 || !ISDIGIT(c0)) { + pushback(p, c0); + goto decode_num; + } + c = c0; + } + tokadd(p, '.'); + tokadd(p, c); + is_float++; + seen_point++; + nondigit = 0; + break; + + case 'e': + case 'E': + if (nondigit) { + pushback(p, c); + c = nondigit; + goto decode_num; + } + if (seen_e) { + goto decode_num; + } + tokadd(p, c); + seen_e++; + is_float++; + nondigit = c; + c = nextc(p); + if (c != '-' && c != '+') continue; + tokadd(p, c); + nondigit = c; + break; + + case '_': /* `_' in number just ignored */ + if (nondigit) goto decode_num; + nondigit = c; + break; + + default: + goto decode_num; + } + c = nextc(p); + } + + decode_num: + pushback(p, c); + if (nondigit) { + trailing_uc: + yyerror_i(p, "trailing `%c' in number", nondigit); + } + tokfix(p); + if (is_float) { + double d; + char *endp; + + errno = 0; + d = strtod(tok(p), &endp); + if (d == 0 && endp == tok(p)) { + yywarning_s(p, "corrupted float value %s", tok(p)); + } + else if (errno == ERANGE) { + yywarning_s(p, "float %s out of range", tok(p)); + errno = 0; + } + yylval.nd = new_float(p, tok(p)); + return tFLOAT; + } + yylval.nd = new_int(p, tok(p), 10); + return tINTEGER; + } + + case ')': + case ']': + p->paren_nest--; + case '}': + COND_LEXPOP(); + CMDARG_LEXPOP(); + if (c == ')') + p->lstate = EXPR_ENDFN; + else + p->lstate = EXPR_ENDARG; + return c; + + case ':': + c = nextc(p); + if (c == ':') { + if (IS_BEG() || p->lstate == EXPR_CLASS || IS_SPCARG(-1)) { + p->lstate = EXPR_BEG; + return tCOLON3; + } + p->lstate = EXPR_DOT; + return tCOLON2; + } + if (IS_END() || ISSPACE(c)) { + pushback(p, c); + p->lstate = EXPR_BEG; + return ':'; + } + pushback(p, c); + p->lstate = EXPR_FNAME; + return tSYMBEG; + + case '/': + if (IS_BEG()) { +#if 0 + p->lex_strterm = new_strterm(p, str_regexp, '/', 0); +#endif + return tREGEXP_BEG; + } + if ((c = nextc(p)) == '=') { + yylval.id = intern("/"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + pushback(p, c); + if (IS_SPCARG(c)) { + arg_ambiguous(p); +#if 0 + p->lex_strterm = new_strterm(p, str_regexp, '/', 0); +#endif + return tREGEXP_BEG; + } + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + } else { + p->lstate = EXPR_BEG; + } + return '/'; + + case '^': + if ((c = nextc(p)) == '=') { + yylval.id = intern("^"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + } else { + p->lstate = EXPR_BEG; + } + pushback(p, c); + return '^'; + + case ';': + p->lstate = EXPR_BEG; + return ';'; + + case ',': + p->lstate = EXPR_BEG; + return ','; + + case '~': + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + if ((c = nextc(p)) != '@') { + pushback(p, c); + } + p->lstate = EXPR_ARG; + } + else { + p->lstate = EXPR_BEG; + } + return '~'; + + case '(': + if (IS_BEG()) { + c = tLPAREN; + } + else if (IS_SPCARG(-1)) { + c = tLPAREN_ARG; + } + p->paren_nest++; + COND_PUSH(0); + CMDARG_PUSH(0); + p->lstate = EXPR_BEG; + return c; + + case '[': + p->paren_nest++; + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + if ((c = nextc(p)) == ']') { + if ((c = nextc(p)) == '=') { + return tASET; + } + pushback(p, c); + return tAREF; + } + pushback(p, c); + return '['; + } + else if (IS_BEG()) { + c = tLBRACK; + } + else if (IS_ARG() && space_seen) { + c = tLBRACK; + } + p->lstate = EXPR_BEG; + COND_PUSH(0); + CMDARG_PUSH(0); + return c; + + case '{': + if (p->lpar_beg && p->lpar_beg == p->paren_nest) { + p->lstate = EXPR_BEG; + p->lpar_beg = 0; + p->paren_nest--; + COND_PUSH(0); + CMDARG_PUSH(0); + return tLAMBEG; + } + if (IS_ARG() || p->lstate == EXPR_END || p->lstate == EXPR_ENDFN) + c = '{'; /* block (primary) */ + else if (p->lstate == EXPR_ENDARG) + c = tLBRACE_ARG; /* block (expr) */ + else + c = tLBRACE; /* hash */ + COND_PUSH(0); + CMDARG_PUSH(0); + p->lstate = EXPR_BEG; + return c; + + case '\\': + c = nextc(p); + if (c == '\n') { + p->lineno++; + p->column = 0; + space_seen = 1; + goto retry; /* skip \\n */ + } + pushback(p, c); + return '\\'; + + case '%': + if (IS_BEG()) { + int term; +#if 0 + int paren; +#endif + + c = nextc(p); + quotation: + if (c == -1 || !ISALNUM(c)) { + term = c; + c = 'Q'; + } + else { + term = nextc(p); + if (isalnum(term)) { + yyerror(p, "unknown type of %string"); + return 0; + } + } + if (c == -1 || term == -1) { + yyerror(p, "unterminated quoted string meets end of file"); + return 0; + } +#if 0 + paren = term; +#endif + if (term == '(') term = ')'; + else if (term == '[') term = ']'; + else if (term == '{') term = '}'; + else if (term == '<') term = '>'; + p->sterm = term; +#if 0 + else paren = 0; +#endif + + switch (c) { + case 'Q': +#if 0 + p->lex_strterm = new_strterm(p, str_dquote, term, paren); +#endif + return tSTRING_BEG; + + case 'q': +#if 0 + p->lex_strterm = new_strterm(p, str_squote, term, paren); +#endif + return tSTRING_BEG; + + case 'W': +#if 0 + p->lex_strterm = new_strterm(p, str_dword, term, paren); +#endif + do {c = nextc(p);} while (isspace(c)); + pushback(p, c); + return tWORDS_BEG; + + case 'w': +#if 0 + p->lex_strterm = new_strterm(p, str_sword, term, paren); +#endif + do {c = nextc(p);} while (isspace(c)); + pushback(p, c); + return tQWORDS_BEG; + + case 'r': +#if 0 + p->lex_strterm = new_strterm(p, str_regexp, term, paren); +#endif + return tREGEXP_BEG; + + case 's': +#if 0 + p->lex_strterm = new_strterm(p, str_ssym, term, paren); +#endif + p->lstate = EXPR_FNAME; + return tSYMBEG; + + default: + yyerror(p, "unknown type of %string"); + return 0; + } + } + if ((c = nextc(p)) == '=') { + yylval.id = intern("%"); + p->lstate = EXPR_BEG; + return tOP_ASGN; + } + if (IS_SPCARG(c)) { + goto quotation; + } + if (p->lstate == EXPR_FNAME || p->lstate == EXPR_DOT) { + p->lstate = EXPR_ARG; + } else { + p->lstate = EXPR_BEG; + } + pushback(p, c); + return '%'; + + case '$': + p->lstate = EXPR_END; + token_column = newtok(p); + c = nextc(p); + switch (c) { + case '_': /* $_: last read line string */ + c = nextc(p); + pushback(p, c); + c = '_'; + /* fall through */ + case '~': /* $~: match-data */ + case '*': /* $*: argv */ + case '$': /* $$: pid */ + case '?': /* $?: last status */ + case '!': /* $!: error string */ + case '@': /* $@: error position */ + case '/': /* $/: input record separator */ + case '\\': /* $\: output record separator */ + case ';': /* $;: field separator */ + case ',': /* $,: output field separator */ + case '.': /* $.: last read line number */ + case '=': /* $=: ignorecase */ + case ':': /* $:: load path */ + case '<': /* $<: reading filename */ + case '>': /* $>: default output handle */ + case '\"': /* $": already loaded files */ + tokadd(p, '$'); + tokadd(p, c); + tokfix(p); + yylval.id = intern(tok(p)); + return tGVAR; + + case '-': + tokadd(p, '$'); + tokadd(p, c); + c = nextc(p); + pushback(p, c); + gvar: + tokfix(p); + yylval.id = intern(tok(p)); + return tGVAR; + + case '&': /* $&: last match */ + case '`': /* $`: string before last match */ + case '\'': /* $': string after last match */ + case '+': /* $+: string matches last paren. */ + if (last_state == EXPR_FNAME) { + tokadd(p, '$'); + tokadd(p, c); + goto gvar; + } + yylval.nd = new_back_ref(p, c); + return tBACK_REF; + + case '1': case '2': case '3': + case '4': case '5': case '6': + case '7': case '8': case '9': + do { + tokadd(p, c); + c = nextc(p); + } while (c != -1 && isdigit(c)); + pushback(p, c); + if (last_state == EXPR_FNAME) goto gvar; + tokfix(p); + yylval.nd = new_nth_ref(p, atoi(tok(p))); + return tNTH_REF; + + default: + if (!identchar(c)) { + pushback(p, c); + return '$'; + } + case '0': + tokadd(p, '$'); + } + break; + + case '@': + c = nextc(p); + token_column = newtok(p); + tokadd(p, '@'); + if (c == '@') { + tokadd(p, '@'); + c = nextc(p); + } + if (c != -1 && isdigit(c)) { + if (p->bidx == 1) { + yyerror_i(p, "`@%c' is not allowed as an instance variable name", c); + } + else { + yyerror_i(p, "`@@%c' is not allowed as a class variable name", c); + } + return 0; + } + if (!identchar(c)) { + pushback(p, c); + return '@'; + } + break; + + case '_': + token_column = newtok(p); + break; + + default: + if (!identchar(c)) { + yyerror_i(p, "Invalid char `\\x%02X' in expression", c); + goto retry; + } + + token_column = newtok(p); + break; + } + + do { + tokadd(p, c); + c = nextc(p); + if (c < 0) break; + } while (identchar(c)); + if (token_column == 0 && toklen(p) == 7 && (c < 0 || c == '\n') && + strncmp(tok(p), "__END__", toklen(p)) == 0) + return -1; + + switch (tok(p)[0]) { + case '@': case '$': + pushback(p, c); + break; + default: + if ((c == '!' || c == '?') && !peek(p, '=')) { + tokadd(p, c); + } + else { + pushback(p, c); + } + } + tokfix(p); + { + int result = 0; + + last_state = p->lstate; + switch (tok(p)[0]) { + case '$': + p->lstate = EXPR_END; + result = tGVAR; + break; + case '@': + p->lstate = EXPR_END; + if (tok(p)[1] == '@') + result = tCVAR; + else + result = tIVAR; + break; + + default: + if (toklast(p) == '!' || toklast(p) == '?') { + result = tFID; + } + else { + if (p->lstate == EXPR_FNAME) { + if ((c = nextc(p)) == '=' && !peek(p, '~') && !peek(p, '>') && + (!peek(p, '=') || (peek_n(p, '>', 1)))) { + result = tIDENTIFIER; + tokadd(p, c); + tokfix(p); + } + else { + pushback(p, c); + } + } + if (result == 0 && isupper((int)tok(p)[0])) { + result = tCONSTANT; + } + else { + result = tIDENTIFIER; + } + } + + if (IS_LABEL_POSSIBLE()) { + if (IS_LABEL_SUFFIX(0)) { + p->lstate = EXPR_BEG; + nextc(p); + tokfix(p); + yylval.id = intern(tok(p)); + return tLABEL; + } + } + if (p->lstate != EXPR_DOT) { + const struct kwtable *kw; + + /* See if it is a reserved word. */ + kw = mrb_reserved_word(tok(p), toklen(p)); + if (kw) { + enum mrb_lex_state_enum state = p->lstate; + p->lstate = kw->state; + if (state == EXPR_FNAME) { + yylval.id = intern(kw->name); + return kw->id[0]; + } + if (p->lstate == EXPR_BEG) { + p->cmd_start = TRUE; + } + if (kw->id[0] == keyword_do) { + if (p->lpar_beg && p->lpar_beg == p->paren_nest) { + p->lpar_beg = 0; + p->paren_nest--; + return keyword_do_LAMBDA; + } + if (COND_P()) return keyword_do_cond; + if (CMDARG_P() && state != EXPR_CMDARG) + return keyword_do_block; + if (state == EXPR_ENDARG || state == EXPR_BEG) + return keyword_do_block; + return keyword_do; + } + if (state == EXPR_BEG || state == EXPR_VALUE) + return kw->id[0]; + else { + if (kw->id[0] != kw->id[1]) + p->lstate = EXPR_BEG; + return kw->id[1]; + } + } + } + + if (IS_BEG() || + p->lstate == EXPR_DOT || + IS_ARG()) { + if (cmd_state) { + p->lstate = EXPR_CMDARG; + } + else { + p->lstate = EXPR_ARG; + } + } + else if (p->lstate == EXPR_FNAME) { + p->lstate = EXPR_ENDFN; + } + else { + p->lstate = EXPR_END; + } + } + { + mrb_sym ident = intern(tok(p)); + + yylval.id = ident; +#if 0 + if (last_state != EXPR_DOT && islower(tok(p)[0]) && lvar_defined(ident)) { + p->lstate = EXPR_END; + } +#endif + } + return result; + } +} + +static int +yylex(void *lval, parser_state *p) +{ + int t; + + p->ylval = lval; + t = parser_yylex(p); + + return t; +} + +static void +parser_init_cxt(parser_state *p, mrbc_context *cxt) +{ + if (!cxt) return; + if (cxt->lineno) p->lineno = cxt->lineno; + if (cxt->filename) p->filename = cxt->filename; + if (cxt->syms) { + int i; + + p->locals = cons(0,0); + for (i=0; i<cxt->slen; i++) { + local_add_f(p, cxt->syms[i]); + } + } + p->capture_errors = cxt->capture_errors; +} + +static void +parser_update_cxt(parser_state *p, mrbc_context *cxt) +{ + node *n, *n0; + int i = 0; + + if (!cxt) return; + if ((int)(intptr_t)p->tree->car != NODE_SCOPE) return; + n0 = n = p->tree->cdr->car; + while (n) { + i++; + n = n->cdr; + } + cxt->syms = (mrb_sym *)mrb_realloc(p->mrb, cxt->syms, i*sizeof(mrb_sym)); + cxt->slen = i; + for (i=0, n=n0; n; i++,n=n->cdr) { + cxt->syms[i] = sym(n->car); + } +} + +void codedump_all(mrb_state*, int); +void parser_dump(mrb_state *mrb, node *tree, int offset); + +void +mrb_parser_parse(parser_state *p, mrbc_context *c) +{ + if (setjmp(p->jmp) != 0) { + yyerror(p, "memory allocation error"); + p->nerr++; + p->tree = 0; + return; + } + + p->cmd_start = TRUE; + p->in_def = p->in_single = FALSE; + p->nerr = p->nwarn = 0; + p->sterm = 0; + + parser_init_cxt(p, c); + yyparse(p); + if (!p->tree) { + p->tree = new_nil(p); + } + parser_update_cxt(p, c); + if (c && c->dump_result) { + parser_dump(p->mrb, p->tree, 0); + } +} + +parser_state* +mrb_parser_new(mrb_state *mrb) +{ + mrb_pool *pool; + parser_state *p; + static const parser_state parser_state_zero = { 0 }; + + pool = mrb_pool_open(mrb); + if (!pool) return 0; + p = (parser_state *)mrb_pool_alloc(pool, sizeof(parser_state)); + if (!p) return 0; + + *p = parser_state_zero; + p->mrb = mrb; + p->pool = pool; + p->in_def = p->in_single = 0; + + p->s = p->send = NULL; + p->f = NULL; + + p->cmd_start = TRUE; + p->in_def = p->in_single = FALSE; + + p->capture_errors = 0; + p->lineno = 1; + p->column = 0; +#if defined(PARSER_TEST) || defined(PARSER_DEBUG) + yydebug = 1; +#endif + + return p; +} + +void +mrb_parser_free(parser_state *p) { + mrb_pool_close(p->pool); +} + +mrbc_context* +mrbc_context_new(mrb_state *mrb) +{ + mrbc_context *c; + + c = (mrbc_context *)mrb_calloc(mrb, 1, sizeof(mrbc_context)); + return c; +} + +void +mrbc_context_free(mrb_state *mrb, mrbc_context *cxt) +{ + mrb_free(mrb, cxt->syms); + mrb_free(mrb, cxt); +} + +const char* +mrbc_filename(mrb_state *mrb, mrbc_context *c, const char *s) +{ + if (s) { + int len = strlen(s); + char *p = (char *)mrb_alloca(mrb, len + 1); + + memcpy(p, s, len + 1); + c->filename = p; + c->lineno = 1; + } + return c->filename; +} + +parser_state* +mrb_parse_file(mrb_state *mrb, FILE *f, mrbc_context *c) +{ + parser_state *p; + + p = mrb_parser_new(mrb); + if (!p) return 0; + p->s = p->send = NULL; + p->f = f; + + mrb_parser_parse(p, c); + return p; +} + +parser_state* +mrb_parse_nstring(mrb_state *mrb, const char *s, int len, mrbc_context *c) +{ + parser_state *p; + + p = mrb_parser_new(mrb); + if (!p) return 0; + p->s = s; + p->send = s + len; + + mrb_parser_parse(p, c); + return p; +} + +parser_state* +mrb_parse_string(mrb_state *mrb, const char *s, mrbc_context *c) +{ + return mrb_parse_nstring(mrb, s, strlen(s), c); +} + +static mrb_value +load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c) +{ + int n; + mrb_value v; + + if (!p) { + return mrb_undef_value(); + } + if (!p->tree || p->nerr) { + if (p->capture_errors) { + char buf[256]; + + n = snprintf(buf, sizeof(buf), "line %d: %s\n", + p->error_buffer[0].lineno, p->error_buffer[0].message); + mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SYNTAX_ERROR, buf, n)); + mrb_parser_free(p); + return mrb_undef_value(); + } + else { + static const char msg[] = "syntax error"; + mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SYNTAX_ERROR, msg, sizeof(msg) - 1)); + mrb_parser_free(p); + return mrb_undef_value(); + } + } + n = mrb_generate_code(mrb, p); + mrb_parser_free(p); + if (n < 0) { + static const char msg[] = "codegen error"; + mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SCRIPT_ERROR, msg, sizeof(msg) - 1)); + return mrb_nil_value(); + } + if (c) { + if (c->dump_result) codedump_all(mrb, n); + if (c->no_exec) return mrb_fixnum_value(n); + } + v = mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb)); + if (mrb->exc) return mrb_nil_value(); + return v; +} + +mrb_value +mrb_load_file_cxt(mrb_state *mrb, FILE *f, mrbc_context *c) +{ + return load_exec(mrb, mrb_parse_file(mrb, f, c), c); +} + +mrb_value +mrb_load_file(mrb_state *mrb, FILE *f) +{ + return mrb_load_file_cxt(mrb, f, NULL); +} + +mrb_value +mrb_load_nstring_cxt(mrb_state *mrb, const char *s, int len, mrbc_context *c) +{ + return load_exec(mrb, mrb_parse_nstring(mrb, s, len, c), c); +} + +mrb_value +mrb_load_nstring(mrb_state *mrb, const char *s, int len) +{ + return mrb_load_nstring_cxt(mrb, s, len, NULL); +} + +mrb_value +mrb_load_string_cxt(mrb_state *mrb, const char *s, mrbc_context *c) +{ + return mrb_load_nstring_cxt(mrb, s, strlen(s), c); +} + +mrb_value +mrb_load_string(mrb_state *mrb, const char *s) +{ + return mrb_load_string_cxt(mrb, s, NULL); +} + +#ifdef ENABLE_STDIO + +static void +dump_prefix(int offset) +{ + while (offset--) { + putc(' ', stdout); + putc(' ', stdout); + } +} + +static void +dump_recur(mrb_state *mrb, node *tree, int offset) +{ + while (tree) { + parser_dump(mrb, tree->car, offset); + tree = tree->cdr; + } +} + +#endif + +void +parser_dump(mrb_state *mrb, node *tree, int offset) +{ +#ifdef ENABLE_STDIO + int n; + + if (!tree) return; + again: + dump_prefix(offset); + n = (int)(intptr_t)tree->car; + tree = tree->cdr; + switch (n) { + case NODE_BEGIN: + printf("NODE_BEGIN:\n"); + dump_recur(mrb, tree, offset+1); + break; + + case NODE_RESCUE: + printf("NODE_RESCUE:\n"); + if (tree->car) { + dump_prefix(offset+1); + printf("body:\n"); + parser_dump(mrb, tree->car, offset+2); + } + tree = tree->cdr; + if (tree->car) { + node *n2 = tree->car; + + dump_prefix(offset+1); + printf("rescue:\n"); + while (n2) { + node *n3 = n2->car; + if (n3->car) { + dump_prefix(offset+2); + printf("handle classes:\n"); + dump_recur(mrb, n3->car, offset+3); + } + if (n3->cdr->car) { + dump_prefix(offset+2); + printf("exc_var:\n"); + parser_dump(mrb, n3->cdr->car, offset+3); + } + if (n3->cdr->cdr->car) { + dump_prefix(offset+2); + printf("rescue body:\n"); + parser_dump(mrb, n3->cdr->cdr->car, offset+3); + } + n2 = n2->cdr; + } + } + tree = tree->cdr; + if (tree->car) { + dump_prefix(offset+1); + printf("else:\n"); + parser_dump(mrb, tree->car, offset+2); + } + break; + + case NODE_ENSURE: + printf("NODE_ENSURE:\n"); + dump_prefix(offset+1); + printf("body:\n"); + parser_dump(mrb, tree->car, offset+2); + dump_prefix(offset+1); + printf("ensure:\n"); + parser_dump(mrb, tree->cdr->cdr, offset+2); + break; + + case NODE_LAMBDA: + printf("NODE_BLOCK:\n"); + goto block; + + case NODE_BLOCK: + block: + printf("NODE_BLOCK:\n"); + tree = tree->cdr; + if (tree->car) { + node *n = tree->car; + + if (n->car) { + dump_prefix(offset+1); + printf("mandatory args:\n"); + dump_recur(mrb, n->car, offset+2); + } + n = n->cdr; + if (n->car) { + dump_prefix(offset+1); + printf("optional args:\n"); + { + node *n2 = n->car; + + while (n2) { + dump_prefix(offset+2); + printf("%s=", mrb_sym2name(mrb, sym(n2->car->car))); + parser_dump(mrb, n2->car->cdr, 0); + n2 = n2->cdr; + } + } + } + n = n->cdr; + if (n->car) { + dump_prefix(offset+1); + printf("rest=*%s\n", mrb_sym2name(mrb, sym(n->car))); + } + n = n->cdr; + if (n->car) { + dump_prefix(offset+1); + printf("post mandatory args:\n"); + dump_recur(mrb, n->car, offset+2); + } + n = n->cdr; + if (n) { + dump_prefix(offset+1); + printf("blk=&%s\n", mrb_sym2name(mrb, sym(n))); + } + } + dump_prefix(offset+1); + printf("body:\n"); + parser_dump(mrb, tree->cdr->car, offset+2); + break; + + case NODE_IF: + printf("NODE_IF:\n"); + dump_prefix(offset+1); + printf("cond:\n"); + parser_dump(mrb, tree->car, offset+2); + dump_prefix(offset+1); + printf("then:\n"); + parser_dump(mrb, tree->cdr->car, offset+2); + if (tree->cdr->cdr->car) { + dump_prefix(offset+1); + printf("else:\n"); + parser_dump(mrb, tree->cdr->cdr->car, offset+2); + } + break; + + case NODE_AND: + printf("NODE_AND:\n"); + parser_dump(mrb, tree->car, offset+1); + parser_dump(mrb, tree->cdr, offset+1); + break; + + case NODE_OR: + printf("NODE_OR:\n"); + parser_dump(mrb, tree->car, offset+1); + parser_dump(mrb, tree->cdr, offset+1); + break; + + case NODE_CASE: + printf("NODE_CASE:\n"); + if (tree->car) { + parser_dump(mrb, tree->car, offset+1); + } + tree = tree->cdr; + while (tree) { + dump_prefix(offset+1); + printf("case:\n"); + dump_recur(mrb, tree->car->car, offset+2); + dump_prefix(offset+1); + printf("body:\n"); + parser_dump(mrb, tree->car->cdr, offset+2); + tree = tree->cdr; + } + break; + + case NODE_WHILE: + printf("NODE_WHILE:\n"); + dump_prefix(offset+1); + printf("cond:\n"); + parser_dump(mrb, tree->car, offset+2); + dump_prefix(offset+1); + printf("body:\n"); + parser_dump(mrb, tree->cdr, offset+2); + break; + + case NODE_UNTIL: + printf("NODE_UNTIL:\n"); + dump_prefix(offset+1); + printf("cond:\n"); + parser_dump(mrb, tree->car, offset+2); + dump_prefix(offset+1); + printf("body:\n"); + parser_dump(mrb, tree->cdr, offset+2); + break; + + case NODE_FOR: + printf("NODE_FOR:\n"); + dump_prefix(offset+1); + printf("var:\n"); + { + node *n2 = tree->car; + + if (n2->car) { + dump_prefix(offset+2); + printf("pre:\n"); + dump_recur(mrb, n2->car, offset+3); + } + n2 = n2->cdr; + if (n2) { + if (n2->car) { + dump_prefix(offset+2); + printf("rest:\n"); + parser_dump(mrb, n2->car, offset+3); + } + n2 = n2->cdr; + if (n2) { + if (n2->car) { + dump_prefix(offset+2); + printf("post:\n"); + dump_recur(mrb, n2->car, offset+3); + } + } + } + } + tree = tree->cdr; + dump_prefix(offset+1); + printf("in:\n"); + parser_dump(mrb, tree->car, offset+2); + tree = tree->cdr; + dump_prefix(offset+1); + printf("do:\n"); + parser_dump(mrb, tree->car, offset+2); + break; + + case NODE_SCOPE: + printf("NODE_SCOPE:\n"); + { + node *n2 = tree->car; + + if (n2 && (n2->car || n2->cdr)) { + dump_prefix(offset+1); + printf("local variables:\n"); + dump_prefix(offset+2); + while (n2) { + if (n2->car) { + if (n2 != tree->car) printf(", "); + printf("%s", mrb_sym2name(mrb, sym(n2->car))); + } + n2 = n2->cdr; + } + printf("\n"); + } + } + tree = tree->cdr; + offset++; + goto again; + + case NODE_FCALL: + case NODE_CALL: + printf("NODE_CALL:\n"); + parser_dump(mrb, tree->car, offset+1); + dump_prefix(offset+1); + printf("method='%s' (%d)\n", + mrb_sym2name(mrb, sym(tree->cdr->car)), + (int)(intptr_t)tree->cdr->car); + tree = tree->cdr->cdr->car; + if (tree) { + dump_prefix(offset+1); + printf("args:\n"); + dump_recur(mrb, tree->car, offset+2); + if (tree->cdr) { + dump_prefix(offset+1); + printf("block:\n"); + parser_dump(mrb, tree->cdr, offset+2); + } + } + break; + + case NODE_DOT2: + printf("NODE_DOT2:\n"); + parser_dump(mrb, tree->car, offset+1); + parser_dump(mrb, tree->cdr, offset+1); + break; + + case NODE_DOT3: + printf("NODE_DOT3:\n"); + parser_dump(mrb, tree->car, offset+1); + parser_dump(mrb, tree->cdr, offset+1); + break; + + case NODE_COLON2: + printf("NODE_COLON2:\n"); + parser_dump(mrb, tree->car, offset+1); + dump_prefix(offset+1); + printf("::%s\n", mrb_sym2name(mrb, sym(tree->cdr))); + break; + + case NODE_COLON3: + printf("NODE_COLON3:\n"); + dump_prefix(offset+1); + printf("::%s\n", mrb_sym2name(mrb, sym(tree))); + break; + + case NODE_ARRAY: + printf("NODE_ARRAY:\n"); + dump_recur(mrb, tree, offset+1); + break; + + case NODE_HASH: + printf("NODE_HASH:\n"); + while (tree) { + dump_prefix(offset+1); + printf("key:\n"); + parser_dump(mrb, tree->car->car, offset+2); + dump_prefix(offset+1); + printf("value:\n"); + parser_dump(mrb, tree->car->cdr, offset+2); + tree = tree->cdr; + } + break; + + case NODE_SPLAT: + printf("NODE_SPLAT:\n"); + parser_dump(mrb, tree, offset+1); + break; + + case NODE_ASGN: + printf("NODE_ASGN:\n"); + dump_prefix(offset+1); + printf("lhs:\n"); + parser_dump(mrb, tree->car, offset+2); + dump_prefix(offset+1); + printf("rhs:\n"); + parser_dump(mrb, tree->cdr, offset+2); + break; + + case NODE_MASGN: + printf("NODE_MASGN:\n"); + dump_prefix(offset+1); + printf("mlhs:\n"); + { + node *n2 = tree->car; + + if (n2->car) { + dump_prefix(offset+2); + printf("pre:\n"); + dump_recur(mrb, n2->car, offset+3); + } + n2 = n2->cdr; + if (n2) { + if (n2->car) { + dump_prefix(offset+2); + printf("rest:\n"); + if (n2->car == (node*)-1) { + dump_prefix(offset+2); + printf("(empty)\n"); + } + else { + parser_dump(mrb, n2->car, offset+3); + } + } + n2 = n2->cdr; + if (n2) { + if (n2->car) { + dump_prefix(offset+2); + printf("post:\n"); + dump_recur(mrb, n2->car, offset+3); + } + } + } + } + dump_prefix(offset+1); + printf("rhs:\n"); + parser_dump(mrb, tree->cdr, offset+2); + break; + + case NODE_OP_ASGN: + printf("NODE_OP_ASGN:\n"); + dump_prefix(offset+1); + printf("lhs:\n"); + parser_dump(mrb, tree->car, offset+2); + tree = tree->cdr; + dump_prefix(offset+1); + printf("op='%s' (%d)\n", mrb_sym2name(mrb, sym(tree->car)), (int)(intptr_t)tree->car); + tree = tree->cdr; + parser_dump(mrb, tree->car, offset+1); + break; + + case NODE_SUPER: + printf("NODE_SUPER:\n"); + if (tree) { + dump_prefix(offset+1); + printf("args:\n"); + dump_recur(mrb, tree->car, offset+2); + if (tree->cdr) { + dump_prefix(offset+1); + printf("block:\n"); + parser_dump(mrb, tree->cdr, offset+2); + } + } + break; + + case NODE_ZSUPER: + printf("NODE_ZSUPER\n"); + break; + + case NODE_RETURN: + printf("NODE_RETURN:\n"); + parser_dump(mrb, tree, offset+1); + break; + + case NODE_YIELD: + printf("NODE_YIELD:\n"); + dump_recur(mrb, tree, offset+1); + break; + + case NODE_BREAK: + printf("NODE_BREAK:\n"); + parser_dump(mrb, tree, offset+1); + break; + + case NODE_NEXT: + printf("NODE_NEXT:\n"); + parser_dump(mrb, tree, offset+1); + break; + + case NODE_REDO: + printf("NODE_REDO\n"); + break; + + case NODE_RETRY: + printf("NODE_RETRY\n"); + break; + + case NODE_LVAR: + printf("NODE_LVAR %s\n", mrb_sym2name(mrb, sym(tree))); + break; + + case NODE_GVAR: + printf("NODE_GVAR %s\n", mrb_sym2name(mrb, sym(tree))); + break; + + case NODE_IVAR: + printf("NODE_IVAR %s\n", mrb_sym2name(mrb, sym(tree))); + break; + + case NODE_CVAR: + printf("NODE_CVAR %s\n", mrb_sym2name(mrb, sym(tree))); + break; + + case NODE_CONST: + printf("NODE_CONST %s\n", mrb_sym2name(mrb, sym(tree))); + break; + + case NODE_BACK_REF: + printf("NODE_BACK_REF: $%c\n", (int)(intptr_t)tree); + break; + + case NODE_NTH_REF: + printf("NODE_NTH_REF: $%d\n", (int)(intptr_t)tree); + break; + + case NODE_ARG: + printf("NODE_ARG %s\n", mrb_sym2name(mrb, sym(tree))); + break; + + case NODE_BLOCK_ARG: + printf("NODE_BLOCK_ARG:\n"); + parser_dump(mrb, tree, offset+1); + break; + + case NODE_INT: + printf("NODE_INT %s base %d\n", (char*)tree->car, (int)(intptr_t)tree->cdr->car); + break; + + case NODE_FLOAT: + printf("NODE_FLOAT %s\n", (char*)tree); + break; + + case NODE_NEGATE: + printf("NODE_NEGATE\n"); + parser_dump(mrb, tree, offset+1); + break; + + case NODE_STR: + printf("NODE_STR \"%s\" len %d\n", (char*)tree->car, (int)(intptr_t)tree->cdr); + break; + + case NODE_DSTR: + printf("NODE_DSTR\n"); + dump_recur(mrb, tree, offset+1); + break; + + case NODE_SYM: + printf("NODE_SYM :%s\n", mrb_sym2name(mrb, sym(tree))); + break; + + case NODE_SELF: + printf("NODE_SELF\n"); + break; + + case NODE_NIL: + printf("NODE_NIL\n"); + break; + + case NODE_TRUE: + printf("NODE_TRUE\n"); + break; + + case NODE_FALSE: + printf("NODE_FALSE\n"); + break; + + case NODE_ALIAS: + printf("NODE_ALIAS %s %s:\n", + mrb_sym2name(mrb, sym(tree->car)), + mrb_sym2name(mrb, sym(tree->cdr))); + break; + + case NODE_UNDEF: + printf("NODE_UNDEF %s:\n", + mrb_sym2name(mrb, sym(tree))); + break; + + case NODE_CLASS: + printf("NODE_CLASS:\n"); + if (tree->car->car == (node*)0) { + dump_prefix(offset+1); + printf(":%s\n", mrb_sym2name(mrb, sym(tree->car->cdr))); + } + else if (tree->car->car == (node*)1) { + dump_prefix(offset+1); + printf("::%s\n", mrb_sym2name(mrb, sym(tree->car->cdr))); + } + else { + parser_dump(mrb, tree->car->car, offset+1); + dump_prefix(offset+1); + printf("::%s\n", mrb_sym2name(mrb, sym(tree->car->cdr))); + } + if (tree->cdr->car) { + dump_prefix(offset+1); + printf("super:\n"); + parser_dump(mrb, tree->cdr->car, offset+2); + } + dump_prefix(offset+1); + printf("body:\n"); + parser_dump(mrb, tree->cdr->cdr->car->cdr, offset+2); + break; + + case NODE_MODULE: + printf("NODE_MODULE:\n"); + if (tree->car->car == (node*)0) { + dump_prefix(offset+1); + printf(":%s\n", mrb_sym2name(mrb, sym(tree->car->cdr))); + } + else if (tree->car->car == (node*)1) { + dump_prefix(offset+1); + printf("::%s\n", mrb_sym2name(mrb, sym(tree->car->cdr))); + } + else { + parser_dump(mrb, tree->car->car, offset+1); + dump_prefix(offset+1); + printf("::%s\n", mrb_sym2name(mrb, sym(tree->car->cdr))); + } + dump_prefix(offset+1); + printf("body:\n"); + parser_dump(mrb, tree->cdr->car->cdr, offset+2); + break; + + case NODE_SCLASS: + printf("NODE_SCLASS:\n"); + parser_dump(mrb, tree->car, offset+1); + dump_prefix(offset+1); + printf("body:\n"); + parser_dump(mrb, tree->cdr->car->cdr, offset+2); + break; + + case NODE_DEF: + printf("NODE_DEF:\n"); + dump_prefix(offset+1); + printf("%s\n", mrb_sym2name(mrb, sym(tree->car))); + tree = tree->cdr; + { + node *n2 = tree->car; + + if (n2 && (n2->car || n2->cdr)) { + dump_prefix(offset+1); + printf("local variables:\n"); + dump_prefix(offset+2); + while (n2) { + if (n2->car) { + if (n2 != tree->car) printf(", "); + printf("%s", mrb_sym2name(mrb, sym(n2->car))); + } + n2 = n2->cdr; + } + printf("\n"); + } + } + tree = tree->cdr; + if (tree->car) { + node *n = tree->car; + + if (n->car) { + dump_prefix(offset+1); + printf("mandatory args:\n"); + dump_recur(mrb, n->car, offset+2); + } + n = n->cdr; + if (n->car) { + dump_prefix(offset+1); + printf("optional args:\n"); + { + node *n2 = n->car; + + while (n2) { + dump_prefix(offset+2); + printf("%s=", mrb_sym2name(mrb, sym(n2->car->car))); + parser_dump(mrb, n2->car->cdr, 0); + n2 = n2->cdr; + } + } + } + n = n->cdr; + if (n->car) { + dump_prefix(offset+1); + printf("rest=*%s\n", mrb_sym2name(mrb, sym(n->car))); + } + n = n->cdr; + if (n->car) { + dump_prefix(offset+1); + printf("post mandatory args:\n"); + dump_recur(mrb, n->car, offset+2); + } + n = n->cdr; + if (n) { + dump_prefix(offset+1); + printf("blk=&%s\n", mrb_sym2name(mrb, sym(n))); + } + } + parser_dump(mrb, tree->cdr->car, offset+1); + break; + + case NODE_SDEF: + printf("NODE_SDEF:\n"); + parser_dump(mrb, tree->car, offset+1); + tree = tree->cdr; + dump_prefix(offset+1); + printf(":%s\n", mrb_sym2name(mrb, sym(tree->car))); + tree = tree->cdr->cdr; + if (tree->car) { + node *n = tree->car; + + if (n->car) { + dump_prefix(offset+1); + printf("mandatory args:\n"); + dump_recur(mrb, n->car, offset+2); + } + n = n->cdr; + if (n->car) { + dump_prefix(offset+1); + printf("optional args:\n"); + { + node *n2 = n->car; + + while (n2) { + dump_prefix(offset+2); + printf("%s=", mrb_sym2name(mrb, sym(n2->car->car))); + parser_dump(mrb, n2->car->cdr, 0); + n2 = n2->cdr; + } + } + } + n = n->cdr; + if (n->car) { + dump_prefix(offset+1); + printf("rest=*%s\n", mrb_sym2name(mrb, sym(n->car))); + } + n = n->cdr; + if (n->car) { + dump_prefix(offset+1); + printf("post mandatory args:\n"); + dump_recur(mrb, n->car, offset+2); + } + n = n->cdr; + if (n) { + dump_prefix(offset+1); + printf("blk=&%s\n", mrb_sym2name(mrb, sym(n))); + } + } + tree = tree->cdr; + parser_dump(mrb, tree->car, offset+1); + break; + + case NODE_POSTEXE: + printf("NODE_POSTEXE:\n"); + parser_dump(mrb, tree, offset+1); + break; + + default: + printf("node type: %d (0x%x)\n", (int)n, (int)n); + break; + } +#endif +} + +#ifdef PARSER_TEST +int +main() +{ + mrb_state *mrb = mrb_open(); + int n; + + n = mrb_compile_string(mrb, "\ +def fib(n)\n\ + if n<2\n\ + n\n\ + else\n\ + fib(n-2)+fib(n-1)\n\ + end\n\ +end\n\ +print(fib(20), \"\\n\")\n\ +"); + printf("ret: %d\n", n); + + return 0; +} +#endif + Renamed: vendor/mruby-4728070/src/parse.y (+1 -1) 99% =================================================================== --- vendor/mruby-b5830ae/src/parse.y 2013-01-16 18:58:35 +0900 (369634e) +++ vendor/mruby-4728070/src/parse.y 2013-01-17 11:30:40 +0900 (403db1c) @@ -1126,7 +1126,7 @@ stmt : keyword_alias fsym {p->lstate = EXPR_FNAME;} fsym | command_asgn | mlhs '=' command_call { - $$ = new_masgn(p, $1, list1($3)); + $$ = new_masgn(p, $1, $3); } | var_lhs tOP_ASGN command_call { Renamed: vendor/mruby-4728070/src/pool.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/print.c (+2 -2) 89% =================================================================== --- vendor/mruby-b5830ae/src/print.c 2013-01-16 18:58:35 +0900 (3b762e0) +++ vendor/mruby-4728070/src/print.c 2013-01-17 11:30:40 +0900 (58297ea) @@ -59,13 +59,13 @@ mrb_init_print(mrb_state *mrb) void mrb_show_version(mrb_state *mrb) { - printf("mruby - Embeddable Ruby Copyright (c) 2010-2012 mruby developers\n"); + printf("mruby - Embeddable Ruby Copyright (c) 2010-2013 mruby developers\n"); } void mrb_show_copyright(mrb_state *mrb) { - printf("mruby - Copyright (c) 2010-2012 mruby developers\n"); + printf("mruby - Copyright (c) 2010-2013 mruby developers\n"); } #else void Renamed: vendor/mruby-4728070/src/proc.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/range.c (+18 -6) 95% =================================================================== --- vendor/mruby-b5830ae/src/range.c 2013-01-16 18:58:35 +0900 (085d5b1) +++ vendor/mruby-4728070/src/range.c 2013-01-17 11:30:40 +0900 (ef92ed8) @@ -100,12 +100,15 @@ mrb_range_excl(mrb_state *mrb, mrb_value range) } static void -range_init(mrb_state *mrb, mrb_value range, mrb_value beg, mrb_value end, mrb_int exclude_end) +range_init(mrb_state *mrb, mrb_value range, mrb_value beg, mrb_value end, int exclude_end) { struct RRange *r = mrb_range_ptr(range); range_check(mrb, beg, end); r->excl = exclude_end; + if (!r->edges) { + r->edges = (struct mrb_range_edges *)mrb_malloc(mrb, sizeof(struct mrb_range_edges)); + } r->edges->beg = beg; r->edges->end = end; } @@ -122,11 +125,15 @@ mrb_value mrb_range_initialize(mrb_state *mrb, mrb_value range) { mrb_value beg, end; - mrb_value flags; + int exclusive; + int n; - mrb_get_args(mrb, "ooo", &beg, &end, &flags); + n = mrb_get_args(mrb, "oo|b", &beg, &end, &exclusive); + if (n != 3) { + exclusive = 0; + } /* Ranges are immutable, so that they should be initialized only once. */ - range_init(mrb, range, beg, end, mrb_test(flags)); + range_init(mrb, range, beg, end, exclusive); return range; } /* @@ -408,6 +415,7 @@ mrb_value range_initialize_copy(mrb_state *mrb, mrb_value copy) { mrb_value src; + struct RRange *r; mrb_get_args(mrb, "o", &src); @@ -415,7 +423,9 @@ range_initialize_copy(mrb_state *mrb, mrb_value copy) if (!mrb_obj_is_instance_of(mrb, src, mrb_obj_class(mrb, copy))) { mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class"); } - *mrb_range_ptr(copy) = *mrb_range_ptr(src); + + r = mrb_range_ptr(src); + range_init(mrb, copy, r->edges->beg, r->edges->end, r->excl); return copy; } @@ -426,6 +436,8 @@ mrb_init_range(mrb_state *mrb) struct RClass *r; r = mrb_define_class(mrb, "Range", mrb->object_class); + MRB_SET_INSTANCE_TT(r, MRB_TT_RANGE); + mrb_include_module(mrb, r, mrb_class_get(mrb, "Enumerable")); mrb_define_method(mrb, r, "begin", mrb_range_beg, ARGS_NONE()); /* 15.2.14.4.3 */ @@ -436,7 +448,7 @@ mrb_init_range(mrb_state *mrb) mrb_define_method(mrb, r, "exclude_end?", mrb_range_excl, ARGS_NONE()); /* 15.2.14.4.6 */ mrb_define_method(mrb, r, "first", mrb_range_beg, ARGS_NONE()); /* 15.2.14.4.7 */ mrb_define_method(mrb, r, "include?", mrb_range_include, ARGS_REQ(1)); /* 15.2.14.4.8 */ - mrb_define_method(mrb, r, "initialize", mrb_range_initialize, ARGS_REQ(4)); /* 15.2.14.4.9 */ + mrb_define_method(mrb, r, "initialize", mrb_range_initialize, ARGS_ANY()); /* 15.2.14.4.9 */ mrb_define_method(mrb, r, "last", mrb_range_end, ARGS_NONE()); /* 15.2.14.4.10 */ mrb_define_method(mrb, r, "member?", mrb_range_include, ARGS_REQ(1)); /* 15.2.14.4.11 */ Renamed: vendor/mruby-4728070/src/re.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/re.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/regcomp.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/regenc.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/regenc.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/regerror.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/regex.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/regexec.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/regint.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/regparse.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/regparse.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/sprintf.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/st.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/st.h (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/state.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/string.c (+0 -39) 98% =================================================================== --- vendor/mruby-b5830ae/src/string.c 2013-01-16 18:58:35 +0900 (dee383f) +++ vendor/mruby-4728070/src/string.c 2013-01-17 11:30:40 +0900 (144c4bd) @@ -1114,44 +1114,6 @@ mrb_str_downcase(mrb_state *mrb, mrb_value self) return str; } -/* 15.2.10.5.15 */ -/* - * call-seq: - * str.each(separator=$/) {|substr| block } => str - * str.each_line(separator=$/) {|substr| block } => str - * - * Splits <i>str</i> using the supplied parameter as the record separator - * (<code>$/</code> by default), passing each substring in turn to the supplied - * block. If a zero-length record separator is supplied, the string is split - * into paragraphs delimited by multiple successive newlines. - * - * print "Example one\n" - * "hello\nworld".each {|s| p s} - * print "Example two\n" - * "hello\nworld".each('l') {|s| p s} - * print "Example three\n" - * "hello\n\n\nworld".each('') {|s| p s} - * - * <em>produces:</em> - * - * Example one - * "hello\n" - * "world" - * Example two - * "hel" - * "l" - * "o\nworl" - * "d" - * Example three - * "hello\n\n\n" - * "world" - */ -static mrb_value -mrb_str_each_line(mrb_state *mrb, mrb_value str) -{ - return mrb_nil_value(); -} - /* 15.2.10.5.16 */ /* * call-seq: @@ -3033,7 +2995,6 @@ mrb_init_string(mrb_state *mrb) mrb_define_method(mrb, s, "chop!", mrb_str_chop_bang, ARGS_REQ(1)); /* 15.2.10.5.12 */ mrb_define_method(mrb, s, "downcase", mrb_str_downcase, ARGS_NONE()); /* 15.2.10.5.13 */ mrb_define_method(mrb, s, "downcase!", mrb_str_downcase_bang, ARGS_NONE()); /* 15.2.10.5.14 */ - mrb_define_method(mrb, s, "each_line", mrb_str_each_line, ARGS_REQ(1)); /* 15.2.10.5.15 */ mrb_define_method(mrb, s, "empty?", mrb_str_empty_p, ARGS_NONE()); /* 15.2.10.5.16 */ mrb_define_method(mrb, s, "eql?", mrb_str_eql, ARGS_REQ(1)); /* 15.2.10.5.17 */ #ifdef ENABLE_REGEXP Renamed: vendor/mruby-4728070/src/struct.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/symbol.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/time.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/variable.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/src/vm.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/tasks/libmruby.rake (+1 -1) 69% =================================================================== --- vendor/mruby-b5830ae/tasks/libmruby.rake 2013-01-16 18:58:35 +0900 (1c68aa5) +++ vendor/mruby-4728070/tasks/libmruby.rake 2013-01-17 11:30:40 +0900 (9f5cc55) @@ -1,5 +1,5 @@ MRuby.each_target do file "#{build_dir}/lib/libmruby.a" => libmruby.flatten do |t| - archive t.name, 'r', t.prerequisites + archive t.name, 'rs', t.prerequisites end end Renamed: vendor/mruby-4728070/tasks/mrbgems.rake (+2 -0) 93% =================================================================== --- vendor/mruby-b5830ae/tasks/mrbgems.rake 2013-01-16 18:58:35 +0900 (356e403) +++ vendor/mruby-4728070/tasks/mrbgems.rake 2013-01-17 11:30:40 +0900 (07e412b) @@ -29,5 +29,7 @@ mrb_init_mrbgems(mrb_state *mrb) { __EOF__ end end + + file "#{build_dir}/mrbgems/gem_init.c" => MRUBY_CONFIG end end Renamed: vendor/mruby-4728070/tasks/mrbgems_test.rake (+6 -6) 90% =================================================================== --- vendor/mruby-b5830ae/tasks/mrbgems_test.rake 2013-01-16 18:58:35 +0900 (f247718) +++ vendor/mruby-4728070/tasks/mrbgems_test.rake 2013-01-17 11:30:40 +0900 (bbdc016) @@ -19,10 +19,10 @@ MRuby.each_target do end f.puts %Q[void mrb_#{g.funcname}_gem_test(mrb_state *mrb);] unless g.test_objs.empty? f.puts %Q[void GENERATED_TMP_mrb_#{g.funcname}_gem_test(mrb_state *mrb) {] - f.puts %Q[ mrb_state *mrb2;] - f.puts %Q[ mrb_value val1, val2, ary1, ary2;] - f.puts %Q[ int ai;] unless g.test_rbfiles.empty? + f.puts %Q[ mrb_state *mrb2;] + f.puts %Q[ mrb_value val1, val2, ary1, ary2;] + f.puts %Q[ int ai;] g.test_rbfiles.count.times do |i| f.puts %Q[ ai = mrb_gc_arena_save(mrb);] f.puts %Q[ mrb2 = mrb_open();] @@ -43,9 +43,9 @@ MRuby.each_target do f.puts %Q[ ] %w(ok_test ko_test kill_test).each do |vname| - f.puts %Q[ val1 = mrb_gv_get(mrb2, mrb_intern(mrb, "$#{vname}"));] - f.puts %Q[ if(mrb_fixnum_p(val1)) {] - f.puts %Q[ val2 = mrb_gv_get(mrb, mrb_intern(mrb, "$#{vname}"));] + f.puts %Q[ val2 = mrb_gv_get(mrb2, mrb_intern(mrb2, "$#{vname}"));] + f.puts %Q[ if(mrb_fixnum_p(val2)) {] + f.puts %Q[ val1 = mrb_gv_get(mrb, mrb_intern(mrb, "$#{vname}"));] f.puts %Q[ mrb_gv_set(mrb, mrb_intern(mrb, "$#{vname}"), mrb_fixnum_value(mrb_fixnum(val1) + mrb_fixnum(val2)));] f.puts %Q[ }\n] end Renamed: vendor/mruby-4728070/tasks/mruby_build.rake (+6 -3) 97% =================================================================== --- vendor/mruby-b5830ae/tasks/mruby_build.rake 2013-01-16 18:58:35 +0900 (d5dc075) +++ vendor/mruby-4728070/tasks/mruby_build.rake 2013-01-17 11:30:40 +0900 (de9e556) @@ -3,11 +3,11 @@ module MRuby attr_accessor :build def targets - @targets ||= [] + @targets ||= {} end def each_target(&block) - @targets.each do |target| + @targets.each do |key, target| target.instance_eval(&block) end end @@ -22,6 +22,7 @@ module MRuby attr_writer :cxx, :cxxflags attr_writer :objcc, :objcflags attr_writer :asm, :asmflags + attr_accessor :bins attr_accessor :gperf, :yacc attr_accessor :cat, :git attr_reader :root, :gems @@ -38,9 +39,11 @@ module MRuby @yacc, @gperf = 'bison', 'gperf' @cat, @git = 'cat', 'git' + @bins = %w(mruby mrbc mirb) + @gems, @libmruby = [], [] - MRuby.targets << self + MRuby.targets[name.to_s] = self MRuby.build = self instance_eval(&block) end Renamed: vendor/mruby-4728070/tasks/mruby_gem_spec.rake (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/tasks/ruby_ext.rake (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/tasks/rules.rake (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/README.md (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/assert.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/driver.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/init_mrbtest.c (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/mrbtest.rake (+1 -1) 92% =================================================================== --- vendor/mruby-b5830ae/test/mrbtest.rake 2013-01-16 18:58:35 +0900 (cd560d2) +++ vendor/mruby-4728070/test/mrbtest.rake 2013-01-17 11:30:40 +0900 (33f283f) @@ -15,7 +15,7 @@ MRuby.each_target do end file mlib => [clib] - file clib => [exefile("#{build_dir}/bin/mrbc"), init, asslib] + mrbs do |t| + file clib => [mrbcfile, init, asslib] + mrbs do |t| open(clib, 'w') do |f| f.puts File.read(init) compile_mruby f, [asslib] + mrbs, 'mrbtest_irep' Renamed: vendor/mruby-4728070/test/report.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/argumenterror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/array.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/basicobject.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/bs_block.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/bs_literal.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/class.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/comparable.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/enumerable.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/exception.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/false.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/float.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/gc.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/hash.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/indexerror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/integer.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/kernel.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/literals.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/localjumperror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/math.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/module.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/nameerror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/nil.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/nomethoderror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/numeric.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/object.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/proc.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/range.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/rangeerror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/regexperror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/runtimeerror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/standarderror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/string.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/struct.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/symbol.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/syntax.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/time.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/true.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/test/t/typeerror.rb (+0 -0) 100% =================================================================== Renamed: vendor/mruby-4728070/tools/mirb/mirb.c (+3 -0) 98% =================================================================== --- vendor/mruby-b5830ae/tools/mirb/mirb.c 2013-01-16 18:58:35 +0900 (b89c63c) +++ vendor/mruby-4728070/tools/mirb/mirb.c 2013-01-17 11:30:40 +0900 (85c3249) @@ -159,6 +159,7 @@ main(void) mrb_value result; int n; int code_block_open = FALSE; + int ai; print_hint(); @@ -172,6 +173,7 @@ main(void) cxt = mrbc_context_new(mrb); cxt->capture_errors = 1; + ai = mrb_gc_arena_save(mrb); while (TRUE) { #ifndef ENABLE_READLINE print_cmdline(code_block_open); @@ -253,6 +255,7 @@ main(void) ruby_code[0] = '\0'; last_code_line[0] = '\0'; mrb_parser_free(parser); + mrb_gc_arena_restore(mrb, ai); } } mrbc_context_free(mrb, cxt); Added: vendor/mruby-4728070/tools/mirb/mirb.rake (+12 -0) 100644 =================================================================== --- /dev/null +++ vendor/mruby-4728070/tools/mirb/mirb.rake 2013-01-17 11:30:40 +0900 (958ebe7) @@ -0,0 +1,12 @@ +dir = File.dirname(__FILE__).sub(%r|^\./|, '') + +MRuby.each_target do + if bins.select { |s| s.to_s == 'mirb' } + exec = exefile("#{build_dir}/bin/mirb") + objs = Dir.glob("#{dir}/*.{c}").map { |f| f.pathmap("#{build_dir}/%X.o") } + + file exec => objs + ["#{build_dir}/lib/libmruby.a"] do |t| + link t.name, t.prerequisites, gems.map { |g| g.mruby_ldflags }, gems.map { |g| g.mruby_libs } + end + end +end Renamed: vendor/mruby-4728070/tools/mrbc/mrbc.c (+0 -0) 100% =================================================================== Added: vendor/mruby-4728070/tools/mrbc/mrbc.rake (+12 -0) 100644 =================================================================== --- /dev/null +++ vendor/mruby-4728070/tools/mrbc/mrbc.rake 2013-01-17 11:30:40 +0900 (74e04be) @@ -0,0 +1,12 @@ +dir = File.dirname(__FILE__).sub(%r|^\./|, '') + +MRuby.each_target do + if bins.select { |s| s.to_s == 'mrbc' } + exec = exefile("#{build_dir}/bin/mrbc") + objs = Dir.glob("#{dir}/*.{c}").map { |f| f.pathmap("#{build_dir}/%X.o") } + + file exec => objs + ["#{build_dir}/lib/libmruby_core.a"] do |t| + link t.name, t.prerequisites + end + end +end Renamed: vendor/mruby-4728070/tools/mruby/mruby.c (+0 -0) 100% =================================================================== Added: vendor/mruby-4728070/tools/mruby/mruby.rake (+12 -0) 100644 =================================================================== --- /dev/null +++ vendor/mruby-4728070/tools/mruby/mruby.rake 2013-01-17 11:30:40 +0900 (7842c42) @@ -0,0 +1,12 @@ +dir = File.dirname(__FILE__).sub(%r|^\./|, '') + +MRuby.each_target do + if bins.select { |s| s.to_s == 'mruby' } + exec = exefile("#{build_dir}/bin/mruby") + objs = Dir.glob("#{dir}/*.{c}").map { |f| f.pathmap("#{build_dir}/%X.o") } + + file exec => objs + ["#{build_dir}/lib/libmruby.a"] do |t| + link t.name, t.prerequisites, gems.map { |g| g.mruby_ldflags }, gems.map { |g| g.mruby_libs } + end + end +end Deleted: vendor/mruby-b5830ae/tools/mirb/mirb.rake (+0 -10) 100644 =================================================================== --- vendor/mruby-b5830ae/tools/mirb/mirb.rake 2013-01-16 18:58:35 +0900 (52f3344) +++ /dev/null @@ -1,10 +0,0 @@ -dir = File.dirname(__FILE__).sub(%r|^\./|, '') - -MRuby.each_target do - exec = exefile("#{build_dir}/bin/mirb") - objs = Dir.glob("#{dir}/*.{c}").map { |f| f.pathmap("#{build_dir}/%X.o") } - - file exec => objs + ["#{build_dir}/lib/libmruby.a"] do |t| - link t.name, t.prerequisites, gems.map { |g| g.mruby_ldflags }, gems.map { |g| g.mruby_libs } - end -end Deleted: vendor/mruby-b5830ae/tools/mrbc/mrbc.rake (+0 -10) 100644 =================================================================== --- vendor/mruby-b5830ae/tools/mrbc/mrbc.rake 2013-01-16 18:58:35 +0900 (cf356ba) +++ /dev/null @@ -1,10 +0,0 @@ -dir = File.dirname(__FILE__).sub(%r|^\./|, '') - -MRuby.each_target do - exec = exefile("#{build_dir}/bin/mrbc") - objs = Dir.glob("#{dir}/*.{c}").map { |f| f.pathmap("#{build_dir}/%X.o") } - - file exec => objs + ["#{build_dir}/lib/libmruby_core.a"] do |t| - link t.name, t.prerequisites, [], gems.map { |g| g.mruby_libs } - end -end Deleted: vendor/mruby-b5830ae/tools/mruby/mruby.rake (+0 -10) 100644 =================================================================== --- vendor/mruby-b5830ae/tools/mruby/mruby.rake 2013-01-16 18:58:35 +0900 (162e8d1) +++ /dev/null @@ -1,10 +0,0 @@ -dir = File.dirname(__FILE__).sub(%r|^\./|, '') - -MRuby.each_target do - exec = exefile("#{build_dir}/bin/mruby") - objs = Dir.glob("#{dir}/*.{c}").map { |f| f.pathmap("#{build_dir}/%X.o") } - - file exec => objs + ["#{build_dir}/lib/libmruby.a"] do |t| - link t.name, t.prerequisites, gems.map { |g| g.mruby_ldflags }, gems.map { |g| g.mruby_libs } - end -end Modified: vendor/mruby/sources.am (+52 -52) =================================================================== --- vendor/mruby/sources.am 2013-01-16 18:58:35 +0900 (18a3e8d) +++ vendor/mruby/sources.am 2013-01-17 11:30:40 +0900 (366999b) @@ -1,55 +1,55 @@ libmruby_la_SOURCES = \ - $(srcdir)/../mruby-b5830ae/src/array.c \ - $(srcdir)/../mruby-b5830ae/src/cdump.c \ - $(srcdir)/../mruby-b5830ae/src/class.c \ - $(srcdir)/../mruby-b5830ae/src/codegen.c \ - $(srcdir)/../mruby-b5830ae/src/compar.c \ - $(srcdir)/../mruby-b5830ae/src/crc.c \ - $(srcdir)/../mruby-b5830ae/src/dump.c \ - $(srcdir)/../mruby-b5830ae/src/encoding.h \ - $(srcdir)/../mruby-b5830ae/src/enum.c \ - $(srcdir)/../mruby-b5830ae/src/error.c \ - $(srcdir)/../mruby-b5830ae/src/error.h \ - $(srcdir)/../mruby-b5830ae/src/etc.c \ - $(srcdir)/../mruby-b5830ae/src/gc.c \ - $(srcdir)/../mruby-b5830ae/src/hash.c \ - $(srcdir)/../mruby-b5830ae/src/init.c \ - $(srcdir)/../mruby-b5830ae/src/init_ext.c \ - $(srcdir)/../mruby-b5830ae/src/kernel.c \ - $(srcdir)/../mruby-b5830ae/src/load.c \ - $(srcdir)/../mruby-b5830ae/src/math.c \ - $(srcdir)/../mruby-b5830ae/src/mrblib.c \ - $(srcdir)/../mruby-b5830ae/src/name2ctype.h \ - $(srcdir)/../mruby-b5830ae/src/node.h \ - $(srcdir)/../mruby-b5830ae/src/numeric.c \ - $(srcdir)/../mruby-b5830ae/src/object.c \ - $(srcdir)/../mruby-b5830ae/src/oniguruma.h \ - $(srcdir)/../mruby-b5830ae/src/opcode.h \ - $(srcdir)/../mruby-b5830ae/src/parse.y \ - $(srcdir)/../mruby-b5830ae/src/pool.c \ - $(srcdir)/../mruby-b5830ae/src/print.c \ - $(srcdir)/../mruby-b5830ae/src/proc.c \ - $(srcdir)/../mruby-b5830ae/src/range.c \ - $(srcdir)/../mruby-b5830ae/src/re.c \ - $(srcdir)/../mruby-b5830ae/src/re.h \ - $(srcdir)/../mruby-b5830ae/src/regcomp.c \ - $(srcdir)/../mruby-b5830ae/src/regenc.c \ - $(srcdir)/../mruby-b5830ae/src/regenc.h \ - $(srcdir)/../mruby-b5830ae/src/regerror.c \ - $(srcdir)/../mruby-b5830ae/src/regex.h \ - $(srcdir)/../mruby-b5830ae/src/regexec.c \ - $(srcdir)/../mruby-b5830ae/src/regint.h \ - $(srcdir)/../mruby-b5830ae/src/regparse.c \ - $(srcdir)/../mruby-b5830ae/src/regparse.h \ - $(srcdir)/../mruby-b5830ae/src/sprintf.c \ - $(srcdir)/../mruby-b5830ae/src/st.c \ - $(srcdir)/../mruby-b5830ae/src/st.h \ - $(srcdir)/../mruby-b5830ae/src/state.c \ - $(srcdir)/../mruby-b5830ae/src/string.c \ - $(srcdir)/../mruby-b5830ae/src/struct.c \ - $(srcdir)/../mruby-b5830ae/src/symbol.c \ - $(srcdir)/../mruby-b5830ae/src/time.c \ - $(srcdir)/../mruby-b5830ae/src/variable.c \ - $(srcdir)/../mruby-b5830ae/src/vm.c \ + $(srcdir)/../mruby-4728070/src/array.c \ + $(srcdir)/../mruby-4728070/src/cdump.c \ + $(srcdir)/../mruby-4728070/src/class.c \ + $(srcdir)/../mruby-4728070/src/codegen.c \ + $(srcdir)/../mruby-4728070/src/compar.c \ + $(srcdir)/../mruby-4728070/src/crc.c \ + $(srcdir)/../mruby-4728070/src/dump.c \ + $(srcdir)/../mruby-4728070/src/encoding.h \ + $(srcdir)/../mruby-4728070/src/enum.c \ + $(srcdir)/../mruby-4728070/src/error.c \ + $(srcdir)/../mruby-4728070/src/error.h \ + $(srcdir)/../mruby-4728070/src/etc.c \ + $(srcdir)/../mruby-4728070/src/gc.c \ + $(srcdir)/../mruby-4728070/src/hash.c \ + $(srcdir)/../mruby-4728070/src/init.c \ + $(srcdir)/../mruby-4728070/src/init_ext.c \ + $(srcdir)/../mruby-4728070/src/kernel.c \ + $(srcdir)/../mruby-4728070/src/load.c \ + $(srcdir)/../mruby-4728070/src/math.c \ + $(srcdir)/../mruby-4728070/src/mrblib.c \ + $(srcdir)/../mruby-4728070/src/name2ctype.h \ + $(srcdir)/../mruby-4728070/src/node.h \ + $(srcdir)/../mruby-4728070/src/numeric.c \ + $(srcdir)/../mruby-4728070/src/object.c \ + $(srcdir)/../mruby-4728070/src/oniguruma.h \ + $(srcdir)/../mruby-4728070/src/opcode.h \ + $(srcdir)/../mruby-4728070/src/parse.c \ + $(srcdir)/../mruby-4728070/src/pool.c \ + $(srcdir)/../mruby-4728070/src/print.c \ + $(srcdir)/../mruby-4728070/src/proc.c \ + $(srcdir)/../mruby-4728070/src/range.c \ + $(srcdir)/../mruby-4728070/src/re.c \ + $(srcdir)/../mruby-4728070/src/re.h \ + $(srcdir)/../mruby-4728070/src/regcomp.c \ + $(srcdir)/../mruby-4728070/src/regenc.c \ + $(srcdir)/../mruby-4728070/src/regenc.h \ + $(srcdir)/../mruby-4728070/src/regerror.c \ + $(srcdir)/../mruby-4728070/src/regex.h \ + $(srcdir)/../mruby-4728070/src/regexec.c \ + $(srcdir)/../mruby-4728070/src/regint.h \ + $(srcdir)/../mruby-4728070/src/regparse.c \ + $(srcdir)/../mruby-4728070/src/regparse.h \ + $(srcdir)/../mruby-4728070/src/sprintf.c \ + $(srcdir)/../mruby-4728070/src/st.c \ + $(srcdir)/../mruby-4728070/src/st.h \ + $(srcdir)/../mruby-4728070/src/state.c \ + $(srcdir)/../mruby-4728070/src/string.c \ + $(srcdir)/../mruby-4728070/src/struct.c \ + $(srcdir)/../mruby-4728070/src/symbol.c \ + $(srcdir)/../mruby-4728070/src/time.c \ + $(srcdir)/../mruby-4728070/src/variable.c \ + $(srcdir)/../mruby-4728070/src/vm.c \ $(NULL)